Ubuntu下Telnet服务安全加固方法
Telnet传输数据为明文,易被中间人攻击窃取用户名、密码等敏感信息,SSH(Secure Shell) 是更安全的替代方案。SSH通过加密通道保护数据传输,支持公钥认证、端口转发等高级功能。
sudo apt update && sudo apt install openssh-server
sudo systemctl start ssh && sudo systemctl enable ssh
/etc/ssh/sshd_config
,设置PermitRootLogin no
(禁用root直接登录)、PubkeyAuthentication yes
(启用公钥认证)、Port 2222
(更改默认端口)等参数,重启SSH服务使配置生效。若必须使用Telnet,需通过防火墙和TCP Wrappers限制访问范围,减少暴露风险。
ufw
(Uncomplicated Firewall)仅允许受信任IP访问Telnet端口(23)。例如,允许IP192.168.1.100
访问:sudo ufw allow from 192.168.1.100 to any port 23
;若使用iptables,添加规则:sudo iptables -A INPUT -p tcp --dport 23 -s 192.168.1.100 -j ACCEPT
,并保存规则。/etc/xinetd.d/telnet
文件,确保use_tcp_wrappers = yes
;然后编辑/etc/hosts.deny
拒绝所有IP访问:telnetd: ALL
,编辑/etc/hosts.allow
允许指定IP或网段:telnetd: 192.168.1.0/24
(替换为实际IP/网段)。通过修改Telnet服务配置文件,降低被滥用风险。
/etc/xinetd.d/telnet
文件,添加或修改以下参数: per_source = 10
:限制每个源IP的并发连接数为10,防止暴力破解;cps = 5 30
:限制每秒连接速率为5次,超过30次则暂停服务(30秒后恢复),抵御DDoS攻击;disable = no
:确保服务启用(若需禁用Telnet,设置为disable = yes
)。sudo systemctl restart xinetd
。避免root用户通过Telnet直接登录,降低账户被破解后的权限提升风险。
/etc/securetty
文件,删除或注释掉包含telnet
的行(如pts/0
、pts/1
等),阻止root通过Telnet登录。实时监控Telnet登录活动,及时发现异常行为。
/var/log/auth.log
文件,获取Telnet登录日志(如grep telnet /var/log/auth.log
);fail2ban
工具,自动封禁多次登录失败的IP。配置步骤:sudo apt install fail2ban
,复制配置文件:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
,编辑jail.local
,启用SSH防护(若仍使用Telnet,需调整[telnet]
section,但建议优先使用SSH防护)。