Sep 242010
 

networkNei due articoli precedenti abbiamo visto due strumenti che offrono un output delle nostre analisi in formato grafico (ntop e wireshark), oggi invece vedremo alcuni strumenti utilizzabili da linea di comando: Ping, telnet, dig, traceroute, whois, netstat, nmap, e mtr

PING

Ping è un programma disponibile sui principali sistemi operativi che misura il tempo, espresso in millisecondi, impiegato da uno o più pacchetti ICMP a raggiungere un altro computer o server in rete (sia essa Internet o LAN) ed a ritornare indietro all’origine. È prettamente utilizzato per verificare la presenza e la raggiungibilità di un altro computer connesso in rete e per misurare le latenze di trasmissione di rete.




Tecnicamente ping invia un pacchetto ICMP di tipo echo request e rimane in attesa di un pacchetto ICMP di tipo echo reply in risposta. Solitamente infatti la parte di sistema operativo dedicata alla gestione delle reti (stack di rete) è programmata per rispondere automaticamente con un pacchetto di tipo echo reply alla ricezione di un pacchetto di tipo echo request.

Ping tipicamente visualizza sullo standard output il numero di pacchetti inviati e ricevuti, la loro dimensione, il tempo totale trascorso tra l’invio di ogni pacchetto e la ricezione della risposta corrispondente, la media dei tempi e la percentuale di risposte ottenute. Alcune implementazioni (come quella disponibile in Cisco IOS) non mostrano i tempi di ciascun tentativo, ma si limitano a mostrare un carattere per ogni pacchetto inviato che indica se è stata ricevuta risposta o meno. Altre implementazioni, come quella in Solaris, si limitano normalmente ad indicare se la destinazione è stata raggiunta o meno, e fornendo un output dettagliato solo specificando apposite opzioni.

Sintassi base: ping hostname|IP

Esempio:

ping www.linuxaria.com
PING linuxaria.com (66.7.205.168) 56(84) bytes of data.
64 bytes from solid.nseasy.com (66.7.205.168): icmp_seq=1 ttl=46 time=220 ms
64 bytes from solid.nseasy.com (66.7.205.168): icmp_seq=2 ttl=46 time=171 ms
64 bytes from solid.nseasy.com (66.7.205.168): icmp_seq=3 ttl=46 time=169 ms
64 bytes from solid.nseasy.com (66.7.205.168): icmp_seq=4 ttl=46 time=169 ms
64 bytes from solid.nseasy.com (66.7.205.168): icmp_seq=5 ttl=46 time=168 ms
^C
--- linuxaria.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 168.906/179.895/220.449/20.297 ms

Che cosa significa ?

“time = 220ms” – questo è il tempo di andata e ritorno, il tempo tra l’invio del “ci sei?” e ricevere il “sì ci sono!”. In questo caso, 220 millisecondi. Dal momento che il ping è ripetuto più volte si può vedere che questo valore è abbastanza consistente, che è buono. Il tempo varia in base a molteplici fattori: quanto sei vicino al server remoto, come e quanti router e altri dispositivi di rete sono tra te e quel server, e altro ancora.

“5 packets transmitted, 5 received” – una delle cose per cui il protocollo TCP/IP è stato progettato per affrontare è la perdita di pacchetti. Idealmente, ogni pacchetto che si invia dovrebbe arrivare a dove sta andando, ma per varie ragioni questo non sempre avviene. Fintanto che i pacchetti possono arrivare dopo un nuovo tentativo o due, si avrà un uso normale dell’applicazione, senza allarmi. Ping invia più pacchetti e mostra la statistica sul tasso di successo, in modo che si possa vedere se una particolare connessione è soggetta a perdita di pacchetti.

“RTT min/avg/max/mdev” Tempo approssimativo percorsi andata e ritorno – mentre, in media, lo stesso tipo di pacchetto inviato per la stessa destinazione dovrebbe prendere circa la stessa quantità di tempo, anche questo non è sempre così. A volte per motivi diversi come gli apparati ed i percorsi che i pacchetti prendono, un pacchetto ci può mettere più tempo di altri. Ping segnala queste statistiche in modo che si possa vedere se una particolare connessione è soggetta a questo tipo di problema.

Alcune esempi:

ping -c 5 -q 127.0.0.1

Con l’opzione -c manda 5 pacchetti e con l’opzione -q non mostra i risultati dei singoli pacchetti ma solo il riassunto.

for i in {1..254}; do ping -c 1 -W 1 192.168.0.$i | grep 'from' | cut -d' ' -f 4 | tr -d ':'; done

Ping scan senza Nmap

Utile quando non avete nmap e volete vedere in una rete IP quali IP non rispondono.

Pinga tutti gli indirizzi da 192.168.0.1 a 192.168.0.254, modificate per la vostra sottorete.

