NOME¶
telnetd Protocollo —
DARPA del server
TELNET
SINTASSI¶
/usr/libexec/telnetd
[
-BUhlkns]
[
-D debugmode]
[
-Iinitid]
[
-S tos]
[
-X authtype]
[
-a authmode]
[
-edebug]
[
-rlowpty-highpty]
[
-u len]
[
-debug
[port]]
DESCRIZIONE¶
Il comando
telnetd è un server che supporta il protocollo
standard DARPA del terminale virtuale TELNET.
Telnetd è
normalmente invocato dal server internet (vedere
inetd(8))
per richieste di connessione alla porta TELNET come indicato dal file
/etc/services (vedere
services(5)).
L'opzione
-debug può essere usata per avviare
telnetd manualmente invece che attraverso
inetd(8). Se avviato in questo modo, la
porta può essere specificata per far funzionare
telnetd su un numero di porta TCP alternativo.
Il comando
telnetd accetta le seguenti opzioni:
- -a
authmode
- Questa opzione può essere usata per specificare quale
modo deve essere usato per l'autenticazione. Notare che questa opzione
è utile solo se telnetd è stato compilato con
il supporto per l'opzione di
AUTENTICAZIONE
. Ci
sono molti valori validi per authmode:
- debug
- Attiva il codice di debugging dell'autenticazione.
- user
- Permette le connessioni solo quando l'utente remoto
può fornire informazioni di autenticazione valide per
identificare l'utente remoto, e gli è concesso l'accesso
all'account specificato senza fornire una password.
- valid
- Permette le connessioni solo quando l'utente remoto
può fornire informazioni di autenticazione valide per
identificare l'utente remoto. Il comando login(1)
fornirà ogni verifica aggiuntiva necessaria se all'utente remoto
non è concesso l'accesso automatico all'account specificato.
- other
- Permette solo connessioni che forniscono qualche
informazione di autenticazione. Questa opzione attualmente non è
supportata da alcun meccanismo di autenticazione esistente, ed è
quindi come specificarne -una
valida.
- none
- Questo è lo stato di default. Non sono richieste
informazioni di autenticazione. Se nessuna o insufficienti
informazioni di autenticazione è fornita, allora il programma
login(1) fornirà le necessarie verifiche
dell'utente.
- off
- Quest disabilita il codice di autenticazione. Tutte le
verifiche utente avverranno attraverso il programma
login(1).
- -B
- Specifica mil modo server bftp. In questa modalità,
telnetd fa avviare al login una sessione
bftp(1) invece della normale shell utente. Nella
modalità demone bftp i normali login non sono supportati, e devono
essere usati su una porta diversa dalla normale porta TELNET.
- -D
debugmode
- Questa opzione può essere usata per scopi di
debugging. Questo permette a telnetd di stampare le
infromazioni di debugging alla connessione, permettendo all'utente di
vedere cosa telnetd sta facendo. Ci sono numerosi valori
possibili per debugmode:
- options
- Stampa informazioni sulla negoziazione delle opzioni
TELNET.
- report
- Stampa l'informazione delle opzioni
più alcune informazioni addizionali su quale processo sta
funzionando.
- netdata
- Visualizza il flusso di dati ricevuto da
telnetd.
- ptydata
- Visualizza i dati scritti sulla pty.
- exercise
- Non è stato ancora implementato.
- -debug
- Abilita il debugging su ciascun socket creato da
telnetd (vedere
SO_DEBUG
in
socket(2)).
- -edebug
- Se telnetd è stato compilato con il
supporto per la crittografia dei dati, allora l' opzione
-edebug può essere usata per abilitare il codice di
debugging della cifratura.
- -h
- Disabilita la stampa di informazioni specifiche dell'host
prima che il login sia stato completato.
- -I
initid
- Questa opzione è applicabile solo ai sistemi UNICOS
precedenti al 7.0. Essa specifica l'
ID
da
/etc/inittab da usare quando init avvia le sessioni di
login. L' ID
di default è
fe.
- -k
- Questa opzione è utile solo se
telnetd è stato compilato con entrambi i supporti
linemode e kludge linemode. Se è specificata l'opzione
-k allora il client remoto non suporta l'opzione
LINEMODE
, quindi telnetd
opererà nella modalità a un carattere per volta. Esso
supporterà ancora il kludge linemode, ma andrà in kludge
linemode solo se il client remoto lo richiede. (Questo è fatto dal
client inviando DONT SUPPRESS-GO-AHEAD
e
DONT ECHO
.) L'opzione -k è
molto utile quando ci sono client remoti che non supportano il kludge
linemode, ma passa l'euristica (se essi rispondono con
WILL TIMING-MARK
in risposta a DO
TIMING-MARK)
per il supporto kludge linemode.
- -l
- Specifica la modalità linea. Tenta di forzare i client
a usare la modalità una-linea-per-volta. Se l'opzione
LINEMODE
non è supportata, esso si
porterà nel kludge linemode.
- -n
- Disabilita i keep-alive
TCP
.
Normalmente telnetd abilita il meccanismo TCP keep-alive
per provare connessioni che sono state inattive per un certo periodo di
tempo per determinare se il client è ancora lì, in modo che le
connessioni inattive di macchine andate in crash o che non possono
più essere raggiunte possano essere cancellate.
- -r
lowpty-highpty
- Questa opzione è abilitata solo quando
telnetd è compilato per
UNICOS.
Essa specifica un insieme inclusivo di
dispositivi pseudo-terminale da usare. Se il sistema ha configurato la
variabile sysconf _SC_CRAY_NPTY
il range di
ricerca di default delle pty è da 0 a
_SC_CRAY_NPTY;
altrimenti il range di default
è da 0 a 128. Uno tra lowpty o
highpty può essere omesso per permettere il
cambiamento di uno dei due estremi del range di ricerca. Se
lowpty è omesso il - carattere è sempre
necessario in modo che telnetd possa differenziare
highpty da lowpty.
- -s
- Questa opzione è abilitata solo se
telnetd p compilato con il supporto per le schede
SecurID. Essa fa sì che l'opzione -s sia passata a
login(1), e quindi sia utile solo se
login(1) supporta l'opzione -s per
indicare che solo i login validati da SecurID sono permessi, ed è
normalmente utile per controllare i login remoti dall'esterno di un
firewall.
- -S
tos
-
- -u
len
- Questa opzione è usata per specificare la dimensione
del campo nella struttura
utmp
che contiene il
nome dell'host remoto. Se il nome risolto dell'host è più lungo
di len, sarà invece usato il valore decimale.
Questo permette agli host con nomi molto lunghi fuoriescono da questo
campo di essere ancora identificati univocamente. Specificare
-u0 indica che solo gli indirizzi decimali devono essere
messi nel file utmp.
- -U
- Questa opzione fa sì che telnetd
rifiuti connessioni da indirizzi che non possono essere mappati di nuovo
in un nome simbolico attraverso la routine
gethostbyaddr(3).
- -X
authtype
- Questa opzione è valida solo se
telnetd è stato costruito con il supporto per
l'opzione di autenticazione. Esso disabilita l'uso dell'autenticazione
authtype e può essere usato per disabilitare
temporaneamente uno specifico tipo di autenticazione senza dover
ricompilare telnetd.
Telnetd opera allocando un dispositivo pseudo-terminale
(vedere
pty(4)) per un client, quindi creando un processo di
login che ha il lato slave dello pseudo-terminale come
stdin
,
stdout
e
stderr
.
Telnetd manipola il lato
master dello pseudo-terminale, implementando il protocollo TELNET e passando
caratteri tra il client remoto e il processo di login.
Quando una sessione TELNET è avviata,
telnetd invia
opzioni TELNET al lato client side indicando una volontà di eseguire le
seguenti opzioni following TELNET che sono descritte in maggior dettaglio
sotto:
DO AUTHENTICATION
WILL ENCRYPT
DO TERMINAL TYPE
DO TSPEED
DO XDISPLOC
DO NEW-ENVIRON
DO ENVIRON
WILL SUPPRESS GO AHEAD
DO ECHO
DO LINEMODE
DO NAWS
WILL STATUS
DO LFLOW
DO TIMING-MARK
Lo pseudo-terminale allocato al client è configurato per operare in
modalità “cooked” e con
XTABS e
CRMOD
abilitati (vedere
tty(4)).
Telnetd ha il supporto per abilitare localmente le seguenti
opzioni TELNET:
- WILL ECHO
- Quando l'opzione
LINEMODE
è
abilitata, un WILL ECHO
o WONT
ECHO
verrà inviato al client per indicare lo stato corrente
del terminale che esegue l'eco. Quando un eco del terminale non è
desiderato, un WILL ECHO
è inviato per
indicare che telnetd si occuperà di fare l'eco di tutti i dati che
hanno bisogno di essere ripetuti al terminale, e quindi non viene fatto
alcun eco. Quando l'eco del terminale è desiderato, un
WONT ECHO
è inviato a indicare che telnetd
non farà alcun eco del terminale, così che il client possa fare
tutti gli eco del terminale necessari.
- WILL BINARY
- Indica che il client vuole inviare 8 bit di dati, invece
dei normali 7 bit del Network Virtual Terminal.
- WILL SGA
- Indica che non invierà comandi
IAC
GA,
go ahead.
- WILL STATUS
- Indica la volontà di inviare al client, dietro
richiesta, lo stato corrente di tutte le opzioni TELNET.
- WILL TIMING-MARK
- qualora venga ricevuto un comando
DO
TIMING-MARK
risponde sempre con un WILL
TIMING-MARK
- WILL LOGOUT
- Quando è ricevuto un
DO LOGOUT
viene invieto in risposta un WILL LOGOUT
e la
sessione TELNET è chiusa.
- WILL ENCRYPT
- Inviata solo se telnetd è compilato
con il supporto per la crittografia dei dati, e indica la volontà di
decifrare il flusso dei dati.
Telnetd ha il supporto per abilitare da remoto le seguenti
opzioni TELNET:
- DO BINARY
- Inviato per indicare che telnetd vuole ricevere un flusso
di dati a 8 bit.
- DO LFLOW
- Richiede che il client gestisca remotamente il controllo
del flusso caratteri.
- DO ECHO
- Questo non è realmente supportato, ma è inviato
per identificare un client telnet(1) 4.2BSD, che
risponderà impropriamente con
WILL ECHO.
Se
un WILL ECHO
viene ricevuto, un
DONT ECHO
verrà inviato in risposta.
- DO TERMINAL-TYPE
- Indica un desiderio di poter richiedere il nome del tipo di
terminale che è collegato al lato client della connessione.
- DO SGA
- Indica che non ha bisogno di ricevere
IAC
GA,
il comando go ahead.
- DO NAWS
- richiede che il client informi il server quando cambia la
dimensione della finestra (display).
- DO TERMINAL-SPEED
- Indica un desiderio di poter richiedere infirmazioni sulla
velocità della linea seriale a cui il client è collegato.
- DO XDISPLOC
- Indica un desiderio di poter richiedere il nome del display
X windows associato con il client telnet.
- DO NEW-ENVIRON
- Indica un desiderio di poter richiedere informazioni sulle
variabili d'ambiente, come descritto in RFC 1572.
- DO ENVIRON
- Indica un desiderio di poter richiedere informazioni sulle
variabili d'ambiente, come descritto in RFC 1408.
- DO LINEMODE
- Inviato solo se telnetd è compilato
con il supporto per il linemode, e richiede che il client faccia un
processamento linea per linea.
- DO TIMING-MARK
- Inviato solo se telnetd è compilato
con il supporto sia per linemode che per kludge linemode, e il client ha
risposto con
WONT LINEMODE.
Se il client risponde
con WILL TM,
allora si suppone che il client
supporti kludge linemode. Notare che l'opzione
[-k] può essere usata per
disabilitare questo.
- DO AUTHENTICATION
- Inviato solo se telnetd è compilato
con il supporto per l'autenticazione, e indica una volontà di
ricevere informazioni di autenticazione per il login automatico.
- DO ENCRYPT
- Inviato solo se telnetd è compilato
con il supporto per la cifratura dei dati, e indica la volontà di
decifrare il flusso dei dati.
AMBIENTE¶
FILE¶
/etc/services
/etc/inittab (solo sistemi UNICOS)
/etc/iptos (se supportato)
/usr/ucb/bftp (se supportato)
VEDERE ANCHE¶
telnet(1),
login(1),
bftp(1) (se supportato)
STANDARD¶
- RFC-854
- TELNET SPECIFICHE DEL PROTOCOLLO
- RFC-855
- SPECIFICHE DELLE OPZIONI TELNET
- RFC-856
- TRASMISSIONE BINARIA TELNET
- RFC-857
- OPZIONE TELNET ECHO
- RFC-858
- OPZIONE TELNET SOPPRESSIONE GO AHEAD
- RFC-859
- OPZIONE STATO TELNET
- RFC-860
- OPZIONE TELNET MARCATURA TEMPORALE
- RFC-861
- OPZIONI TELNET ESTESE - ELENCO OPZIONI
- RFC-885
- OPZIONE TELNET FINE DEL RECORD
- RFC-1073
- Opzione Telnet dimensione finestra
- RFC-1079
- Opzione Telnet velocità del terminale
- RFC-1091
- Opzione Telnet tipo di terminale
- RFC-1096
- Opzione Telnet locazione display X
- RFC-1123
- Requisiti degli host Internet -- applicazione e
supporto
- RFC-1184
- Opzione Telnet Linemode
- RFC-1372
- Opzione Telnet controllo remoto del flusso
- RFC-1416
- Opzione autenticazione Telnet
- RFC-1411
- Autenticazione Telnet: Kerberos Versione 4
- RFC-1412
- Autenticazione Telnet: SPX
- RFC-1571
- Opzione ambiente Telnet problemi di
interoperabilità
- RFC-1572
- Opzione ambiente Telnet
BUG¶
Alcuni comandi TELNET sono implementati solo parzialmente.
A causa dei bug nell'originale
telnet(1) BSD 4.2,
telnetd esegue alcuni scambi di protocollo dubbi per provare
a scoprire se il client remoto è, in effetti, un
telnet(1). 4.2 BSD
La modalità binaria non ha interpretazioni comuni tranne tra sistemi
operativi simili (Unix in questo caso).
Il nome del tipo di terminale ricevuto dal client remoto è convertito in
minuscole.
Telnetd non invia mai comandi TELNET
IAC
GA
(go ahead).