在Linux系统的日常运维中,Telnet这款老牌的远程管理工具至今仍在一些遗留环境中使用。但它的安全性隐患几乎是公开的秘密——所有数据以明文形式传输,包括密码、命令及返回结果,任何能够抓包的人都能一览无余。因此,如果你还在依赖Telnet,或者出于特殊场景需要暂时保留它,下面这些Linux安全防护措施值得你认真参考。

1. 彻底禁用Telnet服务
最直接的防护方案就是彻底关闭Telnet。由于Telnet协议本身不具备加密能力,任何中间人攻击都能轻易得手。通过编辑 /etc/xinetd.d/telnet 文件,将 disable = no 改为 disable = yes,然后重启xinetd服务,Telnet便不再响应请求。替代方案非常明确:全面转向SSH。
2. 利用防火墙限制Telnet访问端口
如果因某些业务原因不得不保留Telnet,至少要在网络层收紧访问权限。默认端口23是标准入口,通过iptables或firewalld可以精准控制。例如,直接丢弃所有发往23端口的TCP数据包:
sudo iptables -A INPUT -p tcp --dport 23 -j DROP
若使用firewalld,可以直接移除telnet服务并重载配置:
sudo firewall-cmd --permanent --remove-service=telnet
sudo firewall-cmd --reload
这样一来,外部扫描基本无法突破这层防护。
3. 用SSH全面替代Telnet
这其实是业界公认的标准安全做法。SSH提供加密通信通道,用户名、密码及传输内容全部受到保护。安装openssh-server,确保sshd服务正常运行,然后将所有远程管理任务迁移到SSH。不必担心切换麻烦,一次配置即可长期受益。
4. 对SSH实施深度安全加固
既然采用SSH,就需要将其配置得更加健壮。编辑 /etc/ssh/sshd_config,建议立即修改以下关键项:
- 禁止root直接登录:
PermitRootLogin no - 启用公钥认证,关闭密码登录:
PubkeyAuthentication yes配合PasswordAuthentication no - 限制登录尝试次数:
MaxAuthTries 3
这些配置能有效抵御大多数暴力破解和弱口令攻击。
5. 系统与软件包更新不可松懈
无论是否使用Telnet,保持操作系统及所有软件包处于最新版本是基础安全要求。许多远程漏洞都是通过已修复的旧版本被利用的。定期执行 yum update 或 apt update && apt upgrade,将已知漏洞阻挡在外。
6. 监控日志并搭配fail2ban防御
日志文件中隐藏着攻击者的活动痕迹。重点监控 /var/log/secure(或 auth.log)中与SSH、Telnet相关的登录记录。一旦发现某个IP反复尝试登录,可使用fail2ban自动封禁该地址。配置一条针对ssh的jail规则,简单几行设置即可让暴力破解者望而却步。
7. 引入SELinux或AppArmor强制访问控制
SELinux和AppArmor是Linux安全模块中的重量级工具。它们能够限制进程的权限,即使Telnet服务本身被攻破,攻击者也难以轻易提权或执行恶意操作。对于生产环境,强烈建议开启SELinux(或AppArmor),并设置为enforcing模式。虽然配置稍显复杂,但带来的安全收益非常实在。
总结来说,最稳妥的做法是直接禁用Telnet,全面迁移到SSH。如果确实无法立即替换,那么防火墙、日志监控、最小权限原则这些手段一个都不能少。安全从来不是单一防线,而是层层叠加后的结果。
