Seminari del PHC - Sergio Steffè - 31 gennaio 7, 14 febbraio 2000 - Comunicazioni tra Calcolatori  - PISA 

INDIETRO INDICE PHC HOME AVANTI

2.6 telnet, rlogin, rsh, slogin, ssh.

telnet

uso tipico:

telnet 131.114.6.55
telnet gauss.dm.unipi.it
telnet zorn
telnet

scopo:

Il comando telnet permette di collegarsi al calcolatore indicato: proprio come se ci si trovasse a lavorare con un terminale direttamente collegato al calcolatore.

L'applicazione client prende i dati dalla tastiera e li manda via rete al server, oppure prende i dati via rete dal server e li manda sullo schermo. L'applicazione server (telnetd) sostituisce alla coppia tastiera schermo di un terminale vero i flussi di dati via rete da e per il client.

Non si ha un uso molto efficiente della rete, perchè ogni volta che si pigia un tasto, per mandare un carattere si manda un intero pacchetto.

funzionamento:

se tutto funziona, dopo una piccola attesa, appare un messaggio di benvenuto del calcolatore ospite (host ) con il login:

a questo punto si batte il proprio username; che di solito è il proprio cognome; poi viene richiesta la parola chiave segreta

password:

battuta la password (che non appare sullo schermo), se tutti i dati sono validi, dopo un attimo di pausa il calcolatore è pronto all'uso.

E' essenziale, finito l'utilizzo, scollegarsi correttamente dall'host, con il comando exit o logout, a secondo del sistema operativo.

C'è una differenza importante rispetto al collegamento reale con un vero terminale: l'host non può sapere quale tipo di terminale deve far finta di aver collegato: infatti i vari programmi di telnet emulano vari tipi di terminali; i più comuni sono il vt100 e il vt220; le consolle hanno poi altri nomi; occorre perciò appena iniziata la sessione di lavoro, come prima cosa, comunicare all'host quale è il terminale che si sta emulando; tipici comandi per fare ciò sono

setenv TERM vt100
o
setenv TERM ibm ( ibm, ibm3101, ibm3161....)
o in altri casi
set TERM=vt100
export TERM
o
set TERM=ibm ( ibm, ibm3101, ibm3161....)
export TERM
o simili (dipende anche dalla shell che si usa, csh tcsh o bash).

Se non lo si fa, alcuni programmi dell' host non potranno funzionare correttamente, finendo di solito con l'ingarbugliare lo schermo o bloccare la tastiera.

Analogamente ci possono essere delle incomprensioni su quali siano i significati di certi tasti, come il Backspace e il Delete, o sul numero di righe e colonne che il terminale deve usare; i comandi per comunicare all'host la situazione corrente corretta sono per esempio:

stty erase ^H (a volte pigiare Control+H)
stty rows 24

Si noti che telnet da solo fornisce un prompt

telnet>

da cui è possibile dare alcuni comandi come help, quit oppure open nome-macchina, o altri.

In caso di difficoltà durante un collegamento fatto con il telnet, è sempre possibile interrompere il telnet con il comando Control-]; si ottiene proprio lo stesso prompt

telnet>

e' possibile allora uscire con quit, oppure continuare la connesione dando un semplice Enter.

non funzionamento:

se la connessione di Internet è in qualche punto interrotta, dopo una vana attesa di mezzo minuto appare un messaggio del tipo "network unreachable", o a volte "host not responding", messaggio che appare anche se semplicemente il calcolatore è spento. A volte si sbaglia il nome del calcolatore e allora appare un messaggio tipo "unknown host" che però a volte appare anche quando la connessione ad Internet è interrotta e il nome era giusto. Infine a volte il calcolatore in questione è già usato dal numero massimo di utenti permesso in quel momento - può essere anche 1 se l'operatore sta facendo della manutenzione del software ! - e in tal caso appaiono messaggi del tipo "connection refused" o "no available ptys" o simili.

Se ci si dimentica di sistemare i dati concernenti il tipo di terminale usato, possono comparire vari inconvenienti, e in particolare certi programmi che hanno bisogno di lavorare "a schermo pieno" possono non funzionare.

informazioni avanzate:

normalmente telnet apre la "porta" n. 23, ma può essere specificata (ma non in tutte le implementazioni di telnet) una porta diversa, cui risponde un diverso demone. Normalmente ci sono appositi programmi che si collegano a queste porte e scambiano con il server le opportune sequenze di comandi, ma usando il semplice telnet con la specifica della porta, il sistemista può provare manualmente il comportamento del server. Sapendo quali comandi dare, si può per esempio ottenere con la porta n.13 la data; con la n. 25 ci si collega al demone che risponde al sendmail , e così via. E' possibile configurare delle macchine per rispondere in modo particolare a certe porte, scelte di solito con numeri alti (demos, giochi, etc.. etc..). In /etc/services su gauss, c'e' un elenco di possibili numeri di porte standard.

esempio:

gauss.dm.unipi.it:steffe% date
Sun Apr 2 17:52:24 MET DST 1995
gauss.dm.unipi.it:steffe% telnet princess.math.ias.edu 13
Trying 192.108.106.24 ...
Connected to princess.math.ias.edu.
Escape character is '^]'.
Sun Apr 2 11:50:37 1995
Connection closed by foreign host.
--- a Princeton sono le 11.50 quando qui sono le 17.50 !

