Protocollo(8) DARPA

Other Alias

telnetd

SINTASSI

/usr/libexec/telnetd [-BUhlkns ] [-D debugmode ] [-I initid ] [-S tos ] [-X authtype ] [-a authmode ] [-edebug ] [-r lowpty-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)

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).