IN.TELNETD(8) Maintenance Commands and Procedures IN.TELNETD(8)

NAME


in.telnetd, telnetd - DARPA TELNET protocol server

SYNOPSIS


/usr/sbin/in.telnetd [-a authmode] [-EXUh] [-s tos]
[-S keytab] [-M realm]


DESCRIPTION


in.telnetd is a server that supports the DARPA standard TELNET virtual
terminal protocol. in.telnetd is normally invoked in the internet server
(see inetd(8)), for requests to connect to the TELNET port as indicated
by the /etc/services file (see services(5)).


in.telnetd operates by allocating a pseudo-terminal device for a client,
then creating a login process which has the subsidiary side of the
pseudo-terminal as its standard input, output, and error. in.telnetd
manipulates the manager side of the pseudo-terminal, implementing the
TELNET protocol and passing characters between the remote client and the
login process.


When a TELNET session starts up, in.telnetd sends TELNET options to the
client side indicating a willingness to do remote echo of characters, and
to suppress go ahead. The pseudo-terminal allocated to the client is
configured to operate in "cooked" mode, and with XTABS, ICRNL and ONLCR
enabled. See termio(4I).


in.telnetd is willing to do: echo, binary, suppress go ahead, and timing
mark. in.telnetd is willing to have the remote client do: binary,
terminal type, terminal size, logout option, and suppress go ahead.


in.telnetd also allows environment variables to be passed, provided that
the client negotiates this during the initial option negotiation. The
DISPLAY environment variable may be sent this way, either by the TELNET
general environment passing methods, or by means of the XDISPLOC TELNET
option. DISPLAY can be passed in the environment option during the same
negotiation where XDISPLOC is used. Note that if you use both methods,
use the same value for both. Otherwise, the results may be unpredictable.


These options are specified in Internet standards RFC 1096, RFC 1408, RFC
1510, RFC 1571, RFC 2941, RFC 2942, RFC 2946, and RFC 1572. The following
Informational draft is also supported: RFC 2952.


The banner printed by in.telnetd is configurable. The default is (more or
less) equivalent to `uname -sr` and will be used if no banner is set in
/etc/default/telnetd. To set the banner, add a line of the form

BANNER="..."


to /etc/default/telnetd. Nonempty banner strings are fed to shells for
evaluation. The default banner may be obtained by

BANNER="\\r\\n\\r\\n`uname -s` `uname -r`\\r\\n\\r\\n"


and no banner will be printed if /etc/default/telnetd contains

BANNER=""


OPTIONS


The following options are supported:

-a authmode
This option may be used for specifying what mode should be
used for authentication. There are several valid values
for authmode:

valid
Only allows 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.


user
Only allows 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.


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


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


-E
Disables encryption support negotiation.


-h
Disables displaying host specific information before login
has been completed.


-M realm
Uses the indicated Kerberos V5 realm. By default, the
daemon will determine its realm from the settings in the
krb5.conf(5) file.


-s tos
Sets the IP TOS option.


-S keytab
Sets the KRB5 keytab file to use. The
/etc/krb5/krb5.keytab file is used by default.


-U
Refuses connections that cannot be mapped to a name
through the getnameinfo(3SOCKET) function.


-X
Disables Kerberos V5 authentication support negotiation.


USAGE


telnetd and in.telnetd are IPv6-enabled. See ip6(4P).

SECURITY


in.telnetd can authenticate using Kerberos V5 authentication, pam(3PAM),
or both. By default, the telnet server will accept valid Kerberos V5
authentication credentials from a telnet client that supports Kerberos.
in.telnetd can also support an encrypted session from such a client if
the client requests it.


The telnet protocol only uses single DES for session protection--clients
request service tickets with single DES session keys. The KDC must know
that host service principals that offer the telnet service support single
DES, which, in practice, means that such principals must have single DES
keys in the KDC database.


In order for Kerberos authentication to work, a host/<FQDN> Kerberos
principal must exist for each Fully Qualified Domain Name associated with
the telnetd server. Each of these host/<FQDN> principals must have a
keytab entry in the /etc/krb5/krb5.keytab file on the telnetd server. An
example principal might be:


host/bigmachine.eng.example.com


