Provided by: telnetd-ssl_0.17.41+0.2-3.3build2_amd64 bug

NAME

       telnetd — DARPA telnet protocol server

SYNOPSIS

       /usr/sbin/in.telnetd  [-hnNs] [-a authmode] [-D debugmode] [-L loginprg] [-S tos] [-X authtype] [-edebug]
                            [-debug port] [-z sslopt]

DESCRIPTION

       The telnetd program is a server which supports  the  DARPA  telnet  interactive  communication  protocol.
       Telnetd  is  normally invoked by the internet server (see inetd(8)) for requests to connect to the telnet
       port as indicated by the /etc/services file (see services(5)).  The -debug option may be used to start up
       telnetd manually, instead of through inetd(8).  If started up this way, port  may  be  specified  to  run
       telnetd on an alternate TCP port number.

       The telnetd program accepts the following options:

       -a authmode  This  option  may  be used for specifying what mode should be used for authentication.  Note
                    that  this  option  is  only  useful  if  telnetd  has  been  compiled  with   support   for
                    authentication,  which  is  not  available  in the current version.  The following values of
                    authmode are understood:

                    debug  Turns on authentication debugging code.

                    user   Only allow  connections  when  the  remote  user  can  provide  valid  authentication
                           information  to  identify  the  remote  user,  and is allowed access to the specified
                           account without providing a password.

                    valid  Only allow  connections  when  the  remote  user  can  provide  valid  authentication
                           information  to  identify  the  remote  user.   The login(1) command will provide any
                           additional user verification needed if the  remote  user  is  not  allowed  automatic
                           access to the specified account.

                    other  Only  allow  connections that supply some authentication information.  This option is
                           currently not supported by any of the existing authentication mechanisms, and is thus
                           the same as specifying valid.

                    none   This is the default state.  Authentication information is not  required.   If  no  or
                           insufficient  authentication  information is provided, then the login(1) program will
                           provide the necessary user verification.

                    off    This disables the authentication code.  All user verification will happen through the
                           login(1) program.

       -D debugmode
                    This option may be used for debugging purposes.  It allows telnetd to  print  out  debugging
                    information to the connection, allowing the user to see what telnetd is doing.  Repeated use
                    of  the  option  arranges  composite  debug  reports.  There are several possible values for
                    debugmode:

                    options   Prints information about the negotiation of telnet options.

                    report    Prints the options  information,  plus  some  additional  information  about  what
                              processing is going on.

                    netdata   Displays the data stream received by telnetd.

                    ptydata   Displays data written to the pty.

                    exercise  Has not been implemented yet.

       -edebug      If  telnetd  has  been  compiled with support for encryption, then the -edebug option may be
                    used to enable encryption debugging code.

       -h           Disables the printing of host-specific information before login has been completed.

       -L loginprg  This  option  may  be  used  to  specify   a   different   login   program.    By   default,
                    /usr/lib/telnetlogin is used.

       -n           Disable  TCP  keep-alives.   Normally  telnetd enables the TCP keep-alive mechanism to probe
                    connections that have been idle for some period of time to determine if the client is  still
                    there,  so that idle connections from machines that have crashed or can no longer be reached
                    may be cleaned up.

       -N           Disable reverse DNS  lookups  and  use  the  numeric  IP  address  in  logs  and  REMOTEHOST
                    environment variable.

       -s           This  option  is  only  enabled  if  telnetd is compiled with support for SecurID cards.  It
                    causes the -s option to be passed on to login(1),  and  thus  is  only  useful  if  login(1)
                    supports  the  -s  flag  to indicate that only SecurID validated logins are allowed. This is
                    usually useful for controlling remote logins from outside of a firewall.

       -S tos       Sets the IP type-of-service (TOS) option for the telnet connection to the value tos.

       -X authtype  This option is only valid if telnetd has been built  with  support  for  the  authentication
                    option.   It  disables  the  use  of authtype authentication, and can be used to temporarily
                    disable a specific authentication type without having to recompile telnetd.

       -z SSL-parameter
                    This option is only valid if telnetd has been built with SSL (Secure Socket Layer) support.

                    debug       Enable SSL related debugging.

                    debug=log_file
                                Select in addition a specific location log_file  for  collecting  debug  output,
                                thus overriding the default file /var/tmp/telnetd.log.

                    ssl         Negotiate  SSL  at  first,  then  use telnet protocol. In this mode telnetd only
                                accepts connections from SSL enhanced telnet with option -z ssl

                    nossl, !ssl
                                switch off SSL negotiation

                    certsok     Look username up in /etc/ssl.users.  The format of this file  is  lines  of  the
                                form:  user1,user2:/C=US/..... where user1 and user2 are usernames and /C=US/...
                                is the subject name of the certificate. Use  openssl  x509  -subject  -noout  to
                                extract  the subject name.  If client certificate is valid, authenticate without
                                password.

                    certrequired
                                client certificate is mandatory

                    secure      Don't switch back to unencrypted mode (no SSL) if SSL is not available.

                    verify=int  Set the SSL verify flags.  (See SSL_VERIFY_* in openssl/ssl.h ).

                    cacert=CA_file
                                A collection of trusted authority certificates for verification of whatever  the
                                clients care to send as identifiers.

                    cert=cert_file
                                Present  the certificate(s) in cert_file to any client.  They are in PEM-format,
                                and the first certificate identifies the server itself.

                    key=key_file
                                Use the key(s) in key_file in case  a  key  is  not  stored  together  with  the
                                certificate.

                    cipher=ciph_list
                                Set  the  preferred  ciphers  to ciph_list.  The environment variable SSL_CIPHER
                                serves the same purpose.  (See openssl/ssl.h ).

       If the file /etc/issue.net is present, telnetd will display its contents before the  login  prompt  of  a
       telnet session (see issue.net(5)).

       Telnetd  operates by allocating a pseudo-terminal device (see pty(4)) for a client, then creating a login
       process which has the  slave  side  of  the  pseudo-terminal  as  stdin,  stdout,  and  stderr.   Telnetd
       manipulates  the  master  side  of  the  pseudo-terminal,  implementing  the  telnet protocol and passing
       characters between the remote client and the login process.

       When a telnet session is started up, telnetd sends  telnet  options  to  the  client  side  indicating  a
       willingness to do the following telnet options, which are described in more detail below:

             DO AUTHENTICATION
             WILL ENCRYPT
             DO TERMINAL TYPE
             DO TSPEED
             DO XDISPLOC
             DO NEW-ENVIRON
             WILL SUPPRESS GO AHEAD
             DO ECHO
             DO LINEMODE
             DO NAWS
             WILL STATUS
             DO LFLOW
             DO TIMING-MARK

       The  pseudo-terminal  allocated  to  the client is configured to operate in “cooked” mode, and with XTABS
       CRMOD enabled (see tty(4)).

       Telnetd has support for enabling locally the following telnet options:

       WILL ECHO          When the LINEMODE option is enabled, a WILL ECHO or WONT ECHO  will  be  sent  to  the
                          client  to  indicate the current state of terminal echoing.  When terminal echo is not
                          desired, a WILL ECHO is sent to indicate that telnetd will take care  of  echoing  any
                          data  that  needs  to  be  echoed  to  the terminal, and then nothing is echoed.  When
                          terminal echo is desired, a WONT ECHO is sent to indicate that  telnetd  will  not  be
                          doing  any  terminal  echoing,  so  the  client should do any terminal echoing that is
                          needed.

       WILL BINARY        Indicates that the client is willing to send a 8 bits of data, rather than the  normal
                          7 bits of the Network Virtual Terminal.

       WILL SGA           Indicates that it will not be sending IAC GA, go ahead, commands.

       WILL STATUS        Indicates a willingness to send the client, upon request, of the current status of all
                          TELNET options.

       WILL TIMING-MARK   Whenever  a  DO TIMING-MARK command is received, it is always responded to with a WILL
                          TIMING-MARK

       WILL LOGOUT        When a DO LOGOUT is received, a WILL LOGOUT  is  sent  in  response,  and  the  TELNET
                          session is shut down.

       WILL ENCRYPT       Only  sent  if  telnetd  is compiled with support for data encryption, and indicates a
                          willingness to decrypt the data stream.

       Telnetd has support for enabling remotely the following TELNET options:

       DO BINARY          Sent to indicate that telnetd is willing to receive an 8 bit data stream.

       DO LFLOW           Requests that the client handle flow control characters remotely.

       DO ECHO            This is not really supported, but is sent to identify a 4.2BSD telnet(1) client, which
                          will improperly respond with WILL ECHO. If a WILL ECHO is received, a DONT  ECHO  will
                          be sent in response.

       DO TERMINAL-TYPE   Indicates  a  desire  to  be  able to request the name of the type of terminal that is
                          attached to the client side of the connection.

       DO SGA             Indicates that it does not need to receive IAC GA, the go ahead command.

       DO NAWS            Requests that the client inform the server when the window (display) size changes.

       DO TERMINAL-SPEED  Indicates a desire to be able to request information about the  speed  of  the  serial
                          line to which the client is attached.

       DO XDISPLOC        Indicates  a  desire  to  be able to request the name of the X windows display that is
                          associated with the telnet client.

       DO NEW-ENVIRON     Indicates a desire  to  be  able  to  request  environment  variable  information,  as
                          described in RFC 1572.

       DO LINEMODE        Only  sent  if  telnetd  is  compiled with support for linemode, and requests that the
                          client do line by line processing.

       DO TIMING-MARK     Only sent if telnetd is compiled with support for both linemode and  kludge  linemode,
                          and  the client responded with WONT LINEMODE. If the client responds with WILL TM, the
                          it is assumed that the client supports kludge linemode.  Note that the [-k] option can
                          be used to disable this.

       DO AUTHENTICATION  Only sent if telnetd is compiled with support  for  authentication,  and  indicates  a
                          willingness to receive authentication information for automatic login.

       DO ENCRYPT         Only  sent  if  telnetd  is compiled with support for data encryption, and indicates a
                          willingness to decrypt the data stream.

