CentOS系统中Telnet的主要认证方式
Telnet服务的经典认证方式为明文传输用户名和密码,即用户在登录时输入的凭证会以未加密的形式在网络中传输。这种认证方式配置简单,但安全性极低,易被网络嗅探工具截获。
在CentOS中,安装telnet-server后,默认启用此认证方式。配置文件/etc/xinetd.d/telnet中明确说明“uses unencrypted username/password pairs for authentication”(使用未加密的用户名/密码对进行认证),无需额外设置即可使用。
通过Kerberos 5协议实现加密认证,解决明文传输的安全问题。需先搭建Kerberos Key Distribution Center(KDC)服务器,客户端配置krb5-telnet或ekrb5-telnet服务(属于krb5-workstation软件包)。
krb5-telnet:修改/etc/xinetd.d/krb5-telnet文件,将disable = yes改为disable = no,重启xinetd服务;ekrb5-telnet(加密会话):修改/etc/xinetd.d/ekrb5-telnet文件,同样开启服务,但需确保Kerberos服务器已正确配置,否则会报“Unencrypted connection refused”错误。通过AAA(Authentication、Authorization、Accounting)框架实现集中式认证,支持多种认证源(如本地用户、LDAP、RADIUS服务器)。适用于企业级环境,便于统一管理用户权限。
配置步骤大致为:
telnet-server和pam相关包;/etc/pam.d/telnet文件,添加AAA认证模块(如auth sufficient pam_ldap.so用于LDAP认证);通过系统本地用户的密码文件(/etc/shadow)进行认证,是最基础的本地认证方式。Telnet服务会调用PAM(Pluggable Authentication Modules)模块验证用户输入的密码是否与/etc/shadow中的加密密码匹配。
默认情况下,CentOS的Telnet服务已启用此方式,无需额外配置,但需确保/etc/securetty文件包含pts终端(如pts/0、pts/1),否则远程登录可能失败。