如何配置Ubuntu系统防火墙以安全开启Telnet服务,确保远程登录的安全性?
- 内容介绍
- 文章标签
- 相关推荐
一、前置说明与风险
使用者痛点:很多管理员仍然需要使用 Telnet 进行设备调试。但又担心明文传输会被窃听、密码被抓取,甚至因为防火墙配置错误导致服务不可用。下面先把这些潜在风险说清楚,再给出安全的方法。
1. Telnet 的固有安全缺陷
- 所有数据以明文方式在网络中传输。
- 容易成为中间人攻击或嗅探工具的目标。
- 默认使用 23 端口。若未加限制,任何人都能尝试登录。
2. 防火墙配置失误的后果
- 误放通全部 IP,等同于把大门敞开。
- 规则写错导致 Telnet 服务根本无法访问,影响业务调试。
- 防火墙未启用时程序暴露在公网,安全隐患倍增。
二、准备工作:确保环境干净且可控
1. 更新程序软件源
# sudo apt update && sudo apt upgrade -y
2. 安装 Telnet 服务器及 xinetd
# sudo apt install -y xinetd telnet
3. 检查是否已安装 inetd 系列工具
# dpkg -l | grep inetd
# 若已安装,可直接跳过;若未安装,则执行:
# sudo apt install -y inetutils-inetd
三、UFW 防火墙精细化配置
1. 开启 UFW 并设置默认策略
# sudo ufw default deny incoming
# sudo ufw default allow outgoing
2. 只允许可信 IP 访问 Telnet
将
# sudo ufw allow from to any port 23 proto tcp comment 'Allow trusted host for Telnet'
3. 启用防火墙并验证规则生效情况
# sudo ufw enable
# sudo ufw status numbered
# 应看到类似以下输出:
# 23/tcp ALLOW IN FROM
四、编辑 xinetd 的 Telnet 配置文件。实现细粒度控制
1. 打开配置文件并启用服务
# sudo nano /etc/xinetd.d/telnet
# 将其中的
# disable = yes
# 改为
# disable = no
2. 增加访问控制——可选但推荐看看
在同一文件中加入如下块:
# only_from =
# 或者使用多个地址:
# only_from = 192.168.1.100,10.0.0.5
3. 重启 xinetd 生效修改
# sudo systemctl restart xinetd
# 或者旧版使用:
# sudo service xinetd restart
五、测试 Telnet 连通性——确认安全与可用性兼顾
Pain point:很多管理员在部署完毕后忘记做连通性验证,导致实际业务上线时才发现“无法登录”。下面提供两种常见的验证方式:
a) 本机自检
# telnet localhost 23
# 若出现 “Connected to localhost.” 则说明服务已启动。
b) 远程主机验证
$ telnet 23
# 输入使用者名/密码后应能进入交互界面。
# 若连接超时请检查 UFW 是否放通了正确的 IP 与端口。
六、进一步强化安全——从“只能用”到“更好用”
- Pain point:即使防火墙已限制 IP。Telnet 本身仍是明文协议,一旦内部机器被攻破,攻击者仍能轻易抓取凭证。建议同时部署 SSH,并将内部业务迁移至 SSH。
- Pain point:CVE 漏洞更新不及时会让旧版 Telnet 暴露于已知攻击。务必保持程序定期更新:
# sudo apt update && sudo apt upgrade -y
# 可配合 unattended-upgrades 自动安全更新:
# sudo apt install -y unattended-upgrades
# 编辑 /etc/apt/apt.conf.d/50unattended-upgrades 开启对 security 仓库的自动更新。
- Pain point:SLA 要求日志审计,但默认情况下 xinetd 不记录详细日志。开启日志功能便于事后追溯:
# 在 /etc/xinetd.d/telnet 中添加或取消注释:
logonsuccess += USERID
- Pain point:CIDR 大段放通容易误伤其他子网。使用 UFW 的 “limit” 功能对同一 IP 的频繁尝试进行速率限制:
# 限制每分钟最多尝试 6 次登录:
七、步骤汇总表格
| 序号 | 操作内容 | 关键命令 |
|---|---|---|
| 1️⃣ | 更新程序并安装常用软件 | # sudo apt update && sudo apt install -y xinetd telnet # dpkg -l | grep inetd # 确认安装状态 |
# sudo ufw default deny incoming # sudo ufw default allow outgoing # sudo ufw allow fromto any port 23 proto tcp comment 'Allow trusted host for Telnet'
#sudo ufw enable
pre>
#sudo nano /etc/xinetd.d/telnet disable = no only_from =
#sudo systemctl restart xinetd telnet localhost 23
$ telnet23
# 在 /etc/xinetd.d/telnet 加 logonsuccess += USERID # 限制暴力:sudo ufw limit fromto any port 23 proto tcp
#sudo apt update && sudo apt upgrade -y #sudo apt install unattended-upgrades
八、结论与常用方法建议
- 最小化暴露仅在必须时才开启 TelNet,并严格限定来源 IP。
- 层层加固UFW + xinetd + 日志 + 限速,多重防护比单一措施更可靠。
- 尽快迁移如果业务允许。请优先考虑 SSH 或基于 TLS 的管理协议,以彻底消除明文传输风险。
- 持续监控通过 syslog 或专属 SIEM 程序实时监控 TelNet 登录行为,一旦异常立刻封禁。
一、前置说明与风险
使用者痛点:很多管理员仍然需要使用 Telnet 进行设备调试。但又担心明文传输会被窃听、密码被抓取,甚至因为防火墙配置错误导致服务不可用。下面先把这些潜在风险说清楚,再给出安全的方法。
1. Telnet 的固有安全缺陷
- 所有数据以明文方式在网络中传输。
- 容易成为中间人攻击或嗅探工具的目标。
- 默认使用 23 端口。若未加限制,任何人都能尝试登录。
2. 防火墙配置失误的后果
- 误放通全部 IP,等同于把大门敞开。
- 规则写错导致 Telnet 服务根本无法访问,影响业务调试。
- 防火墙未启用时程序暴露在公网,安全隐患倍增。
二、准备工作:确保环境干净且可控
1. 更新程序软件源
# sudo apt update && sudo apt upgrade -y
2. 安装 Telnet 服务器及 xinetd
# sudo apt install -y xinetd telnet
3. 检查是否已安装 inetd 系列工具
# dpkg -l | grep inetd
# 若已安装,可直接跳过;若未安装,则执行:
# sudo apt install -y inetutils-inetd
三、UFW 防火墙精细化配置
1. 开启 UFW 并设置默认策略
# sudo ufw default deny incoming
# sudo ufw default allow outgoing
2. 只允许可信 IP 访问 Telnet
将
# sudo ufw allow from to any port 23 proto tcp comment 'Allow trusted host for Telnet'
3. 启用防火墙并验证规则生效情况
# sudo ufw enable
# sudo ufw status numbered
# 应看到类似以下输出:
# 23/tcp ALLOW IN FROM
四、编辑 xinetd 的 Telnet 配置文件。实现细粒度控制
1. 打开配置文件并启用服务
# sudo nano /etc/xinetd.d/telnet
# 将其中的
# disable = yes
# 改为
# disable = no
2. 增加访问控制——可选但推荐看看
在同一文件中加入如下块:
# only_from =
# 或者使用多个地址:
# only_from = 192.168.1.100,10.0.0.5
3. 重启 xinetd 生效修改
# sudo systemctl restart xinetd
# 或者旧版使用:
# sudo service xinetd restart
五、测试 Telnet 连通性——确认安全与可用性兼顾
Pain point:很多管理员在部署完毕后忘记做连通性验证,导致实际业务上线时才发现“无法登录”。下面提供两种常见的验证方式:
a) 本机自检
# telnet localhost 23
# 若出现 “Connected to localhost.” 则说明服务已启动。
b) 远程主机验证
$ telnet 23
# 输入使用者名/密码后应能进入交互界面。
# 若连接超时请检查 UFW 是否放通了正确的 IP 与端口。
六、进一步强化安全——从“只能用”到“更好用”
- Pain point:即使防火墙已限制 IP。Telnet 本身仍是明文协议,一旦内部机器被攻破,攻击者仍能轻易抓取凭证。建议同时部署 SSH,并将内部业务迁移至 SSH。
- Pain point:CVE 漏洞更新不及时会让旧版 Telnet 暴露于已知攻击。务必保持程序定期更新:
# sudo apt update && sudo apt upgrade -y
# 可配合 unattended-upgrades 自动安全更新:
# sudo apt install -y unattended-upgrades
# 编辑 /etc/apt/apt.conf.d/50unattended-upgrades 开启对 security 仓库的自动更新。
- Pain point:SLA 要求日志审计,但默认情况下 xinetd 不记录详细日志。开启日志功能便于事后追溯:
# 在 /etc/xinetd.d/telnet 中添加或取消注释:
logonsuccess += USERID
- Pain point:CIDR 大段放通容易误伤其他子网。使用 UFW 的 “limit” 功能对同一 IP 的频繁尝试进行速率限制:
# 限制每分钟最多尝试 6 次登录:
七、步骤汇总表格
| 序号 | 操作内容 | 关键命令 |
|---|---|---|
| 1️⃣ | 更新程序并安装常用软件 | # sudo apt update && sudo apt install -y xinetd telnet # dpkg -l | grep inetd # 确认安装状态 |
# sudo ufw default deny incoming # sudo ufw default allow outgoing # sudo ufw allow fromto any port 23 proto tcp comment 'Allow trusted host for Telnet'
#sudo ufw enable
pre>
#sudo nano /etc/xinetd.d/telnet disable = no only_from =
#sudo systemctl restart xinetd telnet localhost 23
$ telnet23
# 在 /etc/xinetd.d/telnet 加 logonsuccess += USERID # 限制暴力:sudo ufw limit fromto any port 23 proto tcp
#sudo apt update && sudo apt upgrade -y #sudo apt install unattended-upgrades
八、结论与常用方法建议
- 最小化暴露仅在必须时才开启 TelNet,并严格限定来源 IP。
- 层层加固UFW + xinetd + 日志 + 限速,多重防护比单一措施更可靠。
- 尽快迁移如果业务允许。请优先考虑 SSH 或基于 TLS 的管理协议,以彻底消除明文传输风险。
- 持续监控通过 syslog 或专属 SIEM 程序实时监控 TelNet 登录行为,一旦异常立刻封禁。