FILES

       /etc/services, /etc/issue.net, /etc/ssl.users

SEE ALSO

       telnet(1), login(1), issue.net(5),

STANDARDS

       RFC-854   TELNET PROTOCOL SPECIFICATION
       RFC-855   TELNET OPTION SPECIFICATIONS
       RFC-856   TELNET BINARY TRANSMISSION
       RFC-857   TELNET ECHO OPTION
       RFC-858   TELNET SUPPRESS GO AHEAD OPTION
       RFC-859   TELNET STATUS OPTION
       RFC-860   TELNET TIMING MARK OPTION
       RFC-861   TELNET EXTENDED OPTIONS - LIST OPTION
       RFC-885   TELNET END OF RECORD OPTION
       RFC-1073  Telnet Window Size Option
       RFC-1079  Telnet Terminal Speed Option
       RFC-1091  Telnet Terminal-Type Option
       RFC-1096  Telnet X Display Location Option
       RFC-1123  Requirements for Internet Hosts -- Application and Support
       RFC-1184  Telnet Linemode Option
       RFC-1372  Telnet Remote Flow Control Option
       RFC-1416  Telnet Authentication Option
       RFC-1411  Telnet Authentication: Kerberos Version 4
       RFC-1412  Telnet Authentication: SPX
       RFC-1571  Telnet Environment Option Interoperability Issues
       RFC-1572  Telnet Environment Option

BUGS

       Some TELNET commands are only partially implemented.

       Because of bugs in the original 4.2 BSD telnet(1), telnetd performs some dubious  protocol  exchanges  to
       try to discover if the remote client is, in fact, a 4.2 BSD telnet(1).

       Binary mode has no common interpretation except between similar operating systems (Unix in this case).

       The terminal type name received from the remote client is converted to lower case.

       Telnetd never sends TELNET IAC GA (go ahead) commands.

       The source code is not comprehensible.

Linux NetKit (0.17)                             December 29, 1996                                     TELNETD(8)