Część 1: Przygotowanie środowiska do pracy: Podczas kursu sieci komputerowych będziemy korzystali z systemu Linux. Pobranie dystrybucji Knoppix
Strona domowa dystrybucji Knoppix http://www.knopper.net/knoppix/index-en.html
Uruchomienie dystrybucji KnoppixNależy upewnić się, czy w BIOS'ie jest aktywna funkcja ładowania systemu z cd-rom'u, następnie zrestartować komputer. Przypomnienie podstawowych poleceń Linuxals - lista plików w katalogu bieżącym.
cd - zmiana katalogu
rm - usunięcie pliku
cp - kopiowanie plików/katalogów
mv - zmiana nazwy / przeniesienie pliku mv stara_nazwa nowa_nazwa
Poleceniem touch możemy zmieniać znaczniki czasowe na plikach (w przypadku gdy plik nie istnieje, to zostaje utworzony). Dołączanie systemu plików.mount - zarządzanie systmem plików
[root@localhost root]# mount /dev/hda2 on / type ext3 (rw) none on /proc type proc (rw) none on /sys type sysfs (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) usbdevfs on /proc/bus/usb type usbdevfs (rw) none on /dev/shm type tmpfs (rw) /dev/hda3 on /home type ext3 (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) Podłączamy system plików /dev/fd0 pod katalog /mnt/floppy. [root@localhost root]# mount /dev/fd0 /mnt/floppy/ [root@localhost root]# mount (...) /dev/fd0 on /mnt/floppy type ext2 (rw) W dystrybucji Knoppix możemy użyć do tego celu GUI klikając odpowiednie ikony na pulpicie. |
Część 2: Pliki i polecenia związane z usługami sieciowymi w Linuksie (Unixie):
lspci - wypisuje urządzenia pci w komputerze (nas interesuje tylko adapter sieciowy) Zuerst:~ # lspci | grep Ethernet 02:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
ifconfig - wypisuje informację o interfejsach sieciowych, konfiguruje interfejsy sieciowe Zuerst:~ # ifconfig eth0 Link encap:Ethernet HWaddr 00:50:BA:B8:A6:20 inet addr:192.168.1.44 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8644256 errors:0 dropped:0 overruns:0 frame:0 TX packets:10736361 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1624176413 (1548.9 Mb) TX bytes:3532556602 (3368.9 Mb) Interrupt:193 Base address:0x8c00 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:31173 errors:0 dropped:0 overruns:0 frame:0 TX packets:31173 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1576287 (1.5 Mb) TX bytes:1576287 (1.5 Mb) inne statystyki interfejsów są w pliku: /proc/net/dev Zuerst:~ # cat /proc/net/dev Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 1576287 31173 0 0 0 0 0 0 1576287 31173 0 0 0 0 0 0 eth0:1624205710 8644329 0 0 0 0 0 0 3532629276 10736457 0 0 0 0 0 0 Interfejs lo jest interfejsem wirtualnym. Na tym interfejsie możemy testować aplikacje sieciowe, nawet, gdy nie posiadamy aktualnie połączenia z żadną siecią. Ruch sieciowy skierowany na ten interfejs nie opuszcza komputera (nie da się go podsłuchać).
Adresy zrozumiałe dla komputerów nie są proste do zapamiętania przez ludzi. Dlatego powstał system nazewnictwa (DNS) który jest powszechnie używany w Internecie. System ten "tłumaczy" nazwy domenowe (np www.pjwstk.edu.pl) na adresy IP rozumiane przez komputer (np 148.81.141.16). Po wpisaniu przez użytkownika nazwy domenowej system operacyjny sprawdza pliki konfiguracyjne w celu przetłumaczenia nazwy na "zrozumiały" dla siebie adres. Zuerst:~ # cat /etc/hosts 127.0.0.1 localhost 192.168.1.44 Zuerst # special IPv6 addresses ::1 localhost ipv6-localhost ipv6-loopback fe00::0 ipv6-localnet ff00::0 ipv6-mcastprefix ff02::1 ipv6-allnodes ff02::2 ipv6-allrouters ff02::3 ipv6-allhosts Plik posiada 2 kolumny. W pierwszej podany jest adres IP, w drugiej przypisane mu nazwy (może być ich więcej niż 1)
Jeżeli dana nazwa nie znajduje się w pliku hosts, system przeszukuje zasoby sieciowe. Zuerst:~ # cat /etc/resolv.conf nameserver 213.241.79.37 nameserver 192.168.1.1 W powyższym przykładzie mamy ustawione dwa komputery. System operacyjny wysyła pakiet zapytania o domenę do pierwszego z nich, i w przypadku braku odpowiedzi odpytuje drugi serwer. Jeżeli żaden z serwerów nie odpowie, system uznaje że nazwa nie istnieje (zwróci błąd).
Po uzyskaniu adresu IP system operacyjny sprawdza przez którą kartę sieciową wysłać dany pakiet (wiele urządzeń służących do kierowania ruchem w Internecie posiada więcej niż 2 interfejsy sieciowe).
Polecenie route - wypisuje tablicę routingu, pozwala dodawać i usuwać wpisy do tablicy routingu. Zuerst:~ # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 0 0 0 eth0 loopback * 255.0.0.0 U 0 0 0 lo default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 Zuerst:~ # cat /proc/net/route Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT eth0 0001A8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0 eth0 0000FEA9 00000000 0001 0 0 0 0000FFFF 0 0 0 lo 0000007F 00000000 0001 0 0 0 000000FF 0 0 0 eth0 00000000 0101A8C0 0003 0 0 0 00000000 0 0 0 W każdym wpisie do tablicy routingu znajduje się jedna reguła sterowania ruchem pakietów. Dopasowanie adresów jest wykonywane na podstawie porównania adresu docelowego (kolumna Destination) i maski sieciowej (kolumna Genmask). Na tej podstawie wybierany jest właściwy interfejs (kolumna Iface) oraz następny przeskok przed osiągnięciem celu (kolumna Gateway). W przypadku, gdy sieć jest bezpośrednio połączona z komputerem następny przeskok jest hostem docelowym (adresatem) i można wysłać mu pakiet bezpośrednio (wyświetlany jest znak gwiazdki '*' w kolumnie Gateway). W przypadku, gdy adres odbiorcy nie ma odpowiedniego wpisu w tablicy routingu wybierana jest trasa domyślna (default).
Jeżeli adres odbiorcy znajduje się w sieci lokalnej, system operacyjny używa protokołu arp do pozyskania adresu sprzętowego interfejsu sieciowego komputera odbiorcy. W tym celu wysyłany jest do wszystkich komputerów w sieci lokalnej pakiet arp z pytaniem. Komputer posiadający interfejs o tym adresie odpowiada swoim adresem karty sieciowej (tzw. MAC adres). Zuerst:~ # arp Address HWtype HWaddress Flags Mask Iface 192.168.1.1 ether 00:0F:3D:F4:C9:FD C eth0 192.168.1.3 ether 00:02:44:9C:76:CB C eth0 Zuerst:~ # cat /proc/net/arp IP address HW type Flags HW address Mask Device 192.168.1.1 0x1 0x2 00:0F:3D:F4:C9:FD * eth0 192.168.1.3 0x1 0x2 00:02:44:9C:76:CB * eth0 W pierwszej kolumnie widzimy adresy IP interfejsów, w kolumnie trzeciej odpowiadające im adresy sprzętowe (MAC). W ostatniej kolumnie jest wypisany lokalny interfejs, z którego możemy osiągnąć te interfejsy. |
Część 3: Narzędzia do rekonesansu (na przykładzie hosta to.to i komputera lokalnego 192.168.1.44):
ping - wysyła komputerowi pakiet ICMP typ 8 (echo request) w odpowiedzi dostaje ICMP typ 0 (echo reply) Zuerst:~ # ping to.to PING to.to (62.8.221.3) 56(84) bytes of data. 64 bytes from ns.majesty.net (62.8.221.3): icmp_seq=1 ttl=53 time=604 ms 64 bytes from ns.majesty.net (62.8.221.3): icmp_seq=3 ttl=53 time=251 ms 64 bytes from ns.majesty.net (62.8.221.3): icmp_seq=4 ttl=53 time=380 ms --- to.to ping statistics --- 4 packets transmitted, 3 received, 25% packet loss, time 3004ms rtt min/avg/max/mdev = 251.522/412.208/604.480/145.816 ms
Dodatkową (i cenną) informacją jest wartość TTL (time to live) ustawiana zwykle na 64, 128 lub 255
traceroute (też. traceroute6) - wysyła komputerowi docelowemu "paczki" po 3 pakiety UDP z ustawionym (w warstwie sieciowej)
Zuerst:~ # traceroute to.to traceroute to to.to (62.8.221.3), 30 hops max, 40 byte packets 1 192.168.1.1 (192.168.1.1) 0.657 ms 0.445 ms 0.709 ms 2 Warszawa-bras2.inetia.pl (195.114.190.150) 379.634 ms 446.487 ms 466.532 ms 3 * * * 4 WarsC001RT06-WarsC001RT05.inetia.pl (83.238.250.1) 466.154 ms 463.231 ms 461.034 ms 5 * * * 6 * * * 7 core2.fra.qsc.de (212.202.214.221) 477.787 ms * * 8 uplgw-broadnet.fra.qsc.de (212.202.214.238) 281.583 ms 279.392 ms 276.809 ms 9 at-0-2-0-0001.per-ffm06.bmcag.net (194.140.111.205) 34.728 ms 94.460 ms 410.206 ms 10 213.217.93.204 (213.217.93.204) 435.761 ms 432.465 ms 430.292 ms 11 ns.majesty.net (62.8.221.3) 427.955 ms 426.695 ms 424.376 ms
Jak widzimy kmputery 3,4,5 nie odpowiedziały wogule, a komputer 7 odpowiedział raz (dwie gwiazdki).
nmap - narzędzie do skanowania komputerów w sieci. Zuerst:~ # nmap -sP 192.168.1.44 Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-04-09 22:22 CEST Host Zuerst.H5MP (192.168.1.44) appears to be up. Nmap finished: 1 IP address (1 host up) scanned in 0.020 seconds Zuerst:~ # nmap -PA 192.168.1.44 Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-04-09 22:22 CEST Interesting ports on Zuerst.H5MP (192.168.1.44): Not shown: 1675 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 5800/tcp open vnc-http 5900/tcp open vnc 8888/tcp open sun-answerbook Nmap finished: 1 IP address (1 host up) scanned in 0.402 seconds
W kolumnie SERVICE proba "odgadnięcia" |
148.81.141.16 www.microsoft.comdo tego pliku. Można wykonać to poleceniem:
Zuerst:~ # echo 148.81.141.16 www.microsoft.com >>/etc/hosts
odwiedzić stronę www.microsoft.com