Ubuntu telnet安全设置方法
导读:Ubuntu 上 Telnet 的安全设置与替代方案 一 基本安全原则 Telnet 以明文传输,包括用户名与密码,极易被窃听与中间人攻击;在生产环境中应优先使用 SSH,仅在隔离网络或临时调试场景下考虑 Telnet,并配合强访问控制与...
Ubuntu 上 Telnet 的安全设置与替代方案
一 基本安全原则
- Telnet 以明文传输,包括用户名与密码,极易被窃听与中间人攻击;在生产环境中应优先使用 SSH,仅在隔离网络或临时调试场景下考虑 Telnet,并配合强访问控制与最小暴露面策略。
二 如必须使用 Telnet 的最小加固
- 限制来源 IP(强烈推荐)
- 使用 UFW:仅允许可信网段访问 23/TCP,例如:
sudo ufw allow from 192.168.1.0/24 to any port 23;同时确保已放行 SSH(22/TCP) 以免被锁死:sudo ufw allow ssh;最后启用:sudo ufw enable。 - 使用 iptables:
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 23 -j ACCEPT,其余来源默认丢弃:sudo iptables -A INPUT -p tcp --dport 23 -j DROP;按需保存规则(如iptables-persistent)。
- 使用 UFW:仅允许可信网段访问 23/TCP,例如:
- 禁止 root 登录
- 编辑 /etc/securetty,注释或删除包含 tty 的行(如
pts/*),使 root 不能通过 Telnet 登录(仅影响 Telnet,不影响 SSH)。
- 编辑 /etc/securetty,注释或删除包含 tty 的行(如
- 使用 TCP Wrappers 精细控制
- 确保 Telnet 由 tcpd 包装:在 /etc/xinetd.d/telnet 中加入或确认
use_tcp_wrappers = yes;在 /etc/hosts.deny 写入telnetd: ALL,在 /etc/hosts.allow 仅放行白名单,例如:telnetd: 192.168.1.100、telnetd: 192.168.1.0/24。
- 确保 Telnet 由 tcpd 包装:在 /etc/xinetd.d/telnet 中加入或确认
- 日志与入侵防护
- 监控 /var/log/auth.log 等登录日志;部署 fail2ban,为 Telnet 配置监控与自动封禁(示例见下文“快速配置示例”)。
- 服务最小化与及时下线
- 非必要时停止并禁用服务:
sudo systemctl stop telnet.socket、sudo systemctl disable telnet.socket;验证状态:sudo systemctl status telnet.socket。如不再需要,可卸载相关包:sudo apt-get remove --purge xinetd telnetd(卸载前确保有其他远程管理方式)。
- 非必要时停止并禁用服务:
三 更安全的替代与迁移
- 使用 SSH 替代 Telnet
- 安装并启用:
sudo apt install openssh-server、sudo systemctl start ssh、sudo systemctl enable ssh;防火墙放行:sudo ufw allow ssh。 - 加固 SSH:在 /etc/ssh/sshd_config 中设置
PermitRootLogin no、PasswordAuthentication no(配合密钥登录)、必要时更改端口(如Port 2222),然后重启:sudo systemctl restart ssh。
- 安装并启用:
- 若必须保留明文协议,使用 Stunnel 为 Telnet 建立 TLS 隧道
- 安装:
sudo apt install stunnel4;示例 /etc/stunnel/stunnel.conf:
启动:[telnet-tls] accept = 2323 connect = 127.0.0.1:23 cert = /etc/ssl/certs/ssl-cert-snakeoil.pem key = /etc/ssl/private/ssl-cert-snakeoil.keysudo systemctl start stunnel4、sudo systemctl enable stunnel4;仅允许本地或跳板机访问 2323/TCP,外网不直接暴露 23/TCP。
- 安装:
四 快速配置示例
- 场景:仅允许 192.168.1.0/24 使用 Telnet,其他来源一律拒绝;启用 fail2ban 保护。
- UFW 限制来源
sudo ufw allow from 192.168.1.0/24 to any port 23 sudo ufw allow ssh sudo ufw enable - 禁止 root 通过 Telnet 登录
sudo sed -i '/^tty/d' /etc/securetty # 简单示例:删除所有 tty 行 - TCP Wrappers 白名单
echo "telnetd: ALL" | sudo tee /etc/hosts.deny echo "telnetd: 192.168.1.0/24" | sudo tee -a /etc/hosts.allow - 配置并启用 fail2ban(若 xinetd 管理 Telnet,使用 telnetd 过滤器)
sudo apt install fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local cat > > /etc/fail2ban/jail.local < < 'EOF' [telnet] enabled = true port = telnet filter = telnetd logpath = /var/log/auth.log maxretry = 3 bantime = 600 EOF sudo systemctl restart fail2ban - 验证
sudo ufw status sudo systemctl status telnet.socket sudo fail2ban-client status telnet - 长期建议:完成迁移后执行
sudo systemctl disable --now telnet.socket sudo apt-get remove --purge xinetd telnetd
- UFW 限制来源
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu telnet安全设置方法
本文地址: https://pptw.com/jishu/759376.html
