如何确保CentOS Telnet连接的安全性
小樊
35
2025-12-29 02:26:14
总体原则
- Telnet 以明文传输数据,存在被窃听与中间人攻击的风险;在 CentOS 上应仅将 Telnet 用于测试或隔离网络,生产环境优先采用 SSH 等加密协议。若确需启用 Telnet,必须叠加严格的网络与主机访问控制、最小权限与审计措施。
加固措施清单
- 访问控制
- 通过 firewalld 仅允许受控来源访问 TCP/23:例如仅放行 192.168.1.100
sudo firewall-cmd --permanent --add-rich-rule=‘rule source address=“192.168.1.100” port protocol=tcp port=23 accept’ && sudo firewall-cmd --reload
- 使用 TCP Wrappers 限制主机:在 /etc/hosts.allow 添加 telnetd: 192.168.1.0/24,在 /etc/hosts.deny 添加 telnetd: ALL
- 禁用高权限登录
- 禁止 root 通过 Telnet 登录:编辑 /etc/securetty,注释或删除 pts/* 行
- 服务最小化与日志
- 若由 xinetd 托管,编辑 /etc/xinetd.d/telnet:设置 user=nobody,开启失败日志 log_on_failure+=USERID;必要时可改为非标准端口(如 12345)以降低扫描暴露
- 系统加固
- 保持系统与软件包更新(yum update),并定期审计 /var/log/secure 或 /var/log/messages 的异常登录尝试
- 运行方式
- 仅在需要时临时启用服务,用完即停,避免长期暴露 Telnet 端口
加密与替代方案
- 优先替代
- 安装并启用 SSH:sudo yum install -y openssh-server && sudo systemctl enable --now sshd;防火墙放行 SSH(22/tcp);进一步可禁用 root 登录、启用密钥认证、限制可登录用户,显著提升远程管理安全性
- 若必须加密 Telnet
- 使用 stunnel 为 Telnet 增加 SSL/TLS 加密:安装 stunnel(epel-release 后 yum install stunnel),生成证书 /etc/stunnel/stunnel.pem,配置监听 12345 转发至 23,客户端通过加密端口连接;注意这仅是“包装”明文 Telnet,仍不如原生 SSH 安全
快速检查清单
- 仅放通必要来源 IP 的 23/tcp,并在边界与主机侧双重限制
- root 无法通过 Telnet 登录(/etc/securetty 已加固)
- Telnet 以 非特权用户 运行,失败登录有日志留存
- 服务按需启停,未使用时关闭或卸载相关包
- 已部署 SSH 作为默认远程管理通道,并配置密钥登录与访问白名单