Sieciowe Systemy Operacyjne Wojciech Gumiński Wojciech.Guminski@eti.pg.gda.pl http://pg.guminski.net
Informacje zawarte w tym dokumencie są materiałami pomocniczymi do prowadzenia wykładu. Nie zastąpią ani podręcznika, ani tym bardziej obecności na wykładach. Niektóre wpisy w przykładowych plikach konfiguracyjnych są wzajemnie sprzeczne, ale służą ilustracji możliwości uzyskania określonej funkcjonalności usługi.
1. Sieciowe systemy operacyjne zadania
2. Wprowadzenie do TCP/IP TCP/IP
Adres IPv4 Przykład 192.168.5.10/24 Dziesiętnie Binarnie Adres IP 192.168.005.010 11000000.10101000.00000101.00001010 Maska sieci 255.255.255.000 11111111.11111111.11111111.00000000 Adres sieci 192.168.005.000 11000000.10101000.00000101.00000000 Adres rozgłoszeni owy 192.168.005.255 11000000.10101000.00000101.11111111 Adres sieci = Adres IP AND Maska sieci Adres rozgłoszeni owy = Adres IP OR NOT Maska sieci Klasy adresów Klasa Początkowe bity Adres początkowy Adres końcowy Maska A 0 0.0.0.0 127.255.255.255 255.000.000.000 B 10 128.0.0.0 191.255.255.255 255.255.000.000 C 110 192.0.0.0 223.255.255.255 255.255.255.000 D multikcast 1110 224.0.0.0 239.255.255.255 255.255.255.240 E zarezerwowana 1111 240.0.0.0 255.255.255.255 Adresy prywatne (nierutowalne) Klasa Adres początkowy Adres końcowy 1 x A 10.0.0.0 10.255.255.255 16 x B 172.16.0.0 172.31.255.255 256 x C 192.168.0.0 192.168.255.255 (Microsoft*)/16 169.254.1.0 169.254.254.255 *Przydzielane pseudolosowo w SO Windows 98 i nowszych przy braku serwera DHCP Adresowanie bezklasowe (CIDR Classless Inter-Domain Routing ) CIDR Maska dziesiętnie Liczba hostów* /24 255.255.255.0 254 /25 255.255.255.128 126 /26 255.255.255.192 62 /27 255.255.255.224 30 /28 255.255.255.240 14 /29 255.255.255.248 6 /30 255.255.255.252 2 /31 255.255.255.254 2 (PPP) /32 255.255.255.255 1 *Przy połączeniach międzysieciowych liczba hostów zmniejsza się o 1.
UDP User Datagram Bajt Bity 0-15 Bity 16-31 0 Port nadawcy Port odbiorcy 4 Długość Suma kontrolna 8 Dane UDP w IP4 Bajt Bity 0-15 Bity 16-31 0 Adres nadawcy 4 Adres odbiorcy 8 Protokół, flagi Długość UDP 12 Port nadawcy Port odbiorcy 16 Długość Suma kontrolna 20 Dane TCP Transport Control Protocol Bajt Bity 0-15 Bity 16-31 0 Port nadawcy Port odbiorcy 4 Numer sekwencyjny 8 Numer potwierdzenia 12 Flagi Szerokość okna 16 Suma kontrolna Priorytet 20 Opcje (opcjonalnie) 20/24 Dane Połączenie w TCP/IP
Diagram stanów połączenia TCP Rysunek pochodzi z www.wikipedia.com Klasyczna sekwencja nawiązywania połączenia Three way handshake 1 klient -> serwer SYN 2 serwer -> klient SYN/ACK 3 klient -> serwer ACK Transmisja (ACK)
3.Konfiguracja systemów MS Windows do pracy w sieci 3.1. Konfiguracja graficzna 3.1.1 Konfiguracja IP i DNS 3.1.2. Konfiguracja zapory 3.2. Konfiguracja z wiersza poleceń 3.2.1. Konfiguracja IP i DNS z DHCP dla połączenia lokalnego netsh interface ip set address Połączenie lokalne dhcp netsh interface ip set dns Połączenie lokalne dhcp netsh interface ip set wins Połączenie lokalne lne dhcp
3.2.2. Konfiguracja IP i DNS z DHCP dla połączenia o określonej nazwie netsh interface ip set address Połączenie sieci bezprzewodowej dhcp netsh interface ip set dns Połączenie sieci bezprzewodowej dhcp netsh interface ip set wins Połączenie e sieci bezprzewodowej dhcp Uwaga: Do edycji skryptów zawierających znaki diakrytyczne należy używać programu EDIT, a nie NOTEPAD. System MS Windows stosuje różne kodowanie znaków diakrytycznych w konsoli (CP852) i w środowisku graficznym (Win1250). 3.2.3. Statyczna konfiguracja IP i DNS netsh interface ip set address static Połączenie lokalne addr=192.168.3.10.10 mask=255.255.255.0 gateway=192.168.3.254.254 gwmetric=1 netsh interface ip set address static Połączenie lokalne 192.168.1.10 255.255.255.0 192.168.1.254 1 netsh interface ip add address static Połączenie lokalne 10.1.0.10 255.0.0.0 netsh interface i ip delete address Połączenie lokalne 10.1.0.10 ALL netsh interface i ip set dns static Połączenie lokalne 192.168.1.1 netsh interface i ip add dns static Połączenie lokalne 153.19.250.100 netsh interface ip set wins static Połączenie lokalne 192.168.1.1 3.2.4. Konfiguracja wyjątków zapory netsh firewall add portopening TCP 80 WordWideWeb subnet netsh firewall delete portopening TCP 80 netsh firewall set icmsetting 8 ENABLE W ogólności: netsh firewall add portopening [ protocol = ] TCP UDP ALL [ port = ] 1-655351 [ name = ] nazwa [ [ mode = ] ENABLE DISABLE [ scope = ] ALL SUBNET CUSTOM [ addresses = ] adresy [ profile = ] CURRENT DOMAIN STANDARD ALL [ interface = ] nazwa ] netsh firewall set icmpsetting [ type = ] 2-5 82 5 8-9 11 9 11-13 17 ALL 13 17 ALL [ [ mode = ] ENABLE DISABLE [ profile = ] CURRENT DOMAIN STANDARD ALL [ interface i = ] nazwa ] type - Typ protokołu ICMP. 2 - Zezwala na za duŝe pakiety wychodzące. 3 - Zezwala na nieosiągalność miejsca przeznaczenia danych wyjściowych. 4 - Zezwala na wygaszanie źródła wychodzącego. 5 - Zezwala na przekierowywanie. 8 - Zezwala na przychodzące Ŝądanie echa. 9 - Zezwala na przychodzące Ŝądanie routera. 11 - Zezwala na przekroczenie limitu czasu danych wyjściowych. 12 - Zezwala na problem z parametrem wychodzącym. 13 - Zezwala na przychodzące Ŝądanie sygnatury czasowej. 17 - Zezwala na przychodzące Ŝądanie maski. ALL - Wszystkie typy. 3.2.5. Konfiguracja aplikacji dozwolonych dla zapory netsh firewall add allowedprogram C:\www www\wwwserv wwwserv.exe wwwserv ENABLE netsh firewall add allowedprogram C:\www www\wwwserv wwwserv.exe wwwserv ENABLE SUBNET netsh firewall add allowedprogram C:\www www\wwwserv wwwserv.exe wwwserv ENABLE CUSTOM 10.0.0.0/8, 172.16.0.0/16, 192.168.0.0/24, LocalSubnet
4. Konfiguracja systemów Linux do pracy w sieci IP 4.1. Konfiguracja za pomocą DHCP pump dhclient dhcpc #uruchomienie klienta dhcp pump #wyswietlenie statusu pump s #wyłączenie klienta i zwolnienie dynamicznej konfiguracji pump -k 4.2. Konfiguracja statyczna ifconfig eth0 192.168.1.10 netmask 255.255.255.0 0 broadcast 192.168.1.255 route add default gw 192.168.1.254 cat nameserver 192.168.1.1 >/etc/resolv.conf 4.2.1. Dodatkowy adres IP ifconfig eth0:1 10.1.0.10 netmask 255.255.0.0.0.0 #wyłączenie ifconfig eth0:1 down #ponowne włączenie ifconfig eth0:1 up 4.3. Konfiguracja za pomocą pakietu ip 4.3.1. Konfiguracja statyczna #wylaczenie ip link set eth0 down #wyczyszczenie poprzedniej konfiguracji ip addr flush eth0 #ustawienie adresu ip addr add 192.168.1.10/24 broadcast 192.168.1.255 dev eth0 #włączenie ip link set eth0 up #routing ip route add default via 192.168.1.1
5. DHCP Dynamic Host Configuration Protocol 5.1. Działanie usługi DHCP 5.2. Przykładowa konfiguracja /etc/dhcp3/dhcpd.conf ddns-update update-style none; #Opcje globalne # Serwer WINS option netbios-name ame-ser servers 10.8.0.254; # Serwer DNS podstawowy i zapasowe option domain-name name-servers 10.8.0.254, 193.110.121.20, 194.204.159.1; # Domena option domain-name name "domena.pl"; # Czas dzierŝawy default-lease lease-time 3600; max-lease lease-time 86400; #Definicja podsieci subnet 10.8.0.0 netmask 255.255.0.0 # Domyślna brama option routers 10.8.0.254; # Maska sieci option subnet-mask 255.255.0.0; # Broadcast option broadcast-address address 10.8.255.255; # Zakres dynamicznie przydzielanych adresow IP range 10.8.1.194 10.8.1.199; # Statyczne adresy IP przydzielane przez DHCP # Switch D-Link DES3226 host NET09 hardware ethernet 00:05:5d:75:be:d9; fixed-address 10.8.0.109; } # Print serwer HP2200DTN host HP2200DTN hardware ethernet 00:01:E6:50:CB:41; 0 0:01:E6:50:CB:41; fixed-address 10.8.0.102; } # PC002 Jasio Fasola p. 213 host PC002 hardware ethernet 00:04:75:C3:04:09; fixed-address 10.8.1.102; }
#definicja grupy hostów group terminale # Boot image filename "Xncd19r" # TFTP Server next-server 10.8.0.254; } # Terminal NCR host ncr1 hardware ethernet 00:00:A7:11:AF:4A; fixed-address 10.8.1.181; } } 5.3. Uruchamianie serwera DHCP /etc/init.d/dhcpd-server start 5.4. Przydatne polecenia klienta DHCP ipconfig, pump, dhclient, dhcpc 5.4.1. Uruchomienie klienta DHCP pobranie konfiguracji pump ipconfig /renew 5.4.2. Sprawdzenie stanu klienta DHCP pump s ipconfig /all 5.4.3. Wyłączenie klienta DHCP zwolnienie konfiguracji pump k ipconfig /release
6. DNS Domain Name System Usługa DNS zapewnia translację adresów domenowych np. www.domena.pl na adresy IP np. 193.239.44.98. Możliwa jest również translacja odwrotna za pomocą usługi revdns. Lokalny serwer DNS nie zna odpowiedzi na pytanie Lokalny serwer zna odpowiedź na pytanie 6.1. Odpytywanie serwera DNS nslookup www.domena.pl host ftp.tpnet.pl dig host.domena.org dig host.domena.net @ns.domena.pl
6.2. Typy wpisów DNS A - adres IP AAAA - adres IPv6 MX - adres serwera poczty elektronicznej CNAME - alias nazwy domenowej PTR - domena przypisana do adresu TXT - tekst przypisany do domeny SOA -(start of authority) opcje i opis odpowiedzialności za domenę 6.3. Pliki konfiguracyjne serwera usługi DNS /etc/resolv.conf 6.3.1. Plik /etc/resolv.conf search firma.edu.net nameserver 10.0.0.1 nameserver 153.19.40.250.40.250 nameserver 194.204.159.1 6.3.2. Tylko serwer pośredniczący - cache DNS /etc/bind9/named.conf /etc/bind9/db.root 6.3.3. Serwer domeny podstawowej i odwrotnej /etc/bind9/named.conf /etc/bind9/db.root /etc/bind9/db.local /etc/bind9/db.127 /etc/bind9/db.firma /etc/bind9/db.10.0.0 6.3.4. Plik named.conf dla serwera pośredniczacego zone "." type hint; file "/etc/bind9/db.root"; /db.root"; };
6.3.5. Plik named.conf // Glowny plik konfiguracyjny //opcja folder przechowywania kolejnych plikow options directory "/etc/bind9"; "; }; //cache DNS zone "." type hint; file "db.root"; }; //DNS dla siebie samego zone "localhost" type master; file "db.local"; }; zone "127.in-addr.arpa" type master; file "db.127"; }; //DNS dla domeny firma.edu.net zone "firma.edu.net" type master; file "db.firma"; allow-transfer 10.1.0.1; }; //Zapasowy DNS dla domeny firma.edu.net }; //revdns dla sieci 10.0.0.0 zone "0.0.10.in-addr.arpa" type master; file "db.10.0.0"; }; //Zapasowy DNS dla domeny firma2.com.pl zone "firma2.com.pl" type slave; file "db.firma2"; masters 10.1.0.1; }; //Podstawowy DNS dla domeny firma2.com.pl }; 6.3.6. Plik db.firma dla serwera podstawowego domeny ; ; BIND data file for domain firma.edu.net ; $TTL 604800 @ IN SOA firma.edu.net. admin.firma.edu.net.firma.edu.net. ( ; odpowiedzialny i email do osoby 2004110300 ; Serial zwykle data i nr wersji 604800 ; Refresh czas odswiezania 86400 ; Retry czas powtornego odswiezania 2419200 ; Expire czas wygasniecia wpisy 604800 ) ; Cache TTL minimalny czas wpisu ; ;glowny DNS
@ IN NS ns.firma.edu.net du.net. ;glowny adres @ IN A 10.0.0.1 ;serwer pocztowy (najnizszy numer priorytetu) @ IN I MX 10 mail.firma.edu.net. ;zapasowy serwer pocztowy (wyzszy numer priorytetu) @ IN MX 20 mars.firma.edu firma.edu.net.net. ;adresy hostow mercury IN A 10.0.0.1 venus IN A 10.0.0.2 earth IN A 10.0.0.3 mars IN A 10.0.0.4 jupiter IN A 10.0.0.5 sun IN A 10.0.0.10 ;aliasy nazw www IN CNAME sun mail IN CNAME sun ftp IN CNAME mars ns IN CNAME mars 6.3.7. Plik db.10.0.0 dla serwera podstawowego domeny odwrotnej ; ; BIND reverse data a file for firma.edu.net ; $TTL 604800 @ IN SOA firma.edu.net. admin.firma.edu.net. ( ; odpowiedzialny i email do osoby 2004110300 ; Serial zwykle data i nr wersji 604800 ; Refresh czas odswiezania 86400 ; Retry czas powtornego odswiezania 2419200 ; Expire czas wygasniecia wpisy 604800 ) ; Cache TTL minimalny czas wpisu ; @ IN NS ns.firma.edu.net. 1 IN PTR mercury.firma.edu.net.edu.net. 2 IN PTR venus.firma.edu.n.edu.net et. 3 IN PTR earth.firma.edu.net.edu.net. 4 IN PTR mars.firma.edu.net.edu.net. 5 IN PTR jupiter.firma.edu.net.edu.net. 10 IN PTR sun.firma.edu.net.edu.net.
7. Proxy 7.1. Zmienne HTTP ustawiane dodatkowo przez proxy: REMOTE_ADDR = 194.85.1.1 HTTP_ACCEPT_LANGUAGE = pl HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 5.0; Windows 98) HTTP_HOST = www.wp.pl HTTP_VIA = 194.85.1.1 (Squid/2.4.STABLE7) HTTP_X_FORWARDED_FOR = 194.115.5.5 7.2. Plik konfiguracyjny /etc/squid/squid.conf # Default: # http_port 3128 http_port 8080 # Default: # maximum_object_size 4096 KB maximum_object_size 256 MB # Default: # cache_dir ufs /var/spool/squid 100 16 256 cache_dir ufs /var/spool/squid 2048 16 256 # ACCESS CONTROLS # # Rekomendowana konfiguracja a minimalna: # acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 563 acl Safe_ports port 70 acl Safe_ports port 210 acl Safe_ports port 1025-65535 acl Safe_ports port 280 acl Safe_ports port 488 acl Safe_ports port 591 acl Safe_ports port 777 acl CONNECT method CONNECT # Wpisy dotyczące naszej sieci lokalnej acl SIEC src 10.8.0.0/255.255.0.0 acl PC045 src 10.8.1.145/255.255.255.255 acl PC048 src 10.8.1.148/255.255.255.255 acl PC052 src 10.8.1.152/255.255.255.255 acl PC060 src 10.8.1.160/255.255.255.255 acl serwis.usb src 10.8.1.200/255.255.255.255 # Wpisy dotyczące całych serwisów acl POCZTA dstdom_regex poczta acl POCZTA2 dstdomain profil.wp.pl gmail.com acl WIN4UPDATE dstdomain download.windowsupdate.com v4.windowsupdate.microsoft.com windowsupdate.microsoft.com wustat.microsoft.com # TAG: http_access # Zezwalanie i odrzucanie zapytań według zdefiniowanych wcześniej reguł # # Rekomendowana konfiguracja minimalna: # http_access allow manager localhost http_access deny manager # Zakaz dostępu do nieznanych portów http_access deny!safe_ports # Zakaz dostępu do portów nieszyfrowanych http_access deny CONNECT!SSL_ports # Reguły dotyczące naszej sieci http_access allow localhost http_access allow WIN4UPDATE http_access deny PC045 http_access allow PC048 http_access deny PC052 http_access allow PC060 http_access allow serwis.usb http_access deny POCZTA http_access deny POCZTA2 http_access allow SIEC # Na koniec zakazujemy wszystkim innym dostępu http_access deny all # Dodatkowo potrzebne w laboratorium - nie mamy wpisow w serwerze DNS visible_hostname Knoppix #Dodatkowo dla transparentt ransparentnego nego proxy httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on
7.3. Uruchamianie squida Przed pierwszym uruchomieniem należy utworzyć strukturę katalogów dla pamięci cache squid -z Uruchomienie squida /etc/init.d/squid start Zatrzymanie squida /etc/init.d/squid stop 7.4. Automatyczna konfiguracja proxy w przeglądarkach 7.4.1. Przykładowy plik wpad.dat (proxy.pac) function FindProxyForURL(url, host) if (url.substring(0, 6) == "https:" url.substring(0, 6) == "snews:") return "DIRECT"; if (isplainhostname(host)) return "DIRECT"; if (dnsdomainis(host, "127.0.0.1")) return "DIRECT"; if (dnsdomainis(host, "localhost")) ")) return "DIRECT"; if (dnsdomainis(host, "moja.domena.pl")) return "DIRECT"; return "PROXY 192.168.2.1:8080"; } Jeśli adres wpad.moja.domena/wpad.dat jest aktywny to działa automatyczna konfiguracja ustawień proxy dla klientów IE5.0 i nowszych. Wymaga to wpisu w lokalnym DNS-ie dla hosta wpad i umieszczenia pliku wpad.dat w głównym folderze serwera www na hoscie wpad. Czasami konieczne jest dodanie linii do konfiguracji mime.types serwera www: application/x-ns ns-proxy proxy-autoconfig dat pac 7.5. Transparentne proxy iptables -t t nat -A A PREROUTING -i i eth1 -p p tcp --dport 80 -j j REDIRECT --to to-port 8080 iptables -t t nat -A A PREROUTING -i i eth1 -p p tcp --dport 3128 -j j REDIRECT --to to-port 8080 iptables -t t nat -A A PREROUTING -i i eth1 -p p tcp --dport 8080 -j j REDIRECT --to to-port 8080