1. Wstęp teoretyczny Sieci Komputerowe Translacja adresów sieciowych Network Address Translation (NAT) - technika translacji adresów sieciowych. Wraz ze wzrostem ilości komputerów w Internecie, pojawiła się groźba wyczerpania puli dostępnych adresów internetowych IPv4. Udostępnianie połączenia do Internetu z wykorzystaniem mechanizmu NAT. Aby temu zaradzid, lokalne sieci komputerowe, korzystające z tzw. adresów prywatnych (specjalna pula adresów tylko dla sieci lokalnych), mogą zostad podłączone do Internetu przez jeden komputer (lub router), posiadający mniej adresów internetowych niż komputerów w tej sieci. Router ten, gdy komputery z sieci lokalnej komunikują się ze światem, dynamicznie tłumaczy adresy prywatne na adresy zewnętrzne, umożliwiając użytkowanie Internetu przez większą liczbę komputerów niż posiadana liczba adresów zewnętrznych. NAT jest często stosowany w sieciach korporacyjnych oraz osiedlowych. Rys 5. Udostępnianie połączenia do Internetu z wykorzystaniem mechanizmu NAT W zależności od miejsca podjęcia decyzji wyróżnia się dwie podstawowe grupy mechanizmów NAT: akcja translacji podejmowana jest przed podjęciem decyzji routingu PREROUTING, grupa obemuje wszelkie mechanizmy przekierowania DNAT, akcja translacji podejmowana jest po podjęciu decyzji routingu POSTROUTING, grupa obejmuje wszelkie mechanizmy translacji SNAT, Masquerade. Obrazuje to poniższy rysunek: 1
Rys 6. Klasyfikacja mechanizmów NAT Source Network Address Translation (SNAT) jest techniką polegającą na zmianie adresu źródłowego pakietu IP na inny. Stosowana jest często w przypadku podłączenia sieci dysponującej adresami prywatnymi do sieci Internet. Wówczas router, przez którego podłączono sied, podmienia adres źródłowy prywatny na adres publiczny (najczęściej swój własny). Szczególnym przypadkiem SNAT jest maskarada (Masquerade) mająca miejsce, gdy router ma zmienny adres IP (np. otrzymuje go w przypadku połączenia modemowego wdzwanianego). Wówczas router zmienia adres źródłowy na taki, jak adres interfejsu, przez który pakiet opuszcza router. Rys 7. Funkcjonowanie mechanizmu SNAT Destination Network Address Translation (DNAT) jest techniką polegającą na zmianie adresu docelowego pakietu IP na jakiś inny. Stosowana jest często w przypadku, gdy serwer mający byd dostępny z Internetu ma tylko adres prywatny. W tym przypadku router dokonuje translacji adresu docelowego pakietów IP z Internetu na adres tego serwera. 2
Następstwem korzystania z mechanizmów NAT są: Rys 8. Funkcjonowanie mechanizmu DNAT większe bezpieczeostwo komputerów znajdujących się za NAT-em, problematyka uruchomienia zewnętrznie dostępnych serwisów na komputerach w sieci wewnętrznej - koniecznośd stosowania mechanizmów przekierowywania portów. Source NAT, Masquerade Zarządzanie regułami filtracji, translacji i modyfikacji pakietów w systemie Linux można zrealizowad za pomocą mechanizmu iptables. Praca programu opiera się na trzech podstawowych tablicach gromadzących odpowiednie reguły: filter - tablica filtracji i reguł firewalla, nat - tablica translacji (wykorzystywana w ramach omawianych zagadnieo) oraz mangle - tablica zawierająca reguły modyfikacji zawartości pakietów. Tworzenie reguł odbywa się w sposób bardzo prosty i zaczyna się od wyboru mechanizmu, jakim będziemy się posługiwali (PRE- oraz POSTROUTING) oraz tabeli, do której będziemy dodawali reguły (nat). Kolejnym krokiem jest zdefiniowanie akcji, która ma byd podejmowana oraz adresów oraz ewentualnych filtrów, których ma dotyczyd. Składnia polecenia iptables przedstawia się następująco: iptables -L - polecenie listuje wszystkie zdefiniowane reguły, iptables -t [tablica]... - polecenie wykonuje odpowiednie akcje na konkretnej tablicy, przykładowo: iptables -t nat -L - listuje wszystkie reguły utworzone dla tabeli nat, iptables -i -o [nazwa interfejsu]... - polecenie dotyczy odpowiedniego interfejsu wychodzącego (-o) bądź wchodzącego (-i), nazwy interfejsów, zgodnie z konwencją Linuxową rozpoczynają się od deskryptora eth oraz numeru karty począwszy od 0, 3
iptables -t nat -A [nazwa łaocucha] - skojarzenie reguł z odpowiednim łaocuchem (PREROUTING bądź POSTROUTING), iptables -s -d [adres IP]... - zakres polecenia jest ograniczany do konkretnych adresów źródła (-s) bądź celu (-d), iptables -p [protokół]... - zakres polecenia ograniczony do konkretnego protokołu, iptables -p tcp udp -sport -dport [numer portu] - reguła dotycząca konkretnego portu źródłowego (- sport) bądź docelowego (-dport) w ramach protokołów tcp lub udp, iptables...-j MASQUERADE - skojarzenie z regułą akcji maskowania, iptables...-j SNAT -to [adres IP] - skojarzenie z regułą akcji SNAT na konkretny adres IP bądź zakres adresów IP, iptables -t [nazwa tablicy] -f - wyczyszczenie wszystkich reguł z konkretnej tablicy (w przypadku braku argumentu -t - wyczyszczenie wszystkich reguł, iptables -t [nazwa tablicy] -X [numer reguły] - usunięcie reguły o konkretnym numerze z podanej tablicy reguł, iptables-save > [nazwa pliku] - utworzenie kopii reguł w zewnętrznym pliku, iptables-restore < [nazwa pliku] - przywrócenie kopii reguł z zewnętrznego pliku. Przykłady: Lokalna sied komputerowa została podłączona do Internetu poprzez komputer spełniający rolę routera wyposażony w dwie karty sieciowe - eth0: 192.168.1.1/24 należące do sieci LAN oraz eth1 należące do sieci WAN o adresie przypisywanym dynamicznie przez providera. Udostępnienie połączenia internetowego dla sieci LAN: iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE Lokalna sied komputerowa została podłączona do Internetu poprzez komputer spełniający rolę routera wyposażony w dwie karty sieciowe - eth0: 192.168.1.1/24 należące do sieci LAN oraz eth1 należące do sieci WAN o adresie 172.10.234.25. Udostępnienie połączenia internetowego dla sieci LAN: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 172.10.234.25 4
Lokalna sied komputerowa została podłączona do Internetu poprzez router wyposażony w cztery karty sieciowe - eth0: 192.168.1.1/24 należące do sieci LAN oraz eth1, eth2 oraz eth3 należące do sieci WAN o adresach odpowiednio 172.10.234.25, 172.10.234.26 oraz 172.10.234.27. Udostępnienie połączenia internetowego dla sieci LAN z wykorzystaniem NAT na wszystkich adresach zewnętrznych: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 172.10.234.25-172.10.234.27 Dla lokalnej sieci komputerowej 192.168.1.0/24 udostępniono połączenie do Internetu poprzez kilka interfejsów o adresach odpowiednio 172.10.234.25-172.10.234.27 oraz 212.51.216.1-212.51.216.5. Konfiguracja udostępniania połączenia: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 172.10.234.25-172.10.234.27 --to 212.51.216.1-212.51.216.5 Zadanie: Należy zorganizowad małą sied lokalną opartą o dwa komputery połączone okablowaniem z sali laboratoryjnej. Jeden z komputerów, pełniący rolę routera posiada również przyłącze również do sieci zewnętrznej. Należy udostępnid połączenie do Internetu (adres przyznany z serwera DHCP w KISie) za pomocą mechanizmu maskarady. Zadanie należy wykonad udostępniając połączenie na komputerze z systemem Linux (Zadanie należy wykonad posługując się podinterfejsami systemu Linux). 5