Timeout messo ad 1 sec per velocizzare, se avete una rete lenta aumentate questo valore per non avere delle informazioni mancanti.

ping -q -c1 -w3 www.linuxaria.com 2&>1 /dev/null || echo www.linuxaria.com ping failed | mail -ne -s'Server unavailable' [email protected]

Verifica se un server è online altrimenti manda una mail.

Admin vuole una e-mail se il server Linuxaria è giù. Impostare un cron ogni 5 minuti con questa linea e si ottiene una e-mail quando/se un ping impiega più di 3 secondi.

Vedere anche Wikipedia

15 effective ping commands

Telnet

Telnet è un protocollo che fa parte della suite TCP/IP. E’ molto simile al programma rlogin UNIX. Telnet consente di controllare un computer remoto dal proprio. E’ un software di emulazione terminale. Ai vecchi tempi gli hard disk giorni erano costosi e rari (sto parlando di un bel po di tempo fa) e non c’erano i personal computer. Per utilizzare i computer esistenti si doveva affittare lo spazio hardrive ed i terminali utilizzati per far funzionare il sistema. Per gli sviluppatori questo è stato molto importante perché l’informatizzazione è diventata molto più economica. Avevi bisogno di un server e numerose connessioni possibili. Con un telnet si può emulare questo tipo di calcolo distribuito e, per esempio gestire un supercomputer a distanza.

TCP/IP funziona con porte stabilite ed anche telnet ne ha una. E’ la numero 23. E ha diversi RFC. N°854 che risale al 1983 e determina le specifiche del protocollo telnet.
Con telnet si possono fare varie cose, come inviare mail, accedere a siti web o proxy irc e anche (anche se quasi mai) di visualizzare e modificare pagine web. Ci sono servizi disponibili a telnet che permettono di cercare attraverso database di grandi dimensioni usando solo telnet.
In questo modo si utilizza la potenza del computer remoto in modo che non si usino le nostre risorse preziose.

Ma vediamo come possiamo usare telnet ai nostri giorni:

telnet < hostname > < ip >

Telnet farà una conenssione tcp ad un ip/porta remoti per verificare la connettività. Se va in time out, non sta raggiungendo l’host (Forse un firewall ci sta bloccando). Se la connessione è rifiutata, sta raggiungendo l’host, ma o il servizio non è in ascolto su quella porta o la porta non è aperta.

telnet www.linuxaria.com 80
Trying 66.7.205.168...
Connected to linuxaria.com.
Escape character is '^]'.
GET /index.php HTTP/1.1

HTTP/1.1 400 Bad Request
Date: Fri, 24 Sep 2010 21:02:46 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.11
Content-Length: 422
Connection: close
Content-Type: text/html; charset=iso-8859-1

Si collega ad un sito web su porta 80, dopo il GET otteniamo una risposta dal server in website hosting . Può essere una prima verifica per vedere se raggiungete da un server un sito web.

telnet towel.blinkenlights.nl

Guardate Star Wars con un telnet.

telnet towel.blinkenlights.nl 666

Il generatore di scuse BOFH

DIG

dig (domain information groper) è uno strumento flessibile per interrogare i server DNS. Svolge ricerche DNS e visualizza le risposte che vengono restituiti dal/dai server dei nomi che sono stati interrogati. La maggior parte degli amministratori DNS utilizzare dig per risolvere i problemi di DNS, per la sua flessibilità, facilità d’uso e chiarezza di output. Altri strumenti di ricerca tendono ad avere meno funzioni rispetto dig.

Anche se dig viene normalmente utilizzato con argomenti da riga di comando, ha anche una modalità batch di operazione per la lettura di richieste di ricerca da un file. Un breve sommario degli argomenti della riga di comando e le opzioni viene stampato quando è data l’opzione -h . A differenza delle versioni precedenti, l’esecuzione di dig con BIND9 permette ricerche multiple, dalla riga di comando.

A meno che non sia istruito diversamente dig proverà ad utilizzare i server messi nel file /etc/resolv.conf.

Sintassi base:

dig @server name type

server è il nome del server DNS da interrogare.
name è il nome del record che vogliamo ricercare.

dig +short myip.opendns.com @resolver1.opendns.com


Ottieni l’ip con cui esci su Internet.
Invece di aprire il browser andare su “whatismyip” etc.
Anche molto utile per gli script.

dig +short txt .wp.dg.cx


Interroga wikipedia cercando , viene data una breve descrizione ed una url di riferimento.
Esempio:

dig +short txt linux.wp.dg.cx


“Linux (commonly pronounced in English; variants exist) is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; t” “ypically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the… http://a.vu/w:Linux”

Popular Posts:

Flattr this!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*