[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]
TELNET è un protocollo che permette di effettuare un collegamento con un altro elaboratore e di operare su quello, come se si stesse utilizzando un suo terminale. Per fare questo, dal lato del servente occorre il demone telnetd (o meglio in.telnetd), mentre dal lato del cliente si utilizza normalmente telnet.
Il cliente TELNET è molto importante anche come programma diagnostico per instaurare un collegamento manuale con una porta e iniziare quindi un colloquio diretto con il protocollo TCP. In questo caso, il demone telnetd non viene utilizzato. (1)
Come già accennato, per eseguire un accesso in un elaboratore remoto attraverso il programma telnet, è necessario che il demone in.telnetd sia in funzione in quell'elaboratore:
in.telnetd [opzioni]
Il demone in.telnetd è gestito normalmente dal supervisore dei servizi di rete e filtrato dal TCP wrapper.
Nell'esempio seguente, viene mostrata la riga di /etc/inetd.conf
in cui si dichiara il suo possibile utilizzo per quanto riguarda il caso particolare di Inetd:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd |
Se è presente il file /etc/issue.net
, viene utilizzato da in.telnetd per visualizzare un messaggio introduttivo, non appena si instaura un collegamento. Si tratta di un file di testo con lo stesso ruolo del file /etc/issue
(51.3.1), che invece viene utilizzato da un programma Getty.
/etc/issue.net
può contenere alcune sequenze di escape che vengono poi trasformate in vario modo nel momento della visualizzazione del messaggio. La tabella 143.1 ne mostra l'elenco.
Tabella 143.1. Elenco dei codici di escape utilizzabili all'interno del file /etc/issue.net
.
Codice | Descrizione |
| Il terminale corrente. |
| Il nome completo del sistema (FQDN). |
| Il nome del dominio NIS. |
| La data e l'ora attuale. |
| Il nome del sistema operativo. |
| Il tipo di hardware. |
| Il rilascio del sistema operativo. |
| La versione del sistema operativo. |
| Equivale a un carattere percentuale singolo. |
L'accesso a un elaboratore remoto viene fatto attraverso il programma telnet, il quale permette di operare come se ci si trovasse su un terminale di quel sistema:
telnet [opzioni] [host_remoto [porta]]
Se l'eseguibile telnet viene avviato senza specificare il nodo con il quale ci si vuole connettere, questo inizia a funzionare in modalità di comando, visualizzando l'invito: telnet>.
Quando l'eseguibile telnet riesce a connettersi al sistema remoto, si opera come se si fosse seduti davanti a un terminale di quel sistema.
Per poter dare dei comandi a telnet occorre tornare temporaneamente alla modalità di comando, cosa che si ottiene utilizzando il carattere di escape. Questo carattere di escape non corrisponde alla pressione del tasto [Esc], ma di solito alla combinazione [Ctrl+]] (control + parentesi quadra chiusa). Questa convenzione può essere cambiata ed è una cosa quasi necessaria dal momento che utilizzando la tastiera italiana non è possibile ottenere le parentesi quadre se non in combinazione con [AltGR]. Diversamente, l'unico modo per poter ottenere la combinazione [Ctrl+]] è quello di passare a un'altra console virtuale, attivare la mappa della tastiera USA, tornare sulla console virtuale in cui è in funzione telnet ed eseguire la combinazione.
La comunicazione tra il cliente TELNET e il sistema remoto può essere di tre tipi:
Segue la descrizione di alcune opzioni e di alcuni argomenti della riga di comando.
Segue la descrizione di alcuni dei comandi che possono essere usati in modo interattivo.
Se viene predisposto il file /etc/telnetrc
a livello globale, o anche il file ~/.telnetrc
a livello personale, questi vengono letti quando si stabilisce un collegamento (naturalmente il secondo prende il sopravvento sul primo). Se al loro interno appare un riferimento all'elaboratore con il quale ci si è collegati, vengono eseguite le istruzioni relative.
Le righe che iniziano con il simbolo # sono commenti che terminano alla fine della riga.
Le righe che non contengono spazi anteriori, dovrebbero iniziare con il nome di un nodo remoto. Ciò che segue la stessa riga e quelle seguenti, che però cominciano con almeno uno spazio, sono considerate come una serie di comandi da eseguire automaticamente all'atto della connessione con quell'elaboratore.
Un cliente TELNET è un ottimo strumento per eseguire una connessione TCP diagnostica con una porta di un nodo, sia remoto che locale. Naturalmente, per poter utilizzare questo sistema occorre conoscere il protocollo utilizzato dal demone con il quale ci si collega.(2)
L'esempio classico è l'invio di un messaggio di posta elettronica attraverso una connessione diretta con il servente SMTP. Dal file /etc/services
si determina che il servizio SMTP (Simple mail transfer protocol) corrisponde alla porta 25, ma si può anche utilizzare semplicemente il nome smtp. Nell'esempio, si instaura un collegamento con il servente SMTP in funzione nel nodo roggen.brot.dg
.
$
telnet roggen.brot.dg smtp
[Invio]
Trying 192.168.1.2... Connected to roggen.brot.dg. Escape character is '^]'. 220 roggen.brot.dg ESMTP Sendmail 8.8.5/8.8.5; Thu, 11 Sep 1997 19:58:15 +0200
HELO brot.dg
[Invio]
250 roggen.brot.dg Hello dinkel.brot.dg [192.168.1.1], pleased to meet you
MAIL From: <daniele@dinkel.brot.dg>
[Invio]
250 <daniele@dinkel.brot.dg>... Sender ok
RCPT To: <toni@dinkel.brot.dg>
[Invio]
250 <toni@dinkel.brot.dg>... Recipient ok
DATA
[Invio]
354 Enter mail, end with "." on a line by itself
Subject: Saluti.
[Invio]
Ciao Antonio,
[Invio]
come stai?
[Invio]
Io sto bene e mi piacerebbe risentirti.
[Invio]
Saluti,
[Invio]
Daniele
[Invio]
.
[Invio]
250 TAA02951 Message accepted for delivery
QUIT
[Invio]
221 dinkel.brot.dg closing connection Connection closed by foreign host.
L'esempio mostrato dovrebbe funzionare senza bisogno di dare delle opzioni particolari all'eseguibile telnet; tuttavia, in certi casi può essere necessario l'uso dell'opzione -8 per evitare che alcuni caratteri trasmessi o ricevuti possano essere alterati.
Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini --daniele @ swlibero.org
2) Un cliente TELNET è in grado di utilizzare soltanto il protocollo TCP. I servizi che si basano sul TCP utilizzano un proprio protocollo di livello superiore ed è questo ciò a cui si fa riferimento.
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome telnet.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]