problemi di sicurezza:

tutto quello che viene trasmesso sulla rete passa in chiaro ed è leggibile da un programma che intercetti i pacchetti, compreso nome della macchina su cui ci si collega, nome dell'account e password ! Se si usa il telnet è consigliabile cambiare spesso la propria password. Materiale riservato non dovrebbe mai transitare

sulla rete durante una sessione di telnet, a meno che non si sia sicuri che la rete sia composta esclusivamente da SWITCH.

rlogin

uso tipico:

rlogin 131.114.6.55
rlogin gauss.dm.unipi.it
rlogin ux1sns.sns.it -l stefano

scopo:

stesso del telnet.

funzionamento:

rlogin è un pochino più evoluto di telnet: cerca di fornire automaticamente un certo numero di informazioni al calcolatore cui ci si vuole collegare, tra cui il nome dell'account, che per default è il proprio, e anche il tipo di terminale usato. E' inoltre possibile istruire il calcolatore host ad accettare il collegamento senza chiedere la password: basta mettere nel file .rhosts i dati relativi ai calcolatori e agli accounts da cui si vuole abilitare il collegamento senza password: per esempio se nel file .rhosts di gauss ho le seguenti due righe:

ada steffe
tonelli steffe

vuol dire che posso collegarmi da ada o da tonelli a gauss senza che mi venga chiesta la password !

non funzionamento:

come per il telnet; si noti che i pseudoterminali usati nel telnet e nel rlogin sono diversi tra di loro, per cui può capitare che uno dei due dia errore o non funzioni o funzioni male mentre l'altro comando invece funzioni. Può infine capitare che il terminale che si usa non sia di un tipo noto all' host cui ci si collega: in tal caso si verificano inconvenienti quando si cerca di usare programmi "a schermo pieno"; se ciò accade, si deve insistere affinché il sistemista responsabile dell' host provveda ad effettuare le necessarie aggiunte al sistema.
 
 

rsh

uso tipico:

rsh gauss ls
rsh gauss w
rsh gauss

scopo:

serve a fare eseguire un comando sulla macchina remota.

funzionamento:

il comando viene eseguito se c'è l'autorizzazione a farlo nel file .rhosts, come si è visto già per rlogin; se ci sono messaggi in output dal comando, appaiono sullo schermo.

Se non è specificato alcun comando, equivale a rlogin.

non funzionamento:

di solito per mancanza di autorizzazione; è molto simile a rlogin, ma sulle SUN non accetta il numero Internet, vuole il nome Internet.

problemi di sicurezza per rlogin e rsh:

come per il telnet, tutto quello che viene trasmesso sulla rete passa in chiaro ed è leggibile da un programma che intercetti i pacchetti,

compreso nome della macchina su cui ci si collega, nome dell'ac count e password ! Se si usa rlogin o rsh è consigliabile cambiare spesso la propria password. Materiale riservato non dovrebbe mai transitare sulla rete durante una sessione di rlogin o rsh, a meno che non si sia sicuri che la rete sia composta esclusivamente da SWITCH.

Un secondo punto debole di questi programmi è la debolezza della autentificazione dell'host nel caso sia presente un .rhosts. Infatti si

supponga di avere nel proprio .rhosts una riga del tipo

tonelli steffe

Chiunque crei un account di nome steffe e dia come nome tonelli alla propria macchina può entrare nell'account steffe senza che venga chiesta la password !
 
 

slogin, ssh

uso tipico:

come rlogin e rsh

scopo:

i comandi come telnet, rlogin, rsh, hanno un grave difetto: i pacchetti contenenti l'username e la password passano attraverso la rete, e sono facilmente intercettabili da una macchina "indiscreta" che invece di limitarsi a leggere i pacchetti indirizzati a se stessa, ascolti invece tutti i pacchetti che passano sulla rete. Ci sono appunto programmi detti "sniffer" che fanno proprio questo lavoro di spia sulla rete.

I comandi slogin e ssh sono i perfetti analoghi di rlogin e rsh, ma usano un procedimento di crittografia di tutti i dati che scambiano sulla rete, username e password comprese. Si paga la maggiore sicurezza con un piccolo rallentamento.

funzionamento:

come per rlogin e rsh; oltre a crittografare i dati si ha anche un accertamento più minuzioso dell'host.

non funzionamento:

non tutte le macchine sono in grado di usare il protocollo sicuro crittografato, e perciò se la macchina con cui volete collegarvi con ssh o slogin non è in grado di accettare il collegamento crittografato, il programma manda un messaggio e si riconduce al semplice rsh o rlogin.

da notare che a volte occorre che .rhosts sia un file protetto in scrittura per fare funzionare il ssh. (vedi il comando chmod) e che

comunque sono previste identificazioni a chiave degli host.

problemi di sicurezza:

il server sshd è un programma complesso, e corre voce che alcune versioni siano attaccabili con un exploit.
 
INDIETRO INDICE PHC HOME AVANTI