Linux e le reti – 2 Tiziano Ragazzi Testare la tua NIC In ambiente linux il comando ifconfig senza parametri dà tutte le interfacce di rete attive ifconfig –a dà tutte le interfacce comprese quelle inattive Ad esempio: esito per interfacce wifi inattiva wlan0 Link encap:Ethernet HWaddr 00:06:25:09:6A:D7 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:2924 errors:0 dropped:0 overruns:0 frame:0 TX packets:2287 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:180948 (176.7 Kb) bytes:166377 (162.4 Kb) Interrupt:10 Memory:c88b5000 c88b6000 Esito per interfaccia wifi attiva: wlan0 Link encap:Ethernet HWaddr 00:06:25:09:6A:D7 inet addr:216.10.119.243 Bcast:216.10.119.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2924 errors:0 dropped:0 overruns:0 frame:0 TX packets:2295 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:180948 (176.7 Kb) TX bytes:166521 (162.6 Kb) Interrupt:10 Memory:c88b5000-c88b6000 Ottenere il MAC In ambiente Linux ifconfig –a (o semplicemente ifconfig) In ambiente Win ipconfig /all Ethtool Usiamo ethtool per un’analisi più approfondita Esempio: ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised auto-negotiation: No Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 1 Transceiver: internal Auto-negotiation: off Supports Wake-on: g Wake-on: g Current message level: 0x00000007 (7) Link detected: yes ethtool –S eth0 fornisce molte più informazioni. Un “error rate” > 0.5% è sintomo di una errata configurazione della scheda o di un eccessivo utilizzo della banda disponibile Visualizzare la tabella arp Il comando arp col parametro -a mostra la tabella arp con i mac address delle connessioni arp -a bigboypix (192.168.1.1) at 00:09:E8:9C:FD:AB [ether] on wlan0 ? (192.168.1.101) at 00:06:25:09:6A:D7 Netstat Netstat è un comando di grande utilità che permette di visualizzare molte informazioni relative a connessioni di rete, tabelle di routing e statistiche sulle interfacce Ad esempio per ottenere informazioni sulle interfacce, possiamo usare netstat -i Kernel Interface table Iface MTU Met RX-OK eth0 1500 0 18976655 2 eth1 1500 0 855154 0 lo 16436 0 1784272 0 RX-ERR RX-DRP RX-OVR TX-OK 0 0 21343152 0 0 15196620 0 0 1784272 TX-ERR TX-DRP TX-OVR Flg 142 0 3 BMRU 0 0 0 BMRU 0 0 0 LRU Netstat Per ottenere informazioni sulle connessioni UDP netstat –nuap Active Internet connections (servers Proto Recv-Q Send-Q Local Address udp 0 0 127.0.0.1:161 udp 0 0 0.0.0.0:443 and established) Foreign Address 0.0.0.0:* 0.0.0.0:* State Per ottenere informazioni sulle connessioni TCP PID/Program name 5052/snmpd 3731/openvpn netstat –ntap 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:993 0.0.0.0:* LISTEN 5097/dovecot tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 5097/dovecot tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3829/mysqld tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 5097/dovecot tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 5097/dovecot tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12928/apache2 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3937/exim4 tcp 0 0 172.16.1.36:25 0.0.0.0:* LISTEN 3937/exim4 tcp6 0 0 :::21 :::* LISTEN 5115/proftpd: (acce tcp6 0 0 :::22 :::* LISTEN 5067/sshd tcp6 0 52 ::ffff:194.116.10.21:22 ::ffff:151.48.90.2:2554 ESTABLISHED25602/0 Testare le connessioni con ping Il comando ping invia pacchetti icmp di tipo 0 (echorequest) e resta in attesa di una risposta (pong) di tipo icmp 3 (echo-reply) Esempio:risposta corretta dell’interfaccia “pingata” ping 192.168.1.101 PING 192.168.1.101 (192.168.1.101) from 192.168.1.100 : 56(84) bytes of data. 64 bytes from 192.168.1.101: icmp_seq=1 ttl=128 time=3.95 ms 64 bytes from 192.168.1.101: icmp_seq=2 ttl=128 time=7.07 ms 64 bytes from 192.168.1.101: icmp_seq=3 ttl=128 time=4.46 ms 64 bytes from 192.168.1.101: icmp_seq=4 ttl=128 time=4.31 ms --- 192.168.1.101 ping statistics --- 4 packets transmitted, 4 received, 0% loss, time 3026ms rtt min/avg/max/mdev = 3.950/4.948/7.072/1.242 ms Testare le connessioni con ping Una risposta del tipo “Destination Host Unreachable” può essere dovuta ai seguenti motivi Se si sta pingando un host connesso alla stessa subnet L’host potrebbe essere spento o disconnesso Il cavo potrebbe non essere funzionante o di tipologia sbagliata. Ricordiamo che esistono 2 tipi di cavi “diretti” e “incrociati”. In caso di connessione wireless , l’SSID o il protocollo e/o chiave crittografica sbagliato. Se si sta pingando un host connesso a una rete remota L’host è stato configurato per non rispondere al ping Un firewall o un router lungo il “network path” sta bloccando il traffico ICMP. C’è un routing sbagliato. Controllare le rotte e le subnet masks sia sull’host sorgente che su quello destinazione e tutte le rotte dei router attraversati. Si può usare il comando traceroute per controllare gli host attraversati. L’ip dell’host sorgente e quello destinazione non appartengono alla stassa subnet e non vi sono tra questi dei router di collegamento tra le subnet. Testare un servizio con telnet Conoscendo indirizzo ip e porta di ascolto di un servizio è possibile instaurare una comunicazione facendo uso dei comandi tipici del servizio contattato La sintassi generale è: telnet server porta Inviare una mail usando telnet telnet smtp.vega.it 25 Trying 100.99.198.97... Connected to vega.it. Escape character is '^]'. 220 vega.it ESMTP Sendmail 8.12.9 ready at Sun, 01 Sep 2003 00:00:00 +0200 (CEST) helo vega.it 250 vega.it Hello <Nome del proprio pc> [<IP del proprio pc>], pleased to meet you help 214-2.0.0 This is sendmail version 8.12.9 214-2.0.0 Topics: 214-2.0.0 HELO EHLO MAIL RCPT DATA 214-2.0.0 RSET NOOP QUIT HELP VRFY 214-2.0.0 EXPN VERB ETRN DSN AUTH 214-2.0.0 STARTTLS 214-2.0.0 For more info use "HELP <topic>". 214-2.0.0 To report bugs in the implementation send email to 214-2.0.0 [email protected]. mail from: [email protected] 250 2.1.0 <[email protected]>... Sender ok rcpt to: [email protected] 250 2.1.5 <[email protected]>... Recipient ok data 354 Enter mail, end with "." on a line by itself subject: Importante! Ci vediamo stasera? . 250 2.0.0 <codice del messaggio> Message accepted for delivery quit 221 2.0.0 vega.it closing connection Connection closed by foreign host. Controllo del dns Se il server risulta raggiungibile mediante l'indicazione del solo indirizzo IP allora siamo di fronte ad un problema di DNS : Possono essere sbagliati i riferimenti ai DNS server nella configurazione di rete dell'host che manifesta il malfunzionamento; Può esserci un problema sui DNS server o possono non essere raggiungibili. Se possibile, chiedere ad un collaboratore di connettersi al server da una diversa locazione: Se la connessione ha successo allora il problema si trova lato client; Se la connessione fallisce allora il problema è legato alla rete o si trova lato server. Controllo del dns Supponiamo di voler connetterci ad un host per usufruire di un servizio di rete (Web, mail, FTP, telnet, ...), usando il protocollo TCP/IP e riferendolo mediante il suo nome nel DNS. Per esempio, connettendoci ad una Uniform Resource Locator (URL) di un Web server (per esempio http://www.unibo.it), nel caso di malfunzionamento, potremmo ottenere due tipi di messaggio di errore che ci possono dare informazioni diverse: Se otteniamo un messaggio del tipo Errore 404, pagina non trovata vuol dire che la rete funziona correttamente, ma vi possono essere eventualmente problemi sul server. Se otteniamo un messaggio di errore del tipo il server non esiste o non posso trovare il server allora siamo di fronte ad un possibile problema di rete. Uso di nslookup Nslookup (Name Server Lookup) è uno strumento presente in tutti i sistemi operativi che utilizzano il protocollo TCP/IP (Gnu/Linux, Unix, MAC OS X, Windows). Nslookup consente di effettuare delle query (richieste) ad un server DNS per la risoluzione di indirizzi IP o Hostname, per poter ottenere da un dominio il relativo indirizzo IP o nome host e viceversa. Si può utilizzare in due modi: interattivo e non interattivo. Il portscanner nmap Nel film Matrix Reloaded Trinity usa Nmap per penetrare nel sistema della centrale elettrica, tramite la forzatura dei servizi SSH. Nmap è nato come scanner di rete ed è diventato un tool molto ricco, utilizzabile sia allo scopo di prevenire attacchi che di effettuarli. Nmap è scritto per sistemi Linux ed è possibile utilizzarlo sia da linea di comando, sia tramite interfaccia grafica. Attuelmente ne esiste anche una versione per windows Il portscanner nmap Sintassi: nmap -[tipi di scan] -[opzioni] <host o segmenti di rete> Uso classico nmap -A -v www.ipsiacastigliano.it Opzioni comuni -A Opzione di scan aggressive) -vv Aumenta la quantita` di informazioni -sS Lancia un SYN scan invisibile -p Port range -P0 Considera tutti gli hosts on line - salta fase scoperta -sP Ping Scan -O Abilita l’individuazione del sistema operativo Il portscanner nmap nmap -sT -PI 172.16.1.0/24 Starting Nmap 4.20 ( http://insecure.org ) at 2008-01-31 19:36 CET Interesting ports on 172.16.1.1: Not shown: 1685 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 139/tcp open netbios-ssn #samba 445/tcp open microsoft-ds #samba 3128/tcp open squid-http #proxy squid 4662/tcp filtered edonkey #servizio filtrato dal firewall 4672/tcp filtered rfa #servizio filtrato dal firewall 6346/tcp filtered gnutella #servizio filtrato dal firewall 6347/tcp filtered gnutella2 #servizio filtrato dal firewall 6699/tcp filtered napster #servizio filtrato dal firewall 8080/tcp open http-proxy 10000/tcp open snet-sensor-mgmt #webmin MAC Address: 00:19:D1:2D:5A:D9 (Unknown) Il portscanner nmap nmap -sT -sR -sV -I -O -PI -PT -vv 172.16.1.1-30 > result.txt ….. Host 172.16.1.24 appears to be up ... good. Interesting ports on 172.16.1.24: Not shown: 1693 closed ports PORT STATE SERVICE VERSION 80/tcp open http HP PhotoSmart 8450 printer http config (Virata embedded httpd 6_0_1) 9100/tcp open jetdirect 9101/tcp open jetdirect 9102/tcp open jetdirect MAC Address: 00:1C:C4:74:2E:B6 (Unknown) …. ..molto bene ha scoperto anche la stampante. Avrete a disposizione un universo di informazioni Tcpdump tcpdump è un tool comune per il debug delle reti di computer the funziona sotto riga di comando. Consente all'utente di intercettare e visualizzare TCP/IP e altri pacchetti che vengono trasmessi o ricevuti attraverso una rete al quale il computer è collegato. per il debugging di applicazioni scritte che utilizzano la rete per le comunicazioni; per il debugging della configurazione di rete in sé, determinando se tutti gli instradamenti necessari sono o non sono avvenuti correttamente, consentendo all'utente di isolare successivamente il sorgente del problema per intercettare e visualizzare le comunicazioni di un altro utente o il computer. Alcuni protocolli, come telnet e HTTP, trasmettono informazioni non cifrate attraverso la rete. Un utente con controllo di un router o gateway attraverso il quale passa il traffico non cifrato di altri computer può usare tcpdump per vedere login ID, password, gli URL e i contenuti dei siti web che sono stati visitati, o qualsiasi altra informazione. Tcpdump Sintassi: Opzioni principali: -a Permette di convertire indirizzi broadcast e ip in nomi -c Esce dopo aver ricevuto un tot di pacchetti (es. c100) -e Stampa il mac address in ogni pacchetto catturata -F Permette di fornire i filtri da un file -i Definisce l'interfaccia di rete. (es. -i eth0 o -i lo) -n Non converte l'indirizzo ip in nome -p L’interfaccia locale non viene settata in modalità promiscua -r Utilizza il file specificato come input per i dati da filtrare -s Indica la quantità in bytes di un pacchetto catturato -v Verbose (incrementa il numero di informazioni) Esempi d’uso: analisi del traffico icmp sull’interfaccia eth0 tcpdump [opzioni] [espressioni] tcpdump –i eth0 –n icmp