1. 立即禁用Telnet服务(最直接有效的风险消除措施)
Telnet的核心安全缺陷是明文传输数据(包括用户名、密码),极易被中间人攻击窃取。因此,禁用Telnet服务是防范风险的首要步骤。
systemctl命令停止Telnet服务进程:sudo systemctl stop telnet.socket。disable命令防止系统重启后自动启动Telnet:sudo systemctl disable telnet.socket。sudo systemctl status telnet.socket,确认服务处于“inactive (dead)”状态。2. 使用SSH安全替代Telnet(推荐的长期解决方案)
SSH(Secure Shell)通过加密隧道传输数据,彻底解决Telnet的明文风险,是替代Telnet的标准方案。
sudo yum install openssh-server(默认已安装则跳过)。sudo systemctl start sshd + sudo systemctl enable sshd。/etc/ssh/sshd_config文件,设置以下关键参数:
PermitRootLogin no:禁止root用户直接登录(降低权限提升风险);PubkeyAuthentication yes:启用公钥认证(替代密码认证,提升安全性);PasswordAuthentication no:禁用密码认证(可选,进一步增强安全性);MaxAuthTries 3:限制登录尝试次数(防止暴力破解);Ciphers aes128-ctr,aes192-ctr,aes256-ctr:指定强加密算法。sudo systemctl restart sshd。3. 配置防火墙阻断Telnet端口访问
即使禁用了Telnet服务,仍需通过防火墙彻底封锁23端口(Telnet默认端口),防止未经授权的连接尝试。
sudo firewall-cmd --permanent --remove-port=23/tcp移除23端口的开放规则,然后sudo firewall-cmd --reload重新加载配置。sudo iptables -A INPUT -p tcp --dport 23 -j DROP添加规则,拒绝所有23端口的TCP连接,最后通过sudo service iptables save保存规则。4. 利用SELinux增强访问控制
SELinux(Security-Enhanced Linux)是CentOS的内置安全模块,可通过**强制访问控制(MAC)**限制Telnet服务的权限。
sestatus,若未启用则临时执行sudo setenforce 1,永久修改/etc/selinux/config中的SELINUX=enforcing。setsebool命令设置telnetd_disable参数为1,彻底禁止Telnet服务:sudo setsebool -P telnetd_disable 1。5. 监控与审计Telnet活动(及时发现异常行为)
即使禁用了Telnet,仍需监控系统日志,确保没有非法启用或攻击尝试。
tail -f /var/log/secure(CentOS)实时监控登录尝试,重点关注“Failed password”或“telnet”关键词。LOG_FILE="/var/log/secure"
OUTPUT="telnet_bruteforce_report.txt"
echo "=== Telnet暴力破解尝试检测报告 ===" > $OUTPUT
grep "Failed password" $LOG_FILE | grep "port 23" >> $OUTPUT
if [ -s "$OUTPUT" ]; then
mail -s "【安全告警】检测到Telnet爆破行为" admin@company.com < $OUTPUT
fi
fail2ban自动封禁频繁尝试的恶意IP,配置/etc/fail2ban/jail.local中的[telnetd] section,设置enabled = true、maxretry = 3(3次失败后封禁)、bantime = 86400(封禁1天)。6. 删除Telnet软件包(彻底消除风险隐患)
若系统无需再使用Telnet,卸载相关软件包是最彻底的安全措施,避免软件漏洞被利用。
sudo yum remove xinetd telnet-server telnet,确认提示“Complete!”即表示卸载成功。通过以上步骤,可全面防范CentOS系统中Telnet服务的安全风险,确保远程管理的安全性。其中,禁用Telnet+启用SSH+配置防火墙是最小化安全配置的核心组合,而监控与审计则是持续保障安全的重要手段。