1. 禁用Telnet服务(最直接有效的防范措施)
Debian系统中,Telnet服务若未使用应彻底禁用,避免其占用端口并成为攻击目标。可通过以下命令操作:
systemctl
(适用于systemd系统,Debian 8及以上版本):sudo systemctl stop telnet.socket # 停止Telnet服务
sudo systemctl disable telnet.socket # 禁止系统启动时自动启动
sudo systemctl status telnet.socket # 验证服务状态(应为"inactive (dead)"且"disabled")
service
命令(适用于较旧系统,如Debian 7及以下):sudo service telnet.socket stop
sudo update-rc.d telnet.socket disable
xinetd
管理Telnet的情况):/etc/xinetd.d/telnet
文件,将disable = no
改为disable = yes
,保存后重启xinetd
服务:sudo systemctl restart xinetd
禁用后,Telnet服务将不再运行,彻底消除明文传输的风险。
2. 使用SSH替代Telnet(推荐的长期解决方案)
SSH(Secure Shell)是加密的远程登录协议,能有效解决Telnet明文传输的问题。在Debian中安装并配置SSH的步骤如下:
sudo apt update
sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
/etc/ssh/sshd_config
):
PermitRootLogin no
(需用普通用户+sudo
管理);Port 2222
(减少自动化扫描攻击);AllowUsers your_username
(仅授权特定用户);PasswordAuthentication no
(需提前配置公钥认证)。sudo systemctl restart ssh
通过SSH替代Telnet,可从根源上杜绝数据泄露和中间人攻击。
3. 配置防火墙限制访问
即使禁用了Telnet,仍建议通过防火墙阻断其端口(默认23/tcp),防止意外启用或未完全禁用的情况:
ufw
(Uncomplicated Firewall,Debian默认防火墙工具):sudo ufw deny 23/tcp # 拒绝Telnet端口的所有入站连接
sudo ufw enable # 启用防火墙
sudo ufw status # 验证规则(应显示"23/tcp DENY")
iptables
(底层防火墙工具,适用于高级用户):sudo iptables -A INPUT -p tcp --dport 23 -j DROP # 阻止Telnet端口流量
sudo netfilter-persistent save # 保存规则(Debian 9及以上)
防火墙能形成第一道防线,阻止未经授权的Telnet连接请求。
4. 定期更新系统与软件包
Telnet服务或其依赖库的已知漏洞是攻击的重要入口,定期更新系统可修复这些漏洞:
sudo apt update # 更新软件包列表
sudo apt upgrade # 升级所有可升级的软件包
sudo apt autoremove # 删除无用的依赖包
建议开启自动安全更新(针对Debian 10及以上版本):
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
及时更新能降低因漏洞被利用而导致的风险。
5. 强化系统与用户安全策略
即使使用Telnet(不推荐),也应通过以下措施降低风险:
/etc/pam.d/common-password
文件设置密码复杂度要求(如minlen=12
、ucredit=-1
等)。/etc/ssh/sshd_config
设置PermitRootLogin no
,强制用户通过普通账户+sudo
执行特权操作,减少root账户被攻击后的影响范围。/var/log/auth.log
(SSH登录日志)或/var/log/syslog
(系统日志),使用fail2ban
等工具自动封禁多次登录失败的IP地址(如设置maxretry=3
,即3次失败后封禁1小时)。