ASK_Lab5_AdamSalwowski.org 30 KB

#+TITLE: Sprawozdanie z Administracji Systemów Komputerowych nr. 5 #+AUTHOR: Adam Salwowski #+LATEX_HEADER: \usepackage[top=100pt,bottom=100pt,left=70pt,right=70pt]{geometry} #+LATEX_HEADER: \usepackage{color} #+LATEX_HEADER: \definecolor{blue}{rgb}{0,0.5,1} #+LATEX_HEADER: \hypersetup{colorlinks=true, linkcolor=blue, urlcolor=blue, citecolor=blue} #+OPTIONS: toc:nil * Zadania :PROPERTIES: :UNNUMBERED: t :END: ** Zadanie 1 #+begin_quote /Przy pomocy polecenia =ethtool= sprawdź parametry sieciowe wspierane przez używaną aktualnie NIC./ #+end_quote *** Jako user Sprawdzam parametry dla aktualnie używanej karty sieciowej =wlp3s0=. #+begin_src shell :results output code :wrap src text ethtool -i wlp3s0 #+end_src Wynik: #+RESULTS: #+begin_src text driver: ath9k version: 5.10.0-9-amd64 firmware-version: N/A expansion-rom-version: bus-info: 0000:03:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no #+end_src *** Jako root Wersja tej komendy, teraz z uprawnieniami =sudo=. Używam flagi =-A= przy komendzie =sudo=, która powoduje wyskoczenie graficznego okienka na podanie hasła root. Pomaga mi to napisać ten dokument sprawniej (używam edytora =Emacs= z trybem =org-mode=), bez potrzeby robienia zrzutów ekranu terminala. #+begin_src shell :results output code :wrap src text sudo -A ethtool -i wlp3s0 #+end_src Wynik: #+RESULTS: #+begin_src text driver: ath9k version: 5.10.0-9-amd64 firmware-version: N/A expansion-rom-version: bus-info: 0000:03:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no #+end_src Jak widać w tym przypadku, różnic pomiędzy wyjściami nie widać. ** Zadanie 2 #+begin_quote /Przy pomocy polecenia =ifconfig= sprawdź jakie technologie i rodziny adresów są wspierane przez używaną aktualnie dystrybucję systemu Linux./ #+end_quote Po pierwsze, instalujemy pakiet zawierający potrzebny program za pomocą polecenia: #+begin_src shell :results output code :wrap src text sudo apt install net-tools #+end_src Następnie go używamy #+begin_src shell :results output code :wrap src text ifconfig -h #+end_src Wynik: #+RESULTS: #+begin_src text Usage: ifconfig [-a] [-v] [-s] [[] ] [add [/]] [del [/]] [[-]broadcast []] [[-]pointopoint []] [netmask ] [dstaddr ] [tunnel ] [outfill ] [keepalive ] [hw ] [mtu ] [[-]trailers] [[-]arp] [[-]allmulti] [multicast] [[-]promisc] [mem_start ] [io_addr ] [irq ] [media ] [txqueuelen ] [[-]dynamic] [up|down] ... =Hardware Type. List of possible hardware types: loop (Local Loopback) slip (Serial Line IP) cslip (VJ Serial Line IP) slip6 (6-bit Serial Line IP) cslip6 (VJ 6-bit Serial Line IP) adaptive (Adaptive Serial Line IP) ash (Ash) ether (Ethernet) ax25 (AMPR AX.25) netrom (AMPR NET/ROM) rose (AMPR ROSE) tunnel (IPIP Tunnel) ppp (Point-to-Point Protocol) hdlc ((Cisco)-HDLC) lapb (LAPB) arcnet (ARCnet) dlci (Frame Relay DLCI) frad (Frame Relay Access Device) sit (IPv6-in-IPv4) fddi (Fiber Distributed Data Interface) hippi (HIPPI) irda (IrLAP) ec (Econet) x25 (generic X.25) eui64 (Generic EUI-64) =Address family. Default: inet List of possible address families: unix (UNIX Domain) inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) netrom (AMPR NET/ROM) rose (AMPR ROSE) ipx (Novell IPX) ddp (Appletalk DDP) ec (Econet) ash (Ash) x25 (CCITT X.25) #+end_src - Typ sprzętu / hardware'u: + loop + slip6 + ash + netrom + ppp + arcnet + sit + irda + eui64 - Rodzina adresów: + inet (domyślny) + unix + ax25 + ipx + ash ** Zadanie 3 #+begin_quote /Opisz znaczenie poszczególnych informacji zawartych w komunikacie wyświetlanym w odpowiedzi na polecenie: =ifconfig eth0=./ #+end_quote Jako że nie posiadam interfejsu karty sieciowej =eth0= (w większości przypadków nie używam maszyny wirtualnej), pozwolę sobie na użycie innego. #+begin_src shell :results output code :wrap src text ifconfig wlp3s0 #+end_src Wynik: #+RESULTS: #+begin_src text wlp3s0: flags=4163 mtu 1500 inet 192.168.2.160 netmask 255.255.255.0 broadcast 192.168.2.255 inet6 fe80::6c4a:7473:2574:de03 prefixlen 64 scopeid 0x20 ether 18:d6:c7:1b:16:d9 txqueuelen 1000 (Ethernet) RX packets 66415 bytes 24517629 (23.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 68684 bytes 14952243 (14.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #+end_src Gdzie: - *inet* [adres-ipv4] [maska] [adres] broadcast [adres-rozgłoszeniowy] - *inet6* [adres-ipv6] - *ether* [adres-mac] txqueuelen [dlugość-kolejki-tx] Linie RX i TX pokazują, ile pakietów zostało odebranych lub przesłanych bez błędów, ile wystąpiło błędów, ile pakietów zostało odrzuconych (prawdopodobnie z powodu małej ilości pamięci), a ile zostało utraconych z powodu przepełnienia. Przekroczenia odbiornika zwykle występują, gdy pakiety przychodzą szybciej niż jądro jest w stanie obsłużyć ostatnie przerwanie. Wartości flag drukowane przez ifconfig z grubsza odpowiadają nazwom jego opcji wiersza poleceń. ** Zadanie 4 #+begin_quote /Sprawdź, jak działa polecenie =ifup eth0=./ #+end_quote Polecenie =ifup= aktywuje interfejs sieciowy, upoważniając go do przesyłania i odbierania danych. #+begin_src shell :results output code :wrap src text sudo -A ifup wlp3s0 enp0s31f6 lo #+end_src #+RESULTS: #+begin_src text ifup: unknown interface wlp3s0 ifup: unknown interface enp0s31f6 ifup: interface lo already configured #+end_src Z jakiegoś powodu interfejsy sieciowe =wlp3s0= oraz =enp0s31f6= nie są wykrywane. Interfesj =lo= jak widać, jest już skonfigurowany, wieć nic się nie zmieniło. ** Zadanie 5 #+begin_quote /Sprawdź, za pomocą polecenia =ip link list= aktualną konfigurację interfejsów sieciowych./ #+end_quote Polecenie =ip link= służy do konfigurowania urządzeń sieciowych. Parametr =list= wyświetla interfejsy sieciowe, podobnie jak komenda =ifconfig= bez podawania parametrów. #+begin_src shell :results output code :wrap src text ip link list #+end_src Wynik: #+RESULTS: #+begin_src text 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s31f6: mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000 link/ether 30:9c:23:07:16:b0 brd ff:ff:ff:ff:ff:ff 3: wlp3s0: mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 link/ether 18:d6:c7:1b:16:d9 brd ff:ff:ff:ff:ff:ff #+end_src ** Zadanie 6 #+begin_quote /Porównaj otrzymaną wcześniej konfigurację interfejsów sieciowych z informacją wyświetlaną przez polecenie =ip addr show=./ #+end_quote #+begin_src shell :results output code :wrap src text ip addr show #+end_src Wynik: #+RESULTS: #+begin_src text 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s31f6: mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether 30:9c:23:07:16:b0 brd ff:ff:ff:ff:ff:ff 3: wlp3s0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 18:d6:c7:1b:16:d9 brd ff:ff:ff:ff:ff:ff inet 192.168.2.160/24 brd 192.168.2.255 scope global dynamic noprefixroute wlp3s0 valid_lft 79043sec preferred_lft 79043sec inet6 fe80::6c4a:7473:2574:de03/64 scope link noprefixroute valid_lft forever preferred_lft forever #+end_src Widzimy, że w tym przypadku otrzymaliśmy więcej informacji. Mamy do dyspozycji pola z informacją od adresie IPv4 oraz IPv6. ** Zadanie 7 #+begin_quote /Sprawdź tablicę sąsiedztwa maszyny wirtualnej./ #+end_quote Domyślną wartością komendy =ip n= lub wersja długa =ip neigh=, jest parametr =show=. Jeśli nawet go nie podamy wynik będzie taki sam. #+begin_src shell :results output code :wrap src text ip neigh show #+end_src Wynik: #+RESULTS: #+begin_src text 192.168.2.10 dev wlp3s0 lladdr 54:a0:50:75:7c:14 REACHABLE #+end_src W moim przypadku stan sąsiedztwa maszyny jest typu =REACHABLE=, czyli adres sąsiada jest ważny i osiągalny. ** Zadanie 8 #+begin_quote /Sprawdź aktualny stan tablicy ARP maszyny wirtualnej./ #+end_quote Polecenie =arp= potrafi manipulować lub wyświetlać pamięć podręczną sąsiada sieci IPv4 jądra. Może dodawać wpisy do tabeli, usuwać lub wyświetlać aktualną jej zawartość. ARP to skrót od Address Resolution Protocol, który służy do znajdywania adresu kontroli dostępu do mediów sąsiada sieci dla danego adresu IPv4. =arp= bez sprecyzowania trybu wyświetli aktualną zawartość tabeli. Możliwe jest ograniczenie liczby drukowanych wpisów poprzez określenie typu adresu sprzętowego, nazwy interfejsu lub adresu hosta. =arp -d *adres*= usunie wpis z tablicy ARP. Aby to zrobić, wymagane są uprawnienia =root=. Wpis znajduje się po adresie IP. Jeśli podano nazwę hosta, zostanie ona rozwiązana przed wyszukaniem wpisu w tablicy ARP. #+begin_src shell :results output code :wrap src text arp #+end_src Wynik: #+RESULTS: #+begin_src text Address HWtype HWaddress Flags Mask Iface router.asus.com ether 54:a0:50:75:7c:14 C wlp3s0 #+end_src ** Zadanie 9 #+begin_quote /Skomentuj informację o tablicy routingu maszyny wirtualnej otrzymane przy pomocy poleceń: =ip route show=, oraz =route=./ #+end_quote *** =ip-route-show= Podobnie jak w ~Zadanie 7~, jeśli nie podamy żadnych parametrów po komendzie =ip r= (=ip route=, wersja długa), przyjmie ona takie same wartości jak z opcją =list= czy =show=. Komenda =ip route= jest używany do manipulowania wpisami w tablicach routingu jądra. Domyślnie lub z opcjami =show= czy =list=, olecenie wyświetla zawartość tablic routingu lub tras wybranych według pewnych kryteriów. #+begin_src shell :results output code :wrap src text ip route #+end_src Wynik: #+RESULTS: #+begin_src text default via 192.168.2.10 dev wlp3s0 proto dhcp metric 600 169.254.0.0/16 dev wlp3s0 scope link metric 1000 192.168.2.0/24 dev wlp3s0 proto kernel scope link src 192.168.2.160 metric 600 #+end_src *** =route= Głównym zastosowaniem komendy =route= jest konfigurowanie statycznych tras do określonych hostów lub sieci za pośrednictwem interfejsu po skonfigurowaniu go za pomocą programu =ifconfig=. Gdy używane są opcje =add= lub =del=, =route= modyfikuje tablice routingu. Bez tych opcji route wyświetla bieżącą zawartość tablic routingu. #+begin_src shell :results output code :wrap src text route #+end_src Wynik: #+RESULTS: #+begin_src text Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default _gateway 0.0.0.0 UG 600 0 0 wlo1 link-local 0.0.0.0 255.255.0.0 U 1000 0 0 wlo1 192.168.43.0 0.0.0.0 255.255.255.0 U 600 0 0 wlo1 #+end_src Jak widać obie komendy zwracają podobne wyjście. Przy używaniu komendy =route= dane są bardziej czytelne i poformatowane w przystępny sposób, posiadają nagłówki. ** Zadanie 10 #+begin_quote /Skomentuj aktualną zawartość bazy polityk routingu RPD/ #+end_quote Niestety nie potrafię rozwiązać tego zadania. ** Zadanie 11 #+begin_quote /Sprawdź informacje o tablicy routingu dostarczone przez polecenie =netstat= i porównaj wynik z rezultatem działania polecenia =route=./ #+end_quote Odpuszczę ponowne wykonywanie komendy =route= w tej sekcji, gdyż została wykonana w ~Zadanie 9~. Ograniczam wyjście komendy =netstat= poleceniem =head=, by nie zajęło za dużo miejsca. Domyślnie (bez parametrów) =netstat= zapewni wszystkie ustanowione połączenia zarówno dla gniazd sieciowych, jak i domenowych. Oznacza to, że zobaczymy nie tylko połączenia, które faktycznie działają w sieci, ale także komunikację międzyprocesową (która z punktu widzenia monitorowania bezpieczeństwa jest nieprzydatna). #+begin_src shell :results output code :wrap src text netstat | head -n30 #+end_src Wynik: #+RESULTS: #+begin_src text Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 1 deb11-pc:48296 1.2.3.4:http SYN_SENT tcp 0 198 deb11-pc:53370 193.37.214.12:6969 FIN_WAIT1 tcp 0 1 deb11-pc:48106 ns2.lelux.fi:https SYN_SENT tcp 0 0 deb11-pc:38626 cerf-reverse.iris:https ESTABLISHED tcp 0 356 deb11-pc:53394 193.37.214.12:6969 ESTABLISHED tcp 0 1 deb11-pc:36084 117.84.132.126:2710 SYN_SENT tcp 0 354 deb11-pc:53396 193.37.214.12:6969 ESTABLISHED tcp 0 1 deb11-pc:48328 1.2.3.4:http SYN_SENT tcp 0 0 deb11-pc:46444 172.67.131.114:https ESTABLISHED tcp 0 0 deb11-pc:52100 lb-140-82-121-5-f:https ESTABLISHED tcp 0 0 deb11-pc:42610 104.21.49.125:https ESTABLISHED tcp 0 1 deb11-pc:48018 ns2.lelux.fi:http SYN_SENT tcp 0 1 deb11-pc:48108 ns2.lelux.fi:https SYN_SENT tcp 0 0 deb11-pc:53216 104.26.2.212:https TIME_WAIT udp 0 0 deb11-pc:bootpc router.asus.com:bootps ESTABLISHED udp 0 0 deb11-pc:54412 router.asus.com:5351 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ] DGRAM 23126 /run/user/1000/systemd/notify unix 2 [ ] DGRAM 24673 @/var/spool/exim4/exim_daemon_notify unix 2 [ ] DGRAM 23215 /var/run/nvidia-xdriver-5fe01759 unix 3 [ ] DGRAM 12229 /run/systemd/notify unix 2 [ ] DGRAM 12246 /run/systemd/journal/syslog unix 19 [ ] DGRAM 12252 /run/systemd/journal/dev-log unix 8 [ ] DGRAM 12254 /run/systemd/journal/socket unix 2 [ ] DGRAM 12937 /var/lib/samba/private/msg.sock/1136 unix 2 [ ] DGRAM 668 /var/lib/samba/private/msg.sock/1440 unix 2 [ ] DGRAM 14974 /run/wpa_supplicant/wlp3s0 #+end_src W danych wyjściowych =netstat= każdy wiersz reprezentuje port sieciowy TCP lub UDP, zgodnie z pierwszą kolumną danych wyjściowych. Kolumna Recv-Q (kolejka odbioru) zawiera liczbę bajtów odebranych przez jądro, ale nie odczytanych przez proces. Następnie kolumna Send-Q (kolejka wysyłania) informuje nas o liczbie bajtów wysłanych na drugą stronę połączenia, ale nie potwierdzonych. Netstat wyświetla informacje o podsystemie sieciowym Linux. Jeżeli chcemy by wyjście choć trochę przypominało wyjście programu =route=, należy użyć flagi =-r, --route=. Oraz route #+begin_src shell :results output code :wrap src text netstat -r #+end_src Wynik: #+RESULTS: #+begin_src text Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default router.asus.com 0.0.0.0 UG 0 0 0 wlp3s0 link-local 0.0.0.0 255.255.0.0 U 0 0 0 wlp3s0 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp3s0 #+end_src Tutaj widzimy niewielką zmianę co do komendy =route=. W poprzednie pole ~Metric~, teraz pojawił się nagłówek ~MMS~ wraz z nowymi wartościami. ** Zadanie 12 #+begin_quote /Korzystając z narzędzia =netstat= opisz aktywne połączenia protokołów TCP i UDP./ #+end_quote Pozwolę sobie opisać aktywne połączenia protokołów TCP i UDP z poprzedniego zadania. #+begin_src text Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 1 deb11-pc:48296 1.2.3.4:http SYN_SENT tcp 0 198 deb11-pc:53370 193.37.214.12:6969 FIN_WAIT1 tcp 0 1 deb11-pc:48106 ns2.lelux.fi:https SYN_SENT tcp 0 0 deb11-pc:38626 cerf-reverse.iris:https ESTABLISHED tcp 0 356 deb11-pc:53394 193.37.214.12:6969 ESTABLISHED tcp 0 1 deb11-pc:36084 117.84.132.126:2710 SYN_SENT tcp 0 354 deb11-pc:53396 193.37.214.12:6969 ESTABLISHED tcp 0 1 deb11-pc:48328 1.2.3.4:http SYN_SENT tcp 0 0 deb11-pc:46444 172.67.131.114:https ESTABLISHED tcp 0 0 deb11-pc:52100 lb-140-82-121-5-f:https ESTABLISHED tcp 0 0 deb11-pc:42610 104.21.49.125:https ESTABLISHED tcp 0 1 deb11-pc:48018 ns2.lelux.fi:http SYN_SENT tcp 0 1 deb11-pc:48108 ns2.lelux.fi:https SYN_SENT tcp 0 0 deb11-pc:53216 104.26.2.212:https TIME_WAIT udp 0 0 deb11-pc:bootpc router.asus.com:bootps ESTABLISHED udp 0 0 deb11-pc:54412 router.asus.com:5351 ESTABLISHED #+end_src gdzie: - Kolumna /Local Adress/ zawiera nazwę hosta (z pliku =/etc/hostname=) i numer portu serwera. Mój serwer rozpoznaje się jako *deb11-pc*. - Piąta kolumna, /Foreign Address/, identyfikuje drugą stronę połączenia. - Szósta kolumna /State/ informuje nas o stanie połączenia. Obecne stany u mnie to: /ESTABLISHED/, /SYN SENT/ oraz /TIME WAIT/, gdzie: + /ESTABLISHED/ — nawiązywane jest połączenie między klientem a serwerem. + /SYN SENT/ - gniazdo aktywnie próbuje nawiązać połączenie + /TIME WAIT/ - gniazdo czeka po zamknięciu, aby obsłużyć pakiety nadal w sieci. ** Zadanie 13 #+begin_quote /Korzystając z narzędzia =netstat -natp= sprawdź aktywne połączenia internetowe./ #+end_quote Tak więc w poniższym poleceniu przedstawionym =netstat= jest proszony o: + =-a= - pokazanie wszystkich portów + =-t= - czy faktycznie są połączone i nasłuchują dla TCP + =-u= - czy faktycznie są połączone i nasłuchują dla UDP + =-n= - aby nie tracił czasu na przekształcanie adresów IP na nazwy hostów #+begin_src shell :results output code :wrap src text netstat -natp #+end_src Wynik: #+RESULTS: #+begin_src text Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:9091 0.0.0.0:* LISTEN 8290/transmission-d tcp 0 0 0.0.0.0:51413 0.0.0.0:* LISTEN 8290/transmission-d tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN - tcp 0 1 192.168.43.235:53440 184.105.151.166:6969 SYN_SENT 8290/transmission-d tcp 0 0 192.168.43.235:41936 78.30.254.12:2710 ESTABLISHED 8290/transmission-d tcp 0 1 192.168.43.235:41858 78.30.254.12:2710 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:53405 82.39.105.203:59481 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:40068 186.10.181.160:1337 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:50214 156.234.201.18:80 SYN_SENT 8290/transmission-d tcp 0 0 192.168.43.235:38349 45.151.107.46:33140 ESTABLISHED 8290/transmission-d tcp 0 1 192.168.43.235:46041 192.109.205.9:26774 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:41902 78.30.254.12:2710 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:44048 208.83.20.20:6969 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:52682 51.81.46.170:6969 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:55935 213.110.227.245:49486 SYN_SENT 8290/transmission-d tcp 0 0 192.168.43.235:35372 157.90.169.123:80 CLOSE_WAIT 8290/transmission-d tcp 0 0 192.168.43.235:54698 217.30.10.54:6969 CLOSE_WAIT 8290/transmission-d tcp 0 1 192.168.43.235:32874 107.152.127.9:6969 LAST_ACK - tcp 0 1 192.168.43.235:40042 186.10.181.160:1337 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:33939 109.191.130.168:59101 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:52772 51.81.46.170:6969 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:51256 208.87.135.55:2052 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:43437 83.9.132.8:51413 SYN_SENT 8290/transmission-d tcp 0 0 192.168.43.235:56364 51.15.55.204:1337 CLOSE_WAIT 8290/transmission-d tcp 0 613 192.168.43.235:50240 156.234.201.18:80 ESTABLISHED 8290/transmission-d tcp 0 1652 192.168.43.235:50280 156.234.201.18:80 ESTABLISHED 8290/transmission-d tcp 0 0 192.168.43.235:51982 93.158.213.92:1337 CLOSE_WAIT 8290/transmission-d tcp 0 1 192.168.43.235:51296 208.87.135.55:2052 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:41079 213.127.78.252:10373 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:53480 184.105.151.166:6969 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:47155 172.16.1.0:51413 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:39994 186.10.181.160:1337 SYN_SENT 8290/transmission-d tcp 0 1 192.168.43.235:52716 51.81.46.170:6969 SYN_SENT 8290/transmission-d tcp 0 0 192.168.43.235:46744 65.21.48.148:6969 CLOSE_WAIT 8290/transmission-d tcp 0 1 192.168.43.235:55423 162.158.103.199:51413 SYN_SENT 8290/transmission-d tcp6 0 0 :::51413 :::* LISTEN 8290/transmission-d tcp6 0 0 :::22 :::* LISTEN - tcp6 0 0 ::1:631 :::* LISTEN - tcp6 0 0 ::1:25 :::* LISTEN - tcp6 0 1 2a00:f41:81d:fbb3:44460 2400:8907::f03c:92:2052 SYN_SENT 8290/transmission-d tcp6 0 0 2a00:f41:81d:fbb3:47238 2606:4700:3039::6815:80 ESTABLISHED 8290/transmission-d tcp6 0 1 2a00:f41:81d:fbb3:46324 2001:470:1:189:0:1:6969 SYN_SENT 8290/transmission-d tcp6 0 0 2a00:f41:81d:fbb3:43512 2606:4700:3036::681:443 ESTABLISHED 8290/transmission-d tcp6 0 0 2a00:f41:81d:fbb3:40260 2a04:ac00:1:3dd8:::2710 CLOSE_WAIT 8290/transmission-d tcp6 0 1 2a00:f41:81d:fbb3:57940 2607:f178:0:32::3:6969 SYN_SENT 8290/transmission-d tcp6 0 1 2a00:f41:81d:fbb3:35933 2a01:e0a:27:4b0:a:19774 SYN_SENT 8290/transmission-d tcp6 0 1 2a00:f41:81d:fbb3:44484 2400:8907::f03c:92:2052 SYN_SENT 8290/transmission-d tcp6 0 0 2a00:f41:81d:fbb3:53696 2a01:e0a:3c3:ede0::6969 CLOSE_WAIT 8290/transmission-d tcp6 0 1 2a00:f41:81d:fbb3:46298 2001:470:1:189:0:1:6969 SYN_SENT 8290/transmission-d tcp6 0 1 2a00:f41:81d:fbb3:38151 2a00:f41:82e:3587:51413 SYN_SENT 8290/transmission-d #+end_src Kolumna /Local Address/ zawiera tym razem adres IP i numer portu serwera. Mój server serwer rozpoznaje się jako 127.0.0.1 i 0.0.0.0, a także mój normalny adres IP. W przypadku wielu interfejsów każdy nasłuchiwany port pojawi się na wszystkich interfejsach, a zatem jako oddzielne adresy IP. Numer portu jest oddzielony od adresu IP dwukropkiem. W danych wyjściowych pokazanego właśnie przykładu netstat urządzenie Ethernet ma adres IP ~192.168.43.235~. W przypadku portu, który jest nasłuchiwany dla nowych połączeń, wartością domyślną kolumny /Foreign Adress/ będzie ~0.0.0.0:*~. Ten adres IP nic nie znaczy, ponieważ wciąż czekamy, aż zdalny host połączy się z nami.\\\\ Obecne wartości kolumny /State/: + /LISTEN/ — nawiązywane jest połączenie między klientem a serwerem + /CLOSE WAIT/ — zdalny koniec wyłączył się, czekając na zamknięcie gniazda Kolumna /PID/Program/ tak jak sama mówi, wyświetla PID programu, oraz jego nazwę. Program =transmission-daemon=, jest klientem prtokołu peer-to-peer =bittorrent=, służącym do wymiany plików poprzez sieć. ** Zadanie 14 #+begin_quote /Korzystając z narzędzia =tracepath= spróbuj prześledzić trasę pakietów do wybranego komputera w Internecie./ #+end_quote Po pierwsze, musiałem zainstalować pakiet =iputils-tracepath= (taką pakiet nosi nazwę na dystrybucji =Debian 11=), by móc używać polecenia. Komenda śledzi ścieżkę sieciową do miejsca docelowego, wykrywając jednostkę MTU wzdłuż tej ścieżki. Używa portu UDP lub innego losowego. Jego działanie jest podobne do polecenia =traceroute=. Nie wymaga jednak uprawnień superużytkownika i nie ma żadnych wymyślnych opcji. =tracepath -6= także moży być zamiennikiem =traceroute6=. #+begin_src shell :results output code :wrap src text tracepath 8.8.8.8 #+end_src Wynik: #+RESULTS: #+begin_src text 1?: [LOCALHOST] pmtu 1500 1: _gateway 3.952ms 1: _gateway 2.686ms 2: _gateway 2.478ms pmtu 1472 2: 255.0.0.0 27.403ms 3: no reply 4: 255.0.0.2 46.581ms 5: 255.0.0.3 28.978ms 6: 255.0.0.4 32.526ms 7: no reply 8: dns.google 34.137ms asymm 9 9: dns.google 40.337ms 10: dns.google 46.694ms asymm 14 11: no reply 12: no reply 13: no reply 14: no reply 15: no reply 16: no reply 17: no reply 18: no reply 19: no reply 20: no reply 21: no reply 22: no reply 23: no reply 24: no reply 25: no reply 26: no reply 27: no reply 28: no reply 29: no reply 30: no reply Too many hops: pmtu 1472 Resume: pmtu 1472 #+end_src Pierwsza kolumna pokazuje TTL sondy, a następnie dwukropek. Druga kolumna pokazuje przeskok sieci, który odpowiedział na sondę. W moim przypadku jest to /[LOCALHOST]/. Ostatnia kolumna wyświetla czas w jakim otrzymała odpowiedź. Linie niżej pokazują różne informacje o ścieżce do odpowiedniego przeskoku. Ostatni wiersz podsumowuje informacje o całej ścieżce do miejsca docelowego, pokazuje wykryte MTU ścieżki, ilość przeskoków do miejsca docelowego i nasze przypuszczenia dotyczące liczby przeskoków od miejsca docelowego do nas, które mogą być różne, gdy ścieżka jest asymetryczna.