Ubuntu设置Telnet登录认证的步骤
首先需要安装Telnet服务端程序(telnetd)及xinetd(超级服务管理器,用于管理Telnet服务)。打开终端,执行以下命令:
sudo apt update
sudo apt install xinetd telnetd
编辑/etc/xinetd.d/telnet文件(若文件不存在则创建),启用Telnet服务并设置基本参数:
sudo nano /etc/xinetd.d/telnet
将文件内容修改为(关键参数说明见下方):
# default: on
# description: The telnet server serves telnet sessions; it uses unencrypted username/password pairs for authentication.
service telnet {
disable = no # 关键:启用Telnet服务(将"no"改为"yes"或删除此行)
flags = REUSE # 允许端口重用
socket_type = stream # 使用流式套接字
wait = no # 多客户端并发处理
user = root # 以root用户启动服务
server = /usr/sbin/in.telnetd # Telnet服务程序路径
log_on_failure += USERID # 记录登录失败的用户ID
}
注意:disable = no是启用服务的核心参数,若未修改此行,即使安装了Telnet也无法启动。
PAM(可插拔认证模块)用于实现Telnet登录的身份验证。创建或编辑/etc/pam.d/telnet文件:
sudo nano /etc/pam.d/telnet
添加以下内容(确保认证、账户、密码、会话模块正确配置):
auth required pam_unix.so # 使用系统本地用户数据库认证
account required pam_unix.so # 检查用户账户状态(如是否锁定)
password required pam_unix.so # 使用系统密码策略
session required pam_unix.so # 管理会话(如资源限制)
选择或创建用于Telnet登录的用户(如telnetuser),并为其设置密码:
sudo adduser telnetuser # 创建用户(按提示设置密码及个人信息)
sudo passwd telnetuser # 修改用户密码(可选,创建时已设置)
配置完成后,重启xinetd服务使更改生效:
sudo systemctl restart xinetd
检查Telnet服务是否正在监听23端口(默认端口):
sudo netstat -tulnp | grep telnet
# 或使用ss命令(更现代的工具)
sudo ss -tulnp | grep telnet
若输出中包含0.0.0.0:23或:::23,说明服务已启动。
在另一台设备(或本机)使用Telnet客户端连接Ubuntu服务器,输入用户名和密码验证:
telnet <Ubuntu服务器IP>
若配置正确,将提示输入用户名和密码,输入正确后进入系统命令行。
sudo apt install openssh-server)替代,SSH提供加密传输和更强的身份认证功能。ufw),需允许Telnet端口(23)的流量:sudo ufw allow 23/tcp