Parlare di reti vuol dire anche parlare di protocolli e servizi di tutti i tipi, per vari scopi. Alcuni sono un retaggio del passato, di quel mondo accademico basato su Unix su cui Internet è cresciuta.
I comandi testuali per utilizzare, diagnosticare rete e servizi sono comuni a tutti gli Unix e, spesso a tutti i sistemi operativi, in quanto costituiscono spesso dei normali client per protocolli condivisi.
Le stesse funzioni e gli stessi protocolli sono comunemtne usati con analoghi strumenti e programmi grafici.
Gli strumenti più comuni, accessibili dalla shell di molti Unix sono:
telnet Permette un collegamento su una shell di un host remoto. E' comunissimo e molto diffuso. Richiede una login e un password che vengono trasmesse in chiaro sulla rete.
ssh Come telnet permette l'accesso remoto via shell ad un sistema, ma i dati trasmessi vegnono criptati per maggior sicurezza.
nslookup - dig Sono di fatto dei client DNS, permettono di interrogare server DNS e consentono precise operazioni di analisi e troubleshooting.
ftp E' un comune protocollo di trasferimento di file fra host remoti. E' anche il nome di base del client con cui si possono uploadare o downlodare file da server FTP remoti.
lynx - links Sono dei cleint HTTP testuali, cioè dei browser che visualizzano solo i testi dei siti web e non le immagini.
wget E' un comodo comandi, comuni in molti Linux ma disponibile anche su Unix, per scaricare file remoti tramite FTP o HTTP.
finger E' il client dell'omonimo protocollo, permette di elencare gli utenti collegati su un host remoto. Ormai è usato raramente.
traceroute Permette di visualizzare l'elenco degli nodi che esistono fra il nostro host e l'indirizzo specificato.
ping Permette di diagnosticare se è raggiungibile via retel'indirizzo specificato.
whois Esegue una query whois, utile anche per ottenere dati su chi ha registrato il dominio specificato.
Restituisce informazioni utili dei vari utenti del sistema (anche remoti).
Ormai, per questioni di riservatezza e sicurezza, il numero di server finger in rete è ridottissimo.
finger [-lmsp] [user] [user@host]
-m
Switch per identificare se il nome dell'utente corrisponde al login name oppure al real-name.
-s
Visualizza login name, real name, terminal name,write status, idle time, login time, e eventuali informazioni sull'ufficio e il numero di telefono.
-p
Utilizzato con l'opzione -l non visualizza alcune informazioni contenute nei seguenti file ``.plan'', ``.project'' e ``.pgpkey''
Permette di scaricare un file dalla rete, eseguendo il processo in background (opzione -b) con possibilità di recupero in caso di interruzione (opzione -c) partendo dal file di log generato (opzione -o).
homer@Joker:~$ wget -c -b -o disc1-log ftp://ftp.edisontel.com/pub/Fedora_Mirror/1/i386/iso/yarrow-i386-disc1.iso
Continuing in background, pid 1340.
Utile nel caso sia necessario, abbandonare una shell remota di una macchina con un download in corso. Wget continuerà a scaricare i file anche dopo la disconnessione e in caso di interruzione imprevista il download potrà comunque essere ripreso.
Differenza fra l'output di default di nslookup e dig
Output del comando nslooup
[neo@dido neo]$ nslookup openskills.info
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Info sul server a cui e' stata fatta la query (il server DNS usato di default sul sistema)
Server: 217.148.96.242
Address: 217.148.96.242#53
Risultato della query, fornito da un dns server non autoritativo per la zona openskills.info
Non-authoritative answer:
Name: openskills.info
Address: 213.198.151.253
Output del comando dig
[neo@dido neo]$ dig openskills.info
Informazioni sul comando dig e sulla query lanciata
; <<>> DiG 9.1.3 <<>> openskills.info
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41154
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 13
Risultato della query
;; QUESTION SECTION:
;openskills.info. IN A
;; ANSWER SECTION:
openskills.info. 66831 IN A 213.198.151.253
;; AUTHORITY SECTION:
. 259567 IN NS M.ROOT-SERVERS.NET.
. 259567 IN NS I.ROOT-SERVERS.NET.
. 259567 IN NS E.ROOT-SERVERS.NET.
. 259567 IN NS D.ROOT-SERVERS.NET.
. 259567 IN NS A.ROOT-SERVERS.NET.
. 259567 IN NS H.ROOT-SERVERS.NET.
. 259567 IN NS C.ROOT-SERVERS.NET.
. 259567 IN NS G.ROOT-SERVERS.NET.
. 259567 IN NS F.ROOT-SERVERS.NET.
. 259567 IN NS B.ROOT-SERVERS.NET.
. 259567 IN NS J.ROOT-SERVERS.NET.
. 259567 IN NS K.ROOT-SERVERS.NET.
. 259567 IN NS L.ROOT-SERVERS.NET.
;; ADDITIONAL SECTION:
M.ROOT-SERVERS.NET. 345967 IN A 202.12.27.33
I.ROOT-SERVERS.NET. 345967 IN A 192.36.148.17
E.ROOT-SERVERS.NET. 345967 IN A 192.203.230.10
D.ROOT-SERVERS.NET. 345967 IN A 128.8.10.90
A.ROOT-SERVERS.NET. 345967 IN A 198.41.0.4
H.ROOT-SERVERS.NET. 345967 IN A 128.63.2.53
C.ROOT-SERVERS.NET. 345967 IN A 192.33.4.12
G.ROOT-SERVERS.NET. 345967 IN A 192.112.36.4
F.ROOT-SERVERS.NET. 345967 IN A 192.5.5.241
B.ROOT-SERVERS.NET. 345967 IN A 128.9.0.107
J.ROOT-SERVERS.NET. 345967 IN A 198.41.0.10
K.ROOT-SERVERS.NET. 345967 IN A 193.0.14.129
L.ROOT-SERVERS.NET. 345967 IN A 198.32.64.12
Informazioni sull'esecuzione della query
;; Query time: 30 msec
;; SERVER: 217.148.96.242#53(217.148.96.242)
;; WHEN: Fri Oct 11 15:54:32 2002
;; MSG SIZE rcvd: 468
Un web browser testuale con comandi simili a lynx che supporta anche tabelle e frames.
Come tutti i web browser testuali risulta essere un prodotto veloce, leggero e funzionale, ma può presentare difficoltà di visualizzazione con siti con alto contenuto grafico o dinamico.
links -[OPTIONS] [filename|URL]
I comandi riportati sono quelli in aggiunta o diversi da lynx
F9 e F10
Richiama il menu.
^C
Exit
Left Arrow
Permette di fermare il download
\
Switch che permette la visualizzazione dei src della pagina html
^Z
Links passa in background. Per richiamarlo fg links.
Lynx è un web browser testuale molto popolare, veloce e comodo, ma non supporta i frame.
Le opzioni disponibili sono infinite, di seguito sono riportati i comandi piu comuni da utilizzare una volta che lynx è stato lanciato
lynx [options] [path or URL]
lynx --help
Per richiamare l'help
COMMANDS
Up arrows e Down Arrows
Permette lo scroll della pagina visualizzata
Return e right Arrows
Segue il ink selezionato nella pagina visualizzata, equivalente al click con il mouse sul link.
Left Arrows
Richiama la pagina precedentemente caricata.
H; ?
Richiama l'help.
K
Richiama la lista dei comandi con le relative key bindate.
d
Esegue il download.
g
Abilita la funzione goto, ovvero ti permette di cambiare url.
q
Chiude il browser.
o
Richiama una finistra con la possibilita' di cambiare le opzioni.
p
Esegue la stampa
^A
Richiama la home page
!
Richiama la shell senza chiudere il browser, e' possibile richiamarlo digitando in shell exit
Utility GNU per downlodare files, sia tramite HTTP che FTP, con la possibilita' del resume, di logging e tante altre features.
Possiede due file di configurazioni che possono contenere le opzioni di default del comando:
-.wgetrc file di configurazione del singolo utente
- /usr/local/etc/wgetrc file di configurazione globale
Di seguito sono riportate le opzioni piu' interessanti:
wget [option]... [URL]...
BASIC OPTIONS
-b; --background
Esegue il processo in background
-e; --execute
Esegue il comando come se fosse all'interno del file di configurazione dell'utente .wgetrc
LOGGING E INPUT FILE OPTIONS
-o logfile;--output-file=logfile
Logga tutti i messaggi dello STERR in un file.
-a;--append-output=logfile
Come sopra, con la differenza che esegue un'append al file di log se tale file esiste gia'.
-d;--debug
Abilita il debug
-i;--input-file=file
Legge l'eleco degli indirizzi dal file specificato
-F;--force-html
Opzione per indicargli che il file in input e' un file html, e i vari url a cui si deve connettere sono quelli all'interno del tag del link (href="url")
DOWNLOAD OPTIONS
--bind-address
Specifica l'indirizzo a cui bindarsi sulla macchina locale
-c;--continue
Opzione per abilitare il resume di un download
--spider
Abilita lo spider mode, ovvero non scarica niente ma verifica che l'url esista
-Q;--quota
Specifica quanto scaricare, non funziona con un singolo file!
DIRECTORY OPTIONS
-nd;--no-directories
Non ricrea la struttura completa trovata sul server remoto, quindi tutti i file vengono scaricati nella directory corrente.
-x;--force-directories
Esattamente l'opposto dell'opzione -nd, ovvero foza la creazione della struttura ristrovata sul server remoto
HTTP OPTIONS
--http-user=user;--http-passwd=password
Specifica Utente e password per connettersi via http ad un server remoto
-C on/off; --cache=on/off
Abilita o meno la cache lato server
--cookies=on/off
Abilita o meno l'uso dei cookies
-U agent-string;--user-agent=agent string
Opzione che ti permette di modificare l'user-agent per identificarsi al web server
FTP OPTIONS
-g on/off;--glob=on/off
Abilita o meno l'uso delle wildcards. [ " * ", " ? " etc..]
--passive-ftp
Abilita il passive mode
RECURSIVE RETRIEVAL OPTIONS
-r;--recursive
Abilita il recursive mode
--delete-after
Cancella cio' che e' stato scaricato (ovviamente sulla macchina locale)
--convert-link
Opzione che permette di modificare in modo automatico i link all'interno di una pagina html per permettere la visualizzazioenda locale
Valida alternativa a nslookup per effettuare query sul dns.
Come nslookup ha due modi di utilizzo:
- Interactive mode, per effettuare una semplice query
- Batch mode, per effettuare una serie di query contenute in un file
dig [@server] domain [] [] [-]
@server
Specifica il server DNS a cui fare le query
query-type
Specifica che tipo di query effettuare
query-class
Seleziona la class della query
-f
-dig-options che specifica il file contenente le query da effettuare in modalita' batch mode.
Comando che permette di lanciare query dns per la risoluzione di ip o hostname.
Agisce in due modalita:
Interactive: Permette di effettuare piu' query e visualizza i singoli riultati. Viene abilitato in modo automatico quando il comando non e' seguito da argomenti oppure se il primo argomento e' un trattino (-) seguito dal secondo argomento che corrisponde all'host name o all'ip del name server.
non-interctive: Permette di effettuare una sola query e ovviamente visualizza il risultato della singola query. Abilitato ogni qualvolta che si specifica l'host-to-find.
Il DNS di default a cui si effettuano le query e' quello configurato in /etc/resolv.conf
nslookup [opzioni] [host-to-findi] [-server]
INTERACTIVE COMMAND
?
richiama l'help
host [server]
look up dell'host eseguendo una query al dns di default oppure al server specificato
server nomeserver
Modifica il dns di default per la sessione corrente
set keyword [value]
Comando che permette di cambiare i criteri di ricerca e visualizzazione delle informazioni che si vanno a richiedere al dns. Di seguito sono riportati alcune opzioni di questo comando.
all
Visualizza tutte le opzioni che sono selezionate di default
class=value
Modifica la query class
type
Modifica il tipo di informazioni da richiedere al dns.
CLASS
IN
Internet class
CHAOS
chaos class
HESIOD
MIT Athena Hesiod class
ANY
wildcard, cioe' tutte le classi
TYPE
A
L'indirizzo internet di un host
CNAME
canonical name di un alias
MX
mail exchanger
NS
Name server autoritativo della zona
PTR
l'host name se la query e' per un indirizzo internet altrimenti altre informazioni
SOA
Visualizza i dns autoritativi della zona
Ftp oltre ad essere un protocollo e' anche il comando (user-interface) per connettersi ad un server ftp.
Utilizzato per downloadare e uploadare files. Disponibile in tutti gli Unix e su Windows.
I comandi che si possono dare dal client sono quelli tipici del protocollo FTP e risultano disponibili su ogni client ftp.
ftp -pievd [host]
-p
Abilita il passive mode, utile se ci sono firewall fra il server ed il client
-i
Disabilita l'interctive prompting
-e
Disabilita il command editing e l'history
-v
Abilita il verbose mode
-d
Abilita il debugging
Comandi FTP
open nomehost
Si collega all'host specificato
user login
Si logga all'host a cui si è connessi con la login indicato
open nomehost
Si collega all'host specificato
dir
Visualizza file e directory.
get nomefile
Scarica il file specificato
put nomefile
Fa un upload sul server ftp del file locale specificato
cd nomedir
Cambia la directory corrente
ascii
Attiva la modalità di trasferimento file ascii
bin
Attiva la modalità di trasferimento file binari
pas
Attiva/disattiva la modalità passiva
!
Esegue il comando localmente. Es: !dir visualizza la directory corrente locale e non quella sul server FTP remoto.
Trovare il nome del mail server per un determinato dominio.
E' possibile ottenere il nome del mail server che si occupa di recapitare le mail per un determinato dominio, utilizzando una query al DNS in cui viene richiesto specificatamente il campo MX (Mail eXchanger), ovvero quello contentente il nome del server di posta:
homer@enigma:/software$ dig -t MX openskills.info
; <<>> DiG 9.2.3 <<>> -t MX openskills.info
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60934
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;openskills.info. IN MX
La query inviata al DNS server
;; ANSWER SECTION:
openskills.info. 1200 IN MX 10 mail.coresis.com.
La risposta del DNS server contentente il campo mx nel quale è possibile leggere il nome mail server
;; AUTHORITY SECTION:
openskills.info. 1200 IN NS ns.coresis.com.
openskills.info. 1200 IN NS ra.coresis.com.
;; ADDITIONAL SECTION:
ns.coresis.com. 141409 IN A 217.56.35.99
ra.coresis.com. 141409 IN A 213.215.144.245
;; Query time: 263 msec
;; SERVER: 212.216.112.112#53(212.216.112.112)
;; WHEN: Sat Dec 11 14:22:34 2004
;; MSG SIZE rcvd: 131