Ubuntu Telnet服务安全加固指南
Telnet传输数据为明文(包括用户名、密码),易被截获,SSH(Secure Shell) 是更安全的替代方案。SSH通过加密通道保护数据传输,支持密钥认证(比密码更安全)。
sudo apt update && sudo apt install openssh-serversudo systemctl start ssh && sudo systemctl enable sshsudo ufw allow ssh && sudo ufw enable/etc/ssh/sshd_config):
PermitRootLogin noPasswordAuthentication noAllowUsers your_usernamesudo systemctl restart ssh仅允许受信任的IP地址访问Telnet端口(默认23),降低被扫描攻击的风险。
sudo ufw allow from 192.168.1.100 to any port 23 # 替换为你的可信IP
sudo ufw enable
sudo ufw status # 验证规则是否生效
sudo iptables -A INPUT -p tcp --dport 23 -s 192.168.1.100 -j ACCEPT # 允许可信IP
sudo iptables -A INPUT -p tcp --dport 23 -j DROP # 拒绝其他IP
sudo iptables-save > /etc/iptables/rules.v4 # 保存规则(Ubuntu 18.04及以上)
若无需使用Telnet,彻底关闭服务以消除风险。
sudo systemctl stop telnet.socket # 停止服务
sudo systemctl disable telnet.socket # 禁止开机自启
sudo systemctl status telnet.socket # 验证状态(应为inactive/disabled)
/etc/xinetd.d/telnet,将disable = no改为disable = yes,然后重启xinetd:sudo systemctl restart xinetd通过hosts.allow和hosts.deny文件,基于IP地址控制Telnet访问。
/etc/hosts.deny:添加telnetd: ALL(拒绝所有IP访问)/etc/hosts.allow:添加telnetd: 192.168.1.100(仅允许指定IP访问)若必须保留Telnet,可通过Stunnel将明文流量封装为SSL/TLS加密流量。
sudo apt install stunnel4/etc/stunnel/stunnel.conf):[telnet]
accept = 2222 # 加密后的监听端口
connect = localhost:23 # 原始Telnet端口
cert = /etc/ssl/certs/ssl-cert-snakeoil.pem # 证书路径(自签名)
key = /etc/ssl/private/ssl-cert-snakeoil.key # 私钥路径
sudo systemctl start stunnel4 && sudo systemctl enable stunnel4服务器IP:2222而非默认的23端口sudo apt update && sudo apt upgrade。/var/log/auth.log(Ubuntu 22.04及以上为/var/log/secure),通过tail -f /var/log/auth.log实时监控可疑登录尝试(如多次失败登录)。