Privacy Policy Cookie Policy Terms and Conditions Tunel (informatyka) - Wikipedia, wolna encyklopedia

Tunel (informatyka)

Z Wikipedii

Tunel - zestawienie połączenia między dwoma odległymi hostami tak, by stworzyć wrażenie że są połączone bezpośrednio.

W miarę rozwoju sieci komputerowych najpierw lokalnych, a następnie rozległych, powstało zapotrzebowanie na łączenie ze sobą różnych sieci lokalnych za pośrednictwem publicznych sieci rozległych. Sieci lokalne korzystają jednak z innych protokołów sieciowych niż sieci rozległe. Na przykład popularne sieci lokalne firmy Novell pracują w protokole IPX, sieci rozległe wykorzystują natomiast protokoły Frame-Relay, ATM, X.25, a na nich często IP (np. Internet). Łączenie sieci wykorzystujących inny protokół niż sieć rozległą, za pomocą której łączymy sieci rozległe w sieć wirtualną, nie jest jedynym przesłaniem wykorzystywania tunelowania. Drugim i często istotniejszym jest bezpieczeństwo. Szczególnie ostatnio tunelowanie bywa często łączone z wykorzystaniem metod kryptograficznych. Często zwykli użytkownicy Internetu stosują tę technikę do własnych potrzeb. Przykładem jest korzystanie z dostępnego w Internecie oprogramowania szyfrującego o nazwie SSH. Oprogramowanie to, oprócz bezpiecznej pracy zdalnej, umożliwia tworzenie dodatkowego kanału szyfrowanego, przez który użytkownik może "tunelować" dowolną inną - potencjalnie narażoną na niebezpieczeństwo podsłuchu - usługę TCP/IP (np. FTP, telnet, IRC). Warunkiem jest jedynie zainstalowane SSH na obu końcach połączenia.

Generalnie można stwierdzić, iż tunelowanie umożliwia przesyłanie pewnych usług sieciowych za pośrednictwem innych, często odmiennych usług sieci, pracujących w różnych standardach.


Spis treści

[edytuj] Tunele w oparciu o SSH

Tunelowanie, czyli inaczej przekierowywanie portów polega na przesyłaniu niezabezpieczonych pakietów protokołów TCP (POP3, SMTP czy HTTP) przez bezpieczny protokół SSH.

Istnieją dwa rodzaje przekierowania portów: lokalne (wychodzące) oraz zdalne (przychodzące).

  1. Lokalne – przekierowuje ruch przychodzący na port lokalny na odpowiedni port zdalny. Na przykład ruch przychodzący na port 1234 klienta może zostać przekierowany na port 23 na serwerze.
  2. Zdalne – przekierowuje ruch przychodzący na port na serwerze na odpowiedni port lokalny. Na przykład ruch przychodzący na port 1234 na serwerze może zostać przekierowany na port 23 na komputerze lokalnym.


[edytuj] Ustawienie przekierowania w MS Windows

W przykładzie został użyty program PuTTy.

Zostało ustawione przekierowanie lokalne z portu 5000 na port 80, czyli http serwera stud.ics.p.lodz.pl.

Po otwarciu połączenia z serwerem stud.ics.p.lodz.pl poprzez SSH, powinien zostać utworzony tunel. Po otworzeniu przeglądarki internetowej i wpisaniu jako adresu: http://localhost:5000, powinna się wyświetlić strona edu.ics.p.lodz.pl.

[edytuj] Ustawienie przekierowania w Linuksie

W Linuksie porty możemy przekierować poprzez wpisanie polecenia :

ssh -L 5000:edu.ics.p.lodz.pl:80 shock@stud.ics.p.lodz.pl

Polecenie to przekieruje zapytanie na port 5000 na lokalnym komputerze na port 80 serwera edu.ics.p.lodz.pl, używając tunelu SSH z wykorzystaniem serwera stud.ics.p.lodz.pl.

[edytuj] Tunele GRE

GRE czyli Generic Routing Encapsulation jest to protokół, który został wynaleziony przez CISCO.

[edytuj] Przykład utworzenia tunelu w Linuksie

Mając 2 sieci wewnętrzne A oraz B i oraz sieć C z dostępem do Internetu.

Sieć A wygląda następująco:

network 10.0.1.0
netmask 255.255.255.0
router  10.0.1.1

Router w sieci C ma adres 172.16.17.18, nazwijmy go neta.

Sieć B natomiast wygląda tak:

network 10.0.2.0
netmask 255.255.255.0
router  10.0.2.1

Router w sieci C ma adres 172.19.20.21, nazwijmy go netb.

Zadaniem sieci C będzie przekazywanie wszystkich pakietów pomiędzy siecią A oraz B.