See kadmin(8) for instructions on adding a principal to a krb5.keytab
file. See for a discussion of Kerberos authentication.


in.telnetd uses pam(3PAM) for authentication, account management, session
management, and password management. The PAM configuration policy, listed
through /etc/pam.conf, specifies the modules to be used for in.telnetd.
Here is a partial pam.conf file with entries for the telnet command using
the UNIX authentication, account management, session management, and
password management modules.

telnet auth requisite pam_authtok_get.so.1
telnet auth required pam_dhkeys.so.1
telnet auth required pam_unix_auth.so.1

telnet account requisite pam_roles.so.1
telnet account required pam_projects.so.1
telnet account required pam_unix_account.so.1

telnet session required pam_unix_session.so.1

telnet password required pam_dhkeys.so.1
telnet password requisite pam_authtok_get.so.1
telnet password requisite pam_authtok_check.so.1
telnet password required pam_authtok_store.so.1


If there are no entries for the telnet service, then the entries for the
"other" service will be used. If multiple authentication modules are
listed, then the user may be prompted for multiple passwords.


For a Kerberized telnet service, the correct PAM service name is ktelnet.

FILES


/etc/default/telnetd


SEE ALSO


login(1), svcs(1), telnet(1), pam(3PAM), getnameinfo(3SOCKET),
termio(4I), ip6(4P), issue(5), krb5.conf(5), pam.conf(5), services(5),
attributes(7), pam_authtok_check(7), pam_authtok_get(7),
pam_authtok_store(7), pam_dhkeys(7), pam_passwd_auth(7),
pam_unix_account(7), pam_unix_auth(7), pam_unix_session(7), smf(7),
inetadm(8), inetd(8), kadmin(8), svcadm(8)


Alexander, S. RFC 1572, TELNET Environment Option. Network Information
Center, SRI International, Menlo Park, Calif., January 1994.


Borman, Dave. RFC 1408, TELNET Environment Option. Network Information
Center, SRI International, Menlo Park, Calif., January 1993.


Borman, Dave. RFC 1571, TELNET Environment Option Interoperability
Issues. Network Information Center, SRI International, Menlo Park,
Calif., January 1994.


Crispin, Mark. RFC 727, TELNET Logout Option. Network Information Center,
SRI International, Menlo Park, Calif., April 1977.


Marcy, G. RFC 1096, TELNET X Display Location Option. Network Information
Center, SRI International, Menlo Park, Calif., March 1989.


Postel, Jon, and Joyce Reynolds. RFC 854, TELNET Protocol Specification.
Network Information Center, SRI International, Menlo Park, Calif., May
1983.


Waitzman, D. RFC 1073, TELNET Window Size Option. Network Information
Center, SRI International, Menlo Park, Calif., October 1988.


Kohl, J., Neuman, C., The Kerberos Network Authentication Service (V5),
RFC 1510. September 1993.


Ts'o, T. and J. Altman, Telnet Authentication Option, RFC 2941. September
2000.


Ts'o, T., Telnet Authentication: Kerberos Version 5, RFC 2942. September
2000.


Ts'o, T., Telnet Data Encryption Option, RFC 2946. September 2000.


Ts'o, T., Telnet Encryption: DES 64 bit Cipher Feedback, RFC 2952.
September 2000.

NOTES


Some TELNET commands are only partially implemented.


Binary mode has no common interpretation except between similar operating
systems.


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


The packet interface to the pseudo-terminal should be used for more
intelligent flushing of input and output queues.


in.telnetd never sends TELNET go ahead commands.


The pam_unix(7) module is no longer supported. Similar functionality is
provided by pam_authtok_check(7), pam_authtok_get(7),
pam_authtok_store(7), pam_dhkeys(7), pam_passwd_auth(7),
pam_unix_account(7), pam_unix_auth(7), and pam_unix_session(7).


The in.telnetd service is managed by the service management facility,
smf(7), under the service identifier:

svc:/network/telnet


Administrative actions on this service, such as enabling, disabling, or
requesting restart, can be performed using svcadm(8). Responsibility for
initiating and restarting this service is delegated to inetd(8). Use
inetadm(8) to make configuration changes and to view configuration
information for this service. The service's status can be queried using
the svcs(1) command.

May 21, 2022 IN.TELNETD(8)