Telnet 协议自诞生起就未内置加密机制,所有传输数据均为明文,用户凭据与操作指令完全暴露在网络中。在当前重视系统安全的环境下,这无异于将门钥匙挂在门口。若因特殊需求必须在 Debian 系统上保留 Telnet,至少需要采取以下补救措施,提升安全性。
禁止 root 用户通过 Telnet 远程登录
- 编辑
/etc/pam.d/login文件,注释掉auth required pam_securetty.so这一行。这样一来,即使攻击者攻破 Telnet 服务,也无法直接以 root 身份登录,必须首先获取普通用户权限再尝试提权,显著增加了攻击难度。
配置防火墙规则限制访问
- 使用
iptables或ufw等工具限制 Telnet 端口的访问范围,仅允许特定 IP 或网段连接 23 端口。具体操作:
允许 Telnet 流量:sudo ufw allow 23/tcp
拒绝所有其他未授权的入站连接:sudo ufw default deny incoming
彻底禁用 Telnet 服务
- 如果完全不需要 Telnet,最直接的方案是将其关闭。若通过
xinetd管理服务,可编辑/etc/xinetd.d/telnet,将disable设为yes,然后重启xinetd。更彻底的做法是直接卸载 Telnet 软件包:sudo apt-get remove telnetd。
采用 SSH 替代 Telnet
- SSH 已成为远程登录的安全标准,全程加密传输,安全性远胜 Telnet。在 Debian 上安装 OpenSSH 服务器非常简单:
sudo apt update
sudo apt install openssh-server
随后启动并设置开机自启:
sudo systemctl start ssh
sudo systemctl enable ssh
安全加固建议
- 定期更新系统,及时安装所有安全补丁。
- 禁用不必要的服务和自启动项,减少潜在攻击面。
- 通过 PAM 模块配置强密码策略,设置复杂度要求。
- 限制 root 直接登录,使用
sudo进行权限提升。 - 做好日志监控:定期检查
/var/log/auth.log或/var/log/syslog,发现异常立即处理。
总体而言,Telnet 犹如一把没有锁的自行车,停在任何地方都令人不安。在 Debian 系统上,除非有极其特殊的兼容需求,否则强烈建议直接改用 SSH。安全防护莫图一时便利,应着眼长远。
