HTTP Tunneling
(→Proxy kikerülése HTTP alagúttal) |
|||
(egy szerkesztő 11 közbeeső változata nincs mutatva) | |||
1. sor: | 1. sor: | ||
− | = Mi a HTTP Tunneling? = |
+ | írta: Andrus Tamás |
+ | |||
+ | |||
+ | |||
A HTTP alagutazás egy lehetséges megoldás bármilyen hálózati forgalom szabványos HTTP kérésekbe való becsomagolására. A HTTP alagút kiépítése valójában kettő vagy több kapcsolat kiépítése, implementációtól függően. |
A HTTP alagutazás egy lehetséges megoldás bármilyen hálózati forgalom szabványos HTTP kérésekbe való becsomagolására. A HTTP alagút kiépítése valójában kettő vagy több kapcsolat kiépítése, implementációtól függően. |
||
== A HTTP alagút felhasználási módjai == |
== A HTTP alagút felhasználási módjai == |
||
− | Az általános modellben a kliens egy szigorú proxy mögött helyezkedik el, a szerver alkalmazás pedig azon kívül. A cél hogy a proxy által korlátozott hálózatból a belső hálózaton kívüli eröforrások elérhetőek legyenek. Ez jelentheti, például tiltott weblapok elérését, vagy tiltott protokollok használatát egy korlátozott hálózatban. |
+ | Az általános modellben a kliens egy szigorú proxy mögött helyezkedik el, a szerver alkalmazás pedig azon kívül. A cél hogy a proxy által korlátozott hálózatból a belső hálózaton kívüli erőforrások elérhetőek legyenek. Ez jelentheti például tiltott weblapok elérését, vagy tiltott protokollok használatát egy korlátozott hálózatban. |
== Alagút HTTP CONNECT metódussal == |
== Alagút HTTP CONNECT metódussal == |
||
9. sor: | 9. sor: | ||
== Alagút HTTP GET vagy HTTP POST metódussal == |
== Alagút HTTP GET vagy HTTP POST metódussal == |
||
− | A másik megoldás a HTTP GET vagy HTTP POST metódust használja a kommunikációra, ennek megvalósítása kliens-szerver modellel történik. A kapcsolat teljes időtartalma alatt HTTP kérések mennek ezért a forgalom nem megkülönböztethető egy valódi (pl böngészés által generált) HTTP forgalomtól. |
+ | A másik megoldás a HTTP GET vagy HTTP POST metódust használja a kommunikációra, ennek megvalósítása kliens-szerver modellel történik. A kapcsolat teljes időtartalma alatt HTTP kérések mennek, ezért a forgalom nem megkülönböztethető egy valódi (pl böngészés által generált) HTTP forgalomtól. |
− | = GNU HTTP Tunnel = |
+ | == GNU HTTP Tunnel == |
− | A GNU HTTP Tunnel egy kliens szerver architektúrájú alkalmazás, HTTP POST és GET metódusokat használ a kapcsolat során. Többféleképpen konfigurálható, aszerint hogy az inputot honnan vegye, az output mi legyen, van-e proxy a hálózatban, kell-e autentikálni stb. A szerver komponense a programnak az általában proxyval védett hálózaton kívül fut, a kliens pedig belül. Nem szükséges, hogy a kliens a felhasználó gépén, a szerver pedig a cél hoszton fusson. A HTTP alagút a szerver és a kliens komponens között épül fel. |
+ | A GNU HTTP Tunnel egy kliens szerver architektúrájú alkalmazás, HTTP POST és GET metódusokat használ a kapcsolat során. Többféleképpen konfigurálható, aszerint hogy az inputot honnan vegye, az output mi legyen, van-e proxy a hálózatban, kell-e autentikálni stb. A program szerver komponense általában proxyval védett hálózaton kívül fut, a kliens pedig belül. Nem szükséges, hogy a kliens a felhasználó gépén, a szerver pedig a cél hoszton fusson. A HTTP alagút a szerver és a kliens komponens között épül fel. |
− | = Proxy kikerülése HTTP alagúttal = |
+ | == Proxy kikerülése HTTP alagúttal == |
− | Először a szerver részt kell elindítani a korlátozott hálózatonkívül: |
+ | Először a szerver részt kell elindítani a korlátozott hálózaton kívül: |
<code> hts -F <célhoszt:port> <port ahol figyeljen> </code> |
<code> hts -F <célhoszt:port> <port ahol figyeljen> </code> |
||
31. sor: | 31. sor: | ||
[[Fájl:htc.jpg]] |
[[Fájl:htc.jpg]] |
||
− | Majd felépítjük a kapcsolatot a kívánt lkalmazással: |
+ | Majd felépítjük a kapcsolatot a kívánt alkalmazással: |
[[Fájl:putty.jpg]] |
[[Fájl:putty.jpg]] |
||
43. sor: | 43. sor: | ||
[[Fájl:Wireshark.png]] |
[[Fájl:Wireshark.png]] |
||
− | = Más implementációk = |
+ | == Más implementációk == |
+ | A HTTP alagútnak a GNU HTTP Tunnel-en kívűl még több implementációja is van, például a HTTPTunnel, ami Perlben van megírva, van távoli menedszent felülete, és bővebb funkciókkal van ellátva mint a GNU HTTP Tunnel. |
||
+ | Vannak még egyéb alagtazási technikák, van például TCP over DNS alagutazás is, ahol a forgalom DNS kérésekbe lesz csomagolva (természetesen ez jelentős overheadet jelent). |
||
+ | |||
+ | == További információk == |
||
+ | |||
+ | A HTTP alagutak működéséről bővebben az angol nyelvű [http://en.wikipedia.org/wiki/HTTP_tunnel wiki oldalon] lehet olvasni. |
||
+ | |||
+ | A TCP over DNS-ről bővebben [http://analogbit.com/tcp-over-dns_howto itt] olvashatsz. |
||
+ | |||
+ | Az IP Over ICMP-ről [https://github.com/jakkarth/icmptx itt] olvashatsz. |
||
− | = További információk = |
+ | A Perl scriptes HTTPTunnel-ról pedig [http://http-tunnel.sourceforge.net itt]. |
− | = Külső hivatkozások = |
+ | == Külső hivatkozások == |
[http://www.nocrew.org/software/httptunnel.html GNU HTTP Tunnel honlapja] |
[http://www.nocrew.org/software/httptunnel.html GNU HTTP Tunnel honlapja] |
||
A lap jelenlegi, 2010. december 17., 11:39-kori változata
írta: Andrus Tamás
A HTTP alagutazás egy lehetséges megoldás bármilyen hálózati forgalom szabványos HTTP kérésekbe való becsomagolására. A HTTP alagút kiépítése valójában kettő vagy több kapcsolat kiépítése, implementációtól függően.
Tartalomjegyzék |
[szerkesztés] 1 A HTTP alagút felhasználási módjai
Az általános modellben a kliens egy szigorú proxy mögött helyezkedik el, a szerver alkalmazás pedig azon kívül. A cél hogy a proxy által korlátozott hálózatból a belső hálózaton kívüli erőforrások elérhetőek legyenek. Ez jelentheti például tiltott weblapok elérését, vagy tiltott protokollok használatát egy korlátozott hálózatban.
[szerkesztés] 2 Alagút HTTP CONNECT metódussal
Létezik megoldás a HTTP CONNECT mechanizmus használatára az alagutazás során, ahol a forgalmat generáló alkalmazás egy köztes szerverhez csatlakozik, ami azután felépíti a kapcsolatot a kívánt kiszolgálóval, a kapcsolatfelépítés után már nem HTTP fog menni a nyitott kapcsolaton, hanem tetszőleges forgalom, amit a köztes szerver fog proxyként továbbítani.
[szerkesztés] 3 Alagút HTTP GET vagy HTTP POST metódussal
A másik megoldás a HTTP GET vagy HTTP POST metódust használja a kommunikációra, ennek megvalósítása kliens-szerver modellel történik. A kapcsolat teljes időtartalma alatt HTTP kérések mennek, ezért a forgalom nem megkülönböztethető egy valódi (pl böngészés által generált) HTTP forgalomtól.
[szerkesztés] 4 GNU HTTP Tunnel
A GNU HTTP Tunnel egy kliens szerver architektúrájú alkalmazás, HTTP POST és GET metódusokat használ a kapcsolat során. Többféleképpen konfigurálható, aszerint hogy az inputot honnan vegye, az output mi legyen, van-e proxy a hálózatban, kell-e autentikálni stb. A program szerver komponense általában proxyval védett hálózaton kívül fut, a kliens pedig belül. Nem szükséges, hogy a kliens a felhasználó gépén, a szerver pedig a cél hoszton fusson. A HTTP alagút a szerver és a kliens komponens között épül fel.
[szerkesztés] 5 Proxy kikerülése HTTP alagúttal
Először a szerver részt kell elindítani a korlátozott hálózaton kívül:
hts -F <célhoszt:port> <port ahol figyeljen>
például:
Ezután a klienset kell beállítani:
htc -F <port ahová az inputot várja> -P <proxy_address:port> -A <user:pass> <hts_cime:port>
például:
Majd felépítjük a kapcsolatot a kívánt alkalmazással:
Az eredmény így néz ki:
Az alagútban a forglom pedig így néz ki:
[szerkesztés] 6 Más implementációk
A HTTP alagútnak a GNU HTTP Tunnel-en kívűl még több implementációja is van, például a HTTPTunnel, ami Perlben van megírva, van távoli menedszent felülete, és bővebb funkciókkal van ellátva mint a GNU HTTP Tunnel. Vannak még egyéb alagtazási technikák, van például TCP over DNS alagutazás is, ahol a forgalom DNS kérésekbe lesz csomagolva (természetesen ez jelentős overheadet jelent).
[szerkesztés] 7 További információk
A HTTP alagutak működéséről bővebben az angol nyelvű wiki oldalon lehet olvasni.
A TCP over DNS-ről bővebben itt olvashatsz.
Az IP Over ICMP-ről itt olvashatsz.
A Perl scriptes HTTPTunnel-ról pedig itt.