rete: configurare le macchine virtuali in modo che: - Client e Router condividano la rete 10.1.1.0/24 Client con indirizzo 10.1.1.1 su eth2 Router con indirizzo 10.1.1.254 su eth2 - Router e Server condividano la rete 10.9.9.0/24 Server con indirizzo 10.9.9.1 su eth1:1 Router con indirizzo 10.9.9.254 su eth1:1 - Client e Server comunichino attraverso Router ########### configurazione interfacce ################# SU Client: ifconfig eth2 10.1.1.1 netmask 255.255.255.0 broadcast 10.1.1.255 SU Server: ifconfig eth1:1 10.9.9.1 netmask 255.255.255.0 broadcast 10.9.9.255 SU Router: ifconfig eth2 10.1.1.254 netmask 255.255.255.0 broadcast 10.1.1.255 ifconfig eth1:1 10.9.9.254 netmask 255.255.255.0 broadcast 10.9.9.255 TEST: con "route -n", osservare le righe aggiunte automaticamente alla tabella di routing delle tre macchine verificare con ping che Client e Server vedano Router ########## configurazione instradamento ############### SU Client: route add -net 10.9.9.0 netmask 255.255.255.0 gw 10.1.1.254 SU Server: route add -net 10.1.1.0 netmask 255.255.255.0 gw 10.9.9.254 TEST: tentare da Client un ping di Server (10.9.9.1) verificare con wireshark su Router che i pacchetti arrivano correttamente al router ma non vengono instradati ########## abilitazione instradamento ################# SU Router: echo 1 > /proc/sys/net/ipv4/ip_forward TEST: sempre con wireshark osservare i 4 pacchetti catturati per ogni round di ping (echo_request in entrata su eth2 ed in uscita da eth1, echo reply viceversa) ########## connessioni tcp/ip effettuare da Client una connessione ssh verso Server riscontrare l'effetto nelle 3 macchine sull'output di "netstat -anp" ########## altre osservazioni Lasciando girare wireshark in ascolto sul protocollo ICMP su tutte le interfacce, appaiono pacchetti "host unreachable" e "destination unreachable". Come si scopre quali applicazioni causano queste segnalazioni? 1) osservando i dettagli del pacchetto ICMP si individua il pacchetto originale che ha causato la produzione del messaggio d'errore: verificare che l'IP sorgente è ovviamente uno di quelli attivi sulla VM in osservazione, ed annotare il numero di porta ed il protocollo (es. 123/udp); 2) con netstat ricercare il processo che è attestato sulla socket che ha nel local address tale porta per il protocollo indicato. ########## esercizio: Stampare il nome dell'utente che ha più socket ESTABLISHED sul sistema (senza usare l'opzione -e di netstat) SOLUZIONE netstat -np | grep ESTABLISHED | awk -F ESTABLISHED '{ print $2 }' | cut -f1 -d/ | xargs ps hu | awk '{ print $1 }' | sort | uniq -c | sort -nr | head -1 | awk '{ print $2 }' netstat -np # elenca le socket attive | grep ESTABLISHED # filtra le sole tcp-established | awk -F ESTABLISHED '{ print $2 }' # individua PID/NOME | cut -f1 -d/ # isola il pid | xargs ps hu # lancia ps hu per ogni pid | awk '{ print $1 }' # isola lo username del processo | sort # riordina l'elenco | uniq -c # conta le righe = processi per ogni utente | sort -nr # ordina per num processi decrescente | head -1 # prende il massimo | awk '{ print $2 }' # isola lo username