Str. 1 Ćwiczenie 5 DHCP + udostępnienie Internetu Cel ćwiczenia: sieci LAN. Zapoznanie się z instalacją i konfiguracją serwera DHCP. Udostępnienie Internetu Przed przystąpieniem do ćwiczenia uczeń powinien umieć: - poruszać się po systemie Linux, w trybie tekstowym, - zainstalować kartę sieciową w systemie Linux, - skonfigurować połączenie sieciowe. Po wykonaniu ćwiczenia uczeń będzie umiał: - zainstalować serwer DHCP, - skonfigurować serwer DHCP, - udostępnić Internet sieci LAN. Uwagi o realizacji ćwiczenia: Ćwiczenie podzielone jest na rozdziały. Rozdział zbudowany jest z opisu teoretycznego omawiającego wybrane zagadnienie i zadania do wykonania. Zadania umieszczone są w ramkach.
Str. 2 5.1 DHCP - Dynamic Host Configuration Protocol 5.1.a Wstęp Dynamic Host Configuration Protocol (DHCP) jest protokołem umożliwiającym automatyczną konfigurację IP komputerów. Odpowiednio skonfigurowana usługa na serwerze może znacznie uprościć zarządzanie stacjami roboczymi, pracującymi w sieci TCP/IP. Klienci DHCP mogą otrzymać adres IP z maską, a także wiele innych opcjonalnych parametrów protokołu TCP/IP, jak: adres bramy, adres serwera DNS czy WINS. Stacja robocza, z załączoną funkcją automatycznego uzyskania adresu IP, prosi serwer DHCP o parametry IP. Serwer, po otrzymaniu żądania, dzierżawi na określony czas adres IP z puli. W sieciach, w których pracują stacjonarne komputery, dzierżawę ustala się na kilka, kilkanaście dni. Zapobiega to blokowaniu adresów, w przypadku wymiany karty sieciowej. Po wygaśnięciu dzierżawy, adres wraca do puli. Proces dzierżawy składa się z czterech kroków: DHCPDISCOVER na początku procesu dzierżawy klient inicjuje ograniczoną wersję protokołu TCP/IP i emituje komunikat z żądaniem lokalizacji serwera DHCP i adresu IP. Ponieważ klient nie ma własnego adresu IP i nie zna także adresu serwera, dlatego w komunikacie DHCPDISCOVER jako adres źródłowy wykorzystany jest 0.0.0.0, a jako docelowy 255.255.255.255. DHCPDISCOVER zawiera także adres sprzętowy (MAC) klienta i nazwę komputera, dzięki czemu serwer DHCP może określić, który klient wysłał żądanie. DHCPOFFER wszystkie serwery DHCP, które odebrały żądanie, emitują komunikat DHCPOFFER zawierający: sprzętowy adres klienta, oferowany adres IP, maskę podsieci, długość trwania dzierżawy, adres serwera oferującego. Serwery DHCP wysyłają komunikat emisji (broadcast), ponieważ klient nie posiada jeszcze adresu IP. DHCPREQUEST po odebraniu DHCPOFFER, klient wybiera pierwszą ofertę i emituje komunikat DHCPREQUEST do wszystkich serwerów DHCP, informujący o zaakceptowaniu oferty. Komunikat ten zawiera adres IP serwera, którego oferta została zaakceptowana, pozostałe serwery odwołują ofertę i przenoszą oferowany adres z powrotem do puli. DHCPACK serwer DHCP, który nadał zaakceptowaną ofertę, wysyła potwierdzenie komunikatem DHCPACK. Zawiera on prawidłową dzierżawę adresu IP i inne informacje konfiguracyjne. Stacja robocza, konfigurowana przez DHCP, w połowie czasu dzierżawy, wysyła komunikat DHCPPREQUEST do serwera, który wydzierżawił adres, z prośbą o odnowienie dzierżawy wykorzystywanego adresu. Jeżeli adres jest dostępny, serwer wysyła DHCPACK z nowym terminem dzierżawy i uaktualnionymi parametrami konfiguracyjnymi. Jeżeli klient stara się wydzierżawić swój poprzedni adres IP, a jest on zajęty lub komputer został przeniesiony do innej podsieci, wówczas serwer wysyła komunikat DHCPNACK. Jeżeli serwer jest niedostępny przy odnowieniu dzierżawy, wówczas po upływie 87,5 procent czasu dzierżawy, klient emituje DHCPPREQUEST do dowolnego dostępnego serwera DHCP. Serwery DHCP mogą przedłużyć dzierżawę, wysyłając DHCPACK lub zmusić klienta do ponownego inicjowania dzierżawy komunikatem DHCPNACK. Po upływie czasu dzierżawy, klient musi natychmiast zaprzestać korzystania z adresu IP i ponowić proces dzierżawy.
Str. 3 Treść rozdziału 4.1.b 4.1.d pochodzi z opracowania PLD Linux Distribution Podręcznik użytkownika, administratora i twórcy (Rozdział 9. Usługi dostępne w PLD - DHCPD), rozpowszechnianego na zasadzie licencji GNU Free Documentation License. 5.1.b Instalacja Aby uruchomić serwer DHCP musimy oczywiście zainstalować go. Instalacja w CentOS jest prosta:. yum install dhcp 5.1.c Konfiguracja Wszystkie zmiany będą odbywać się w pliku /etc/dhcp/dhcpd.conf. Poniżej przykładowy plik konfiguracyjny: $domena - to domena, na której pracuje serwer DHCPD (np. "ckp.pl") option domain-name "$domena"; $dns - adres ip serwera dns, z jakiego mają korzystać komputery w sieci (np. 212.160.198.2) option domain-name-servers $dns; Wyłączenie aktualizacji dynamicznych. ddns-update-style none; Parametry czasowe odświeżania informacji po stronie klientów w sieci (w sekundach) default-lease-time 604800; max-lease-time 604800; $subnet - adres ip podsieci, $mask - maska sieci subnet $subnet netmask $mask { $ip1 $ip2 - zakres adresów ip możliwych do przydzielenia przez serwer. (np. 192.168.1.2 192.168.1.21) przy 20 komputerach w sieci. 192.168.1.1 rezerwujemy sobie na serwer. range $ipl $ip2; $mask - adres maski podsieci, np. 255.255.255.0 option subnet-mask $mask; $broadcast - adres rozgłoszeniowy sieci, np. 192.168.1.255 option broadcast-address $broadcast; $gateway - adres bramy w podsieci (czyli zwykle serwera, na którym jest uruchomione DHCPD) option routers $gateway; Teraz przechodzimy do konfiguracji komputerów w sieci. $name - dowolna nazwa domeny komputera w sieci host $name { $mac - adres sprzętowy karty sieciowej, do której przypisujemy ip. Występuje w postaci sześciu liczb, po dwie cyfry w systemie szesnastkowym, oddzielonych dwukropkami, np. 00:06:29:F5:22:81. Adres ten możemy znaleźć dzięki programowi ifconfig
Str. 4 w systemach Uniksowych i winipcfg lub ipconfig w Windowsie. Można także na serwerze użyć komendy arp do wyświetlenia wszystkich dostępnych w sieci kart sieciowych i ich adresów sprzętowych. hardware ethernet $mac; $ip - adres ip, który przypisujemy z puli opisanej w parametrze range (np. 192.168.1.2) fixed-address $IP; I to już prawie koniec, teraz zostaje nam sprawdzenie pliku /etc/sysconfig/dhcpd. Znajdujemy w nim linijki: DHCPD_INTERFACES="eth1" W cudzysłów wpisujemy nazwy interfejsów, na których będzie nasłuchiwał dhcpd, np. eth1. Dodatkowo należy zadbać o to, aby nazwa komputera była rozpoznawalną nazwą DNS. 5.1.d Uruchomienie Serwer uruchamiamy standardowo: service dhcpd start Zadanie 5.1 Instalacja i konfiguracja DHCP 1. W maszynie wirtualnej ustaw 2 karty sieciowe: Karta 1: Mostkowana karta sieciowa Karta 2: Sieć wewnętrzna 2. Do interfejsu eth0 przypisz adres 10.0.10.xx maska 255.255.255.0, gdzie xx to numer twojego komputera. 3. Do interfejsu eth1 przypisz adres 192.168.xx.1 maska 255.255.255.0, gdzie xx to numer twojego komputera. 4. Ustaw bramę i DNS na adres 10.0.10.254. 5. Wykonaj pinga na wp.pl. 6. Ustaw nazwę komputera na komp-xx, gdzie xx to numer twojego komputera. 7. Dopisz swoją nazwę komputera do /etc/hosts, z adresem 10.0.10.xx, gdzie xx to numer twojego komputera. 8. Wykonaj restart serwera. 9. Zainstaluj serwer DHCP (yum install dhcp). 10. Skonfiguruj serwer DHCP dla twojej podsieci lokalnej 192.168.xx.0/24, z zakresem od 192.168.xx.2 do 192.168.xx.21. 11. Uruchom usługę dhcpd. 12. Uruchom drugą maszynę wirtualną (stacja robocza), ustaw 1 kartę sieciową: Karta 1: Sieć wewnętrzna 13. Na stacji roboczej dla karty sieciowej ustaw korzystanie z DHCP. 14. Wykonaj restart sieci na stacji roboczej i sprawdź, jaki adres otrzymała karta sieciowa. Sprawdź ustawienia bramy i serwerów nazw. 15. Ustaw rezerwację, dla karty sieciowej twojej stacji roboczej, na adres 192.168.xx.15. Ogranicz maksymalnie dostępną pulę adresów. 16. Wykonaj restart sieci na stacji roboczej i sprawdź, jak adres otrzymał interfejs sieciowy.
Str. 5 5.2 NAT udostępnienie Internetu sieci LAN 5.2.a Translacja adresów sieciowych Translacja adresów sieciowych (NAT Network Address Translation) jest routerem IP, który posiada zdolność translacji adresów IP i numerów portów TCP/UDP w czasie ich przekazywania. NAT wykorzystywany jest w sytuacji, gdy sieć podłączona jest do Internetu i korzysta jedynie z jednego adresu IP. Dzięki NAT komputery sieci lokalnej korzystające z adresów prywatnych, są w stanie komunikować się z Internetem. Gdy użytkownik sieci LAN pobiera dane z Internetu, system wysyła pakiet IP, który w nagłówku posiada: adres przeznaczenia adres IP zasobu w Internecie, adres źródła prywatny adres IP (zmieniany przez NAT), port przeznaczenia port TCP lub UDP zasobu w Internecie, port źródła port TCP lub UDP aplikacji źródłowej (zmieniany przez NAT). Router NAT przesyła pakiet IP, dokonując odpowiedniej translacji: adres źródła zamienia na adres publiczny, przypisany przez ISP, port źródła przemapowuje na inny port TCP lub UDP, wolny na serwerze NAT. Po odebraniu odpowiedzi, dokonuje odwrotnej translacji: adres przeznaczenia zamienia na prywatny adres IP (na postawie portu), port przeznaczenia na port TCP lub UDP aplikacji źródłowej. Jeżeli użytkownicy LAN komunikują się z Internetem, NAT korzysta z mapowania dynamicznego. Istnieje także możliwość zdefiniowania mapowania statycznego, dzięki czemu usługi działające w sieci prywatnej mogą być dostępne z Internetu, np. port 80 serwera NAT można przemapować na port 80 komputera w sieci prywatnej, z działającą usługą WWW. Domyślnie NAT zamienia adresy IP i numery portów TCP/UDP w nagłówkach pakietów. Dla większości protokołów taka translacja jest przeźroczysta. Występują jednak protokoły aplikacyjne, które dodatkowo przenoszą adresy i numery portów w nagłówkach. Np. protokół FTP przenosi adres IP w nagłówku polecenia port. Jeżeli NAT nie zamieni poprawnie tego adresu, mogą pojawić się problemy z połączeniem. W takim przypadku wymagany jest edytor NAT. Jest on dodatkowo instalowanym składnikiem, który potrafi dokonać odpowiednich translacji.
Str. 6 Zadanie 5.2 NAT 1. Zezwól na przekazywanie pakietów, w /etc/sysctl.conf (net.ipv4.ip_forward = 1) oraz skasuj łańcuch FORWARD (iptables F FORWARD). 2. Wykonaj restart sieci. 3. Załaduj moduły śledzenia połączeń: ip_conntrack i ip_conntrack_ftp. 4. Załaduj moduły dla NAT: iptable_nat i ip_nat_ftp. 5. Skasuj tabelę NAT (iptables -t nat F). 6. Ustaw działanie NAT dla podsieci twojej sieci lokalnej (iptables -t nat -A POSTROUTING -s 192.168.xx.0/24 -d 0/0 -j SNAT --to twój_ip). 7. Sprawdź ze stacji roboczej, czy twój serwer pełni rolę bramy do Internetu. 8. Zapisz ustawienia iptables (service iptables save). 9. W pliku startowym (/etc/rc.d/rc.local) dopisz polecenia tak, aby wymagane moduły uruchamiały się przy starcie systemu. 10. Zrestartuj serwer. 11. Sprawdź z dodatkowego komputera, czy twój serwer pełni rolę bramy do Internetu. 12. Zmodyfikuj ustawienia iptables tak, aby NAT nie przepuszczał całego ruchu do Internetu, jedynie poniższe protokoły: udp domain tcp http tcp https tcp ftp tcp ftp-data tcp pop3 tcp pop3s tcp smtp icmp. 13. Zapisz ustawienia iptables i zrestartuj serwer, sprawdź ze stacji roboczej czy dobrze skonfigurowałeś serwer (np. telnet na ckp.pl port 25).
Opracowanie: mgr inż. Tomasz Chudzikiewicz Str. 7 25.10.2012 Wrocław