Na routerze sieci A trzeba wykonać następujące operacje:

Krok 1.)

ip tunnel add netb mode gre remote 172.19.20.21 local 172.16.17.18 ttl 255

Dodaliśmy tutaj urządzenie tunelujące i nazwaliśmy je netb. Nakazaliśmy używać protokołu tunelowanie GRE („mode gre”). Jako adres zdalny podaliśmy IP 172.19.20.21, czyli adres routera sieci na drugim końcu. Wpisaliśmy także, że pakiety powinny pochodzić z adresu 172.16.17.18, co pozwala routerowi na posiadanie kilku adresów IP w sieci C i pozwala decydować, który z nich użyć do tunelowania. Time To Live pakietów ustawiamy na 255.

Krok 2.)

ip link set netb up

Polecenie to uruchamia urządzenie.

Krok 3.)

ip addr add 10.0.1.1 dev netb

Tutaj nadaliśmy nowopowstałemu interfejsowi netb adres 10.0.1.1.

Krok 4.)

ip route add 10.0.2.0/24 dev netb

Dodajemy trasę do sieci B.

Na routerze sieci B musimy postąpić podobnie:

ip tunnel add neta mode gre remote 172.16.17.18 local 172.19.20.21 ttl 255
ip link set neta up
ip addr add 10.0.2.1 dev neta
ip route add 10.0.1.0/24 dev neta

Aby usunąć tunel z sieci A należy wpisać:

ip link set netb down
ip tunnel del netb

Aby usunąć tunel z sieci B należy wpisać:

ip link set neta down
ip tunnel del neta

[edytuj] Tunele IPSec

IPSEC czyli Internet Protocol SECurity udostępnia mechanizmy silnej kryptografii, które umożliwiają uwierzytelnianie oraz enkrypcję. Uwierzytelnienie gwarantuje, że pakiety pochodzą od właściwego nadawcy oraz że nie zostały zmienione podczas transmisji. Enkrypcja (szyfrowanie) zapobiega przeglądaniu pakietów przez nieuprawnionych użytkowników.

Uruchamianie tunelowania IPSec:

Dla przykładu stwórzmy tunel, który będzie cały ruch z sieci 10.0.0.216 przekierowywał do sieci 130.161.0.0/16 poprzez 10.0.0.11.

#!/sbin/setkey -f
flush;
spdflush;
add 10.0.0.216 10.0.0.11 esp 34501

-m tunnel -E 3des-cbc "123456789012123456789012";

spdadd 10.0.0.0/24 130.161.0.0/16 any -P out ipsec
          esp/tunnel/10.0.0.216-10.0.0.11/require;

Atrybut „-m tunnel” jest bardzo ważny, ponieważ konfiguruje on enkrypcję ESP czyli Encapsulated Security Payload pomiędzy dwoma punktami końcowymi 10.0.0.216 oraz 10.0.0.11.

Następnym poleceniem konfigurujemy tunel. Jądro ma zadanie zabezpieczyć cały ruch z 10.0.0.0/24 do 130.161.0.0. Pakiety mają być potem dostarczone do 10.0.0.11.

Komputer 10.0.0.11 także musi zostać odpowiednio skonfigurowany:

#!/sbin/setkey -f
flush;
spdflush;
add 10.0.0.216 10.0.0.11 esp 34501

-m tunnel -E 3des-cbc "123456789012123456789012";

spdadd 10.0.0.0/24 130.161.0.0/16 any -P in ipsec
          esp/tunnel/10.0.0.216-10.0.0.11/require;

Polecenia są identyczne z wyjątkiem zmiany '-P out' na '-P in'

[edytuj] Tunele IP in IP

Ten rodzaj tunelowania istnieje w Linuksie od dawna. Działa tylko dla IPv4, nie jest kompatybilny z innymi systemami operacyjnymi.

Sieci są takie same jak w przykładzie tunelowania GRE:

Po pierwsze musimy mieć zainstalowane moduły: ipip.o oraz new_tunnel.o

Router sieci A konfigurujemy w następujący sposób:

ifconfig tunl0 10.0.1.1 pointopoint 172.19.20.21
route add -net 10.0.2.0 netmask 255.255.255.0 dev tunl0

Router sieci B konfigurujemy w następujący sposób:

ifconfig tunl0 10.0.2.1 pointopoint 172.16.17.18
route add -net 10.0.1.0 netmask 255.255.255.0 dev tunl0

Aby wyłączyć tunel wpisujemy:

ifconfig tunl0 down


[edytuj] Linki zewnętrzne

przykład w PLD


Zalążek artykułu To jest tylko zalążek artykułu z dziedziny informatyki. Jeśli możesz, rozbuduj go.
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu