HTTP Tunneling

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(Más implementációk)
 
(egy szerkesztő 9 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>
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.
 
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).
 
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 =
+
== 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.
  +
  +
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:

Fájl:hts.png

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:

Fájl:htc.jpg

Majd felépítjük a kapcsolatot a kívánt alkalmazással:

Fájl:putty.jpg

Az eredmény így néz ki:

Fájl:putty logged in.JPG

Az alagútban a forglom pedig így néz ki:

Wireshark.png

[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.

[szerkesztés] 8 Külső hivatkozások

GNU HTTP Tunnel honlapja

GNU HTTP Tunnel Binárisok CygWin-re

Személyes eszközök