Di Tiziano Ragazzi
Testare la tua scheda di rete 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 TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE Usiamo ethtool per un analisi più approfondita Esempio: [root@bigboy tmp]# 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 coni mac address delle connessioni root@bigboy# 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 In ambiente windows il comando è lo stesso
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 (linux) root@bigboy# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 18976655 2 0 0 21343152 142 0 3 BMRU eth1 1500 0 855154 0 0 0 15196620 0 0 0 BMRU lo 16436 0 1784272 0 0 0 1784272 0 0 0 LRU
Netstat TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE Per ottenere informazioni sulle connessioni UDP (linux) root@bigboy# netstat nuap Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 127.0.0.1:161 0.0.0.0:* 5052/snmpd udp 0 0 0.0.0.0:443 0.0.0.0:* 3731/openvpn Per ottenere informazioni sulle connessioni TCP (linux) root@bigboy# netstat ntap Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address name Foreign Address State PID/Program 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 (echo-request) e resta in attesa di una risposta (pong) di tipo icmp 3 (echo-reply) Esempio:risposta corretta dell interfaccia pingata root@smallfry # 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
traceroute e tracert Se si verificano problemi di connettività, è possibile utilizzare i comandi tracert (win) o traceroute (linux) per controllare il percorso dell'indirizzo IP che si desidera raggiungere e registrare i risultati della verifica. Questi comandi visualizzano le serie di router IP utilizzati per il recapito di pacchetti dal proprio computer alla destinazione e il tempo impiegato per ciascun passaggio (hop). Se i pacchetti non vengono recapitati alla destinazione finale, il comando tracert visualizza l'ultimo router che ha inoltrato correttamente i pacchetti.
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 sendmail-bugs@sendmail.org. mail from: actarus@vega.it 250 2.1.0 <actarus@vega.it>... Sender ok rcpt to: venusia@venus.it 250 2.1.5 <venusia@venus.it>... Recipient ok data 354 Enter mail, end with "." on a line by itself subject: Importante! ciao! Ci vediamo stasera? baci.. 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 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 Sintassi: nmap -[tipi di scan] -[opzioni] <host o segmenti di rete> Uso classico nmap -A -v www.ipsiacastigliano.it
Il portscanner nmap root@serse:~# 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 root@serse:~# nmap -st -sr -sv -I -O -PI -PT -vv 172.16.1.0/24.. 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: tcpdump [opzioni] [espressioni] Opzioni principali: -a Permette di convertire indirizzi broadcast e ip in nomi -c Esce dopo aver ricevuto un tot di pacchetti (es. c100) -C Setta la grandezza del file salvato con il flag -w -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 -t Non stampa il contrassegno temporale per ogni pacchetto catturato -v Verbose (incrementa il numero di informazioni) -w scrive su file il risultato dello sniffing (es. -w file) Esempi d uso: analisi del traffico icmp sull interfaccia eth0 tcpdump i eth0 n icmp
Snmp SNMP (Simple Network Management Protocol) è un protocollo a livello di applicazione definito per introdurre una semplice architettura per la gestione di reti basate sulla suite di protocolli TCP/IP. Tale protocollo definisce le modalità di scambio di informazioni tra apparecchiature di rete, consentendo agli amministratori di tenere sotto controllo le performance della rete e di accorgersi in tempo reale del manifestarsi di malfunzionamenti. Attualmente il protocollo presenta tre definizioni successive: dalla versione 1 alla versione 3 (SNMPv1, SNMPv2, SNMPv3). Le versioni più recenti introducono nel protocollo alcune nuove funzionalità e correzioni, soprattutto relativamente alla sicurezza. Il protocollo SNMP è attualmente quello più diffuso per la gestione delle reti di calcolatori ed è supportato da praticamente tutti i produttori di hardware ed apparecchiature di rete.
Snmp L'architettura di cui il protocollo SNMP fa parte, è detta Internet Network Management Framework (NMF). L'architettura consente di gestire degli elementi di rete (che sono apparecchiature di rete come router, switch, hub, computer,...) usando degli agenti, cioè moduli software che risiedono sulle apparecchiature da gestire. Tali agenti comunicano con una stazione di gestione centralizzata (Network Management Station) che, interagendo con i primi, può leggere o scrivere informazioni e raccogliere eventuali segnalazioni di errore. Le informazioni o caratteristiche che è possibile gestire per una particolare apparecchiatura, mediante il protocollo SNMP, sono dette Management Objects. L'insieme di questi oggetti costituisce un'astrazione di database detta Management Information Base (MIB).
Snmp Uno schema logico di tale architettura è riportato di seguito
Snmp SNMP definisce lo standard di comunicazione tra la stazione di management centralizzata e gli agenti, per il trasferimento delle informazioni da e verso le apparecchiature. Le operazioni possibili sono: Read: è possibile leggere i valori mantenuti dalle apparecchiature gestite, per poterle monitorare; Write: è possibile scrivere variabili mantenute nella periferica per controllarne il funzionamento; Traversal operations: servono alla stazione di gestione centralizzata per capire quali sono le informazioni gestite dalla periferica; Trap: sono messaggi inviati in modo asincrono dalla periferica alla stazione di gestione centralizzata, per segnalare un malfunzionamento e quindi permettere all'operatore di accorgersene in tempo reale.