使用 Telnet 进行 Linux 系统安全检查
一 检查目标与总体思路
- 明确检查范围:确认是否有人在内网或公网开放了 Telnet 服务(TCP 23),以及是否存在通过 Telnet 的可登录账户与弱口令风险。
- 原则:Telnet 为明文传输,仅用于连通性与服务探测,禁止在 Telnet 会话中执行任何敏感操作或传输凭据。
- 合规提醒:对不属于你的系统进行探测前需取得明确授权,避免触犯安全与合规要求。
二 本机侧检查 Telnet 服务是否开启
- 检查是否已安装客户端/服务端
- Debian/Ubuntu:dpkg -l | grep telnet
- CentOS/RHEL:rpm -qa | grep telnet
- 检查服务状态(按系统与启动方式)
- SysVinit:service telnet status
- systemd:systemctl status telnet 或 systemctl status telnet.socket
- 检查是否监听 23 端口
- ss -tulnp | grep -q 23 && echo “23 端口被监听” || echo “23 端口未监听”
- 或 netstat -tulnp | grep -q 23 && echo “23 端口被监听” || echo “23 端口未监听”
- 检查是否被 xinetd 管理
- 查看 /etc/xinetd.d/telnet 是否存在并已启用(disable = no)
- 检查配置文件
- /etc/telnetd.conf 等(不同发行版路径与内容可能不同)
- 判定要点:若发现服务处于 active(running)或端口 23 处于 LISTEN,即表明 Telnet 对外提供明文登录通道,需要立即处置。
三 远程侧连通性探测与登录安全验证
- 端口连通性探测
- telnet 目标IP 23
- 成功示例:Trying 93.184.216.34… Connected to example.com. Escape character is ‘^]’.
- 失败示例:Connection refused / No route to host / timeout
- 也可用 nc -vz 目标IP 23 或 nmap -p 23 目标IP 进行交叉验证(nmap 结果可能为 open/closed/filtered)。
- 登录安全验证(仅在取得授权前提下)
- 若连接成功,观察是否出现登录提示并尝试输入无效账户/弱口令,验证是否存在弱口令或默认账户。
- 注意:不要在 Telnet 会话中输入真实密码;任何凭证信息以其他方式(受控环境)验证。
- 判定要点:能连通 23 端口即意味着存在明文暴露面;能进入登录提示或尝试登录则表明存在认证面风险。
四 发现开放或未授权 Telnet 时的处置
- 立即停用与禁用
- systemctl stop telnet.socket && systemctl disable telnet.socket
- 如由 xinetd 托管:编辑 /etc/xinetd.d/telnet,将 disable 设为 yes,然后 systemctl restart xinetd
- 防火墙阻断
- firewalld:firewall-cmd --permanent --remove-service=telnet && firewall-cmd --reload
- 或 iptables:iptables -A INPUT -p tcp --dport 23 -j DROP(按实际策略放置到合适位置)
- 替代与加固
- 安装并启用 OpenSSH:apt-get/yum install openssh-server;systemctl start sshd && systemctl enable sshd
- SSH 安全基线:禁用 root 直登(PermitRootLogin no)、仅用 Protocol 2、限制 MaxAuthTries、启用密钥登录并禁用密码(PasswordAuthentication no)
- 审计与监控
- 检查登录日志:tail -f /var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(CentOS/RHEL)
- 部署 fail2ban 防暴力破解;启用 auditd 对关键文件(如 /etc/passwd、/etc/shadow)变更进行审计
- 风险提示:Telnet 为明文协议,存在窃听与凭据泄露风险;生产环境应仅使用 SSH 等加密协议。
五 自动化巡检脚本示例
- 用途:批量检测一段网段的 23 端口开放情况(仅做连通性探测,不发起登录)
- 示例脚本(bash)
- for ip in 192.168.1.{1…254}; do
nc -vz -w 1 “$ip” 23 2>&1 | grep -q succeeded && echo “$ip:23 open” &
done
wait
- 说明:-w 1 设置超时;使用 & 并发提升速度;请仅在授权范围内运行,避免对生产网络造成干扰。