CentOS Telnet版本升级指南(以CentOS 7为例)
备份关键配置
升级前务必备份/etc/ssh/sshd_config(SSH配置)、/etc/pam.d/sshd(PAM认证配置)、/etc/securetty(允许root登录的终端配置)等文件,避免升级失败无法恢复。
安装编译依赖
Telnet源码编译需要gcc、make、zlib-devel、pam-devel等工具,通过以下命令安装:
yum groupinstall -y "Development Tools"
yum install -y wget curl gcc make zlib-devel pam-devel libselinux-devel openssl-devel
下载Telnet安装包
根据CentOS版本选择对应的telnet及依赖包(以CentOS 7为例):
telnet-0.17-66.el7.x86_64.rpm(Telnet客户端)telnet-server-0.17-66.el7.x86_64.rpm(Telnet服务端)xinetd-2.3.15-14.el7.x86_64.rpm(Telnet服务管理工具)vault.centos.org)或可信镜像站点下载。安装Telnet组件
使用rpm命令强制安装(避免依赖问题,生产环境建议用yum):
rpm -Uvh telnet-0.17-66.el7.x86_64.rpm telnet-server-0.17-66.el7.x86_64.rpm xinetd-2.3.15-14.el7.x86_64.rpm --nodeps --force
启用Telnet服务
systemctl启动服务并设置开机自启:systemctl enable xinetd
systemctl enable telnet.socket
systemctl start xinetd
systemctl start telnet.socket
chkconfig和service命令:chkconfig xinetd on
service xinetd start
配置允许root登录
/etc/securetty文件,在末尾添加以下内容(允许root通过telnet登录的终端):echo 'pts/0' >> /etc/securetty
echo 'pts/1' >> /etc/securetty
/etc/pam.d/remote文件,注释auth required pam_securetty.so行(解除PAM安全限制):sed -i 's/^auth required pam_securetty.so/#&/' /etc/pam.d/remote
开放防火墙端口
Telnet默认使用23端口,需在防火墙中放行:
firewall-cmd --permanent --add-port=23/tcp # 永久开放23端口
firewall-cmd --reload # 重新加载防火墙规则
若为云主机,还需在云控制台的安全组中添加23端口的入站规则。
在另一台机器(或本机)上使用telnet客户端测试连接:
telnet 服务器IP地址
输入系统账号密码,若能正常登录则说明Telnet服务安装成功。
安全性提醒
Telnet采用明文传输密码,存在严重的安全风险,仅建议在内网环境或升级SSH前的临时备用场景使用。SSH升级完成后,应立即关闭Telnet服务:
systemctl stop telnet.socket
systemctl disable telnet.socket
systemctl stop xinetd
systemctl disable xinetd
firewall-cmd --permanent --remove-port=23/tcp # 关闭防火墙23端口
firewall-cmd --reload
清理临时文件
删除下载的安装包及编译生成的临时文件,释放磁盘空间:
rm -rf /tmp/*.rpm /tmp/openssh-* /tmp/openssl-*
监控服务状态
升级后定期检查Telnet服务运行状态,确保服务稳定:
systemctl status telnet.socket
systemctl status xinetd
netstat -antp | grep 23 # 查看23端口是否监听
问题1:安装telnet-server时提示“Error: Package telnet-server conflicts with telnet”
原因:系统中已安装旧版telnet-server,需先卸载旧版再安装:
yum remove -y telnet-server
rpm -Uvh telnet-server-*.rpm --nodeps --force
问题2:telnet登录提示“Login incorrect”
原因:/etc/pam.d/remote文件中的pam_securetty.so模块限制了root登录,需注释该行(见上文配置步骤)。