在Linux系统中开启Telnet服务需谨慎操作,因其采用明文传输数据,存在安全风险。仅建议在内网测试环境使用,生产环境强烈推荐更安全的SSH,以下是详细操作指南:
Telnet服务风险提示
- 安全隐患:所有通信(包括密码)以明文传输,易被截获。
- 替代方案:优先使用SSH(
openssh-server
),支持加密通信。 - 适用场景:仅限封闭内网或临时测试,启用后务必配置防火墙规则。
安装Telnet服务端(分系统操作)
CentOS/RHEL 系统
# 2. 配置xinetd管理Telnet echo "service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = no }" | sudo tee /etc/xinetd.d/telnet # 3. 启动服务 sudo systemctl start xinetd sudo systemctl enable xinetd
Ubuntu/Debian 系统
# 1. 安装软件 sudo apt install telnetd -y # 2. 重启inetd服务激活配置 sudo systemctl restart inetd
配置防火墙放行Telnet
-
默认端口:
23/tcp
-
操作命令:
# CentOS 7+ (firewalld) sudo firewall-cmd --permanent --add-port=23/tcp sudo firewall-cmd --reload # Ubuntu/Debian (ufw) sudo ufw allow 23/tcp sudo ufw reload
测试Telnet服务
- 本地测试:
telnet localhost # 输入root或普通用户密码登录
- 远程连接:
telnet <服务器IP> # 从另一台机器测试
图:成功登录后显示系统终端提示符
安全加固建议
- 限制访问IP(通过防火墙):
sudo ufw allow from 192.168.1.0/24 to any port 23 # 仅允许内网网段
- 禁用root登录:
# 编辑 /etc/securetty,注释以下行 # pts/0 # 禁止root通过telnet登录
- 监控日志:
- 检查登录记录:
grep telnet /var/log/auth.log
(Ubuntu)或/var/log/secure
(CentOS)
- 检查登录记录:
关闭Telnet服务
如非必要,立即关闭服务:
# CentOS sudo systemctl stop xinetd # Ubuntu sudo systemctl stop inetd # 禁止开机启动 sudo systemctl disable xinetd inetd
为什么推荐SSH替代Telnet?
特性 | Telnet | SSH |
---|---|---|
加密传输 | ❌ 明文 | ✅ AES-256 |
身份验证安全性 | ❌ 弱密码 | ✅ 密钥对 |
数据完整性 | ❌ 无校验 | ✅ HMAC |
典型端口 | 23/tcp | 22/tcp |
迁移到SSH:
sudo apt install openssh-server # Ubuntu sudo yum install openssh-server # CentOS
引用说明:
本文操作基于Red Hat官方文档(xinetd配置指南)及Ubuntu Manpage(inetd(8)),安全建议参考NIST SP 800-123标准。
最后更新:2025年10月
作者:Linux系统安全工程师(认证:RHCE, CISSP)
审核:遵循MITRE ATT&CK安全框架评估风险。
⚠️ 免责声明:在公网使用Telnet可能导致数据泄露,操作前请评估风险。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8533.html