1. 禁用Telnet服务(最彻底的安全措施)
Telnet协议传输数据(包括用户名、密码)为明文,易被中间人攻击截获。最安全的方式是彻底禁用Telnet服务:
sudo systemctl stop telnet.socket(立即停止服务);sudo systemctl disable telnet.socket(禁止开机自启)。2. 使用SSH替代Telnet(推荐替代方案)
SSH(Secure Shell)提供加密传输通道和强认证机制,是Telnet的安全替代品。配置步骤:
sudo apt-get install openssh-server(Debian/Ubuntu)或sudo yum install openssh-server(CentOS/RHEL);sudo systemctl start sshd、sudo systemctl enable sshd;3. 配置防火墙限制访问
通过防火墙限制Telnet端口(默认23)的访问范围,减少暴露风险:
sudo iptables -A INPUT -p tcp --dport 23 -j DROP(拒绝所有23端口入站连接);sudo firewall-cmd --permanent --remove-service=telnet(移除telnet服务规则)、sudo firewall-cmd --reload(重载配置);sudo ufw deny 23/tcp(禁止23端口)、sudo ufw enable(启用防火墙)。4. 禁止root用户通过Telnet登录
root账户拥有最高权限,禁止其通过Telnet登录可防止攻击者直接获取系统控制权:
/etc/securetty文件(决定允许root登录的终端),添加一行telnet(表示禁止root通过telnet登录);/etc/pam.d/login文件,注释掉auth required pam_securetty.so行(部分系统需此操作)。5. 修改Telnet默认端口
将Telnet默认端口(23)更改为非标准端口(如2323),减少自动化扫描工具的攻击概率:
/etc/xinetd.d/telnet),找到port参数并修改(如port = 2323);sudo systemctl restart xinetd。6. 启用强密码策略
为Telnet账户设置复杂密码(包含大小写字母、数字、特殊字符),并定期更换:
passwd命令为用户设置强密码(如sudo passwd username);/etc/pam.d/common-password(Debian)或/etc/pam.d/system-auth(CentOS),添加minlen=12(最小长度12)、ucredit=-1(至少1个大写字母)等规则。7. 监控与日志记录
启用详细日志记录,监控Telnet连接尝试(成功/失败),及时发现异常行为:
sudo tail -f /var/log/auth.log(Debian/Ubuntu)或sudo tail -f /var/log/secure(CentOS/RHEL);sudo apt-get install fail2ban(Debian/Ubuntu)或sudo yum install fail2ban(CentOS/RHEL)。8. 使用SSL/TLS加密Telnet通信(可选增强措施)
若必须使用Telnet,可通过Stunnel或OpenSSL实现SSL加密,保护数据传输:
sudo apt-get install stunnel4),编辑配置文件(/etc/stunnel/stunnel.conf),添加[telnet-ssl] section(accept = 12345、connect = 23、cert = /etc/stunnel/stunnel.pem),生成自签名证书(sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/stunnel/stunnel.pem -out /etc/stunnel/stunnel.pem),启动Stunnel(sudo systemctl start stunnel4);ssh -L 2323:localhost:23 user@remote_server(本地2323端口转发至远程23端口),然后通过telnet localhost 2323连接。