很多刚接触 Linux 或者服务器管理的同学,可能会遇到需要开启 telnet server enable 的需求,比如调试网络连通性、测试端口开放情况等。但直接上手操作很容易踩坑,例如权限问题、安全漏洞等。本文将深入探讨 telnet 的工作原理,提供详细的配置步骤,并分享一些实战中的避坑经验。
Telnet 协议原理及风险
Telnet 协议是一个简单的、基于文本的远程登录协议。它使用 TCP 协议的 23 端口进行通信。客户端通过 Telnet 连接到服务器,服务器验证用户名和密码后,允许客户端执行命令。 然而,由于 Telnet 协议在传输过程中不加密数据,包括用户名和密码,因此存在严重的安全风险。在生产环境中,强烈建议使用 SSH 协议代替 Telnet。
Telnet 的不安全性
- 明文传输:所有数据(包括密码)都以明文形式传输,容易被嗅探。
- 缺乏身份验证:Telnet 协议的身份验证机制相对简单,容易受到攻击。
- 安全风险:如果 Telnet 服务器配置不当,可能会被恶意利用,导致系统被入侵。
Telnet Server Enable 的配置步骤 (CentOS 7 为例)
虽然不推荐在生产环境中使用 Telnet,但在某些特定场景下,例如内网调试、测试等,我们仍然可能需要启用 Telnet 服务。以下是在 CentOS 7 上启用 Telnet 服务的步骤:
安装 Telnet server 和 client

yum install -y telnet telnet-server # 使用 yum 安装 telnet 和 telnet-server配置 Telnet server
修改
/etc/xinetd.d/telnet文件:# # service configuration file # Usage: realname # service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/tcpd #server = /usr/sbin/in.telnetd # 原配置被注释 server = /usr/sbin/in.telnetd # 修改后的配置 log_on_failure += USERID disable = no # 修改 disable 为 no,启用 telnet }确保
disable = no,并将server行修改为/usr/sbin/in.telnetd。
配置 Xinetd
修改
/etc/sysconfig/iptables文件,添加 23 端口的访问规则。如果使用 firewalld,则需要添加 firewalld 规则:# 针对 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT # 针对 firewalld firewall-cmd --permanent --add-port=23/tcp firewall-cmd --reload注意:如果服务器部署在云服务器上,还需要在云服务器的安全组中开放 23 端口。

启动 Telnet 服务
systemctl start xinetd # 启动 xinetd 服务 systemctl enable xinetd # 设置 xinetd 开机自启设置密码 (不推荐,但可能需要)
为了能够通过 Telnet 登录,需要为用户设置密码:

passwd your_username # 为指定用户设置密码
实战避坑经验总结
- 安全第一:强烈建议在生产环境中禁用 Telnet,使用 SSH 替代。
- 防火墙配置:确保防火墙允许 23 端口的访问,否则无法连接 Telnet 服务器。
- 用户权限:使用 Telnet 登录的用户必须拥有足够的权限才能执行需要的命令。注意普通用户需要
sudo提权。 - 日志监控:启用 Telnet 服务的日志记录,以便及时发现安全问题。
- 端口冲突:确认 23 端口没有被其他服务占用,避免端口冲突导致 Telnet 服务无法正常工作。
如果遇到无法连接的问题,可以使用 tcpdump 命令抓包分析,或者使用 netstat -tulnp 命令查看端口占用情况。同时,查看 /var/log/messages 日志文件,可以帮助定位问题。
替代方案:SSH 协议
SSH (Secure Shell) 是一个加密的网络协议,用于在不安全的网络上安全地访问远程计算机。SSH 使用公钥加密技术,可以有效地防止中间人攻击和密码嗅探等安全威胁。在生产环境中,SSH 是 Telnet 的最佳替代方案。
常用的 SSH 客户端包括:
- OpenSSH:Linux 和 macOS 系统自带的 SSH 客户端。
- PuTTY:Windows 平台常用的 SSH 客户端。
- Xshell:另一款流行的 Windows SSH 客户端,支持标签页、会话管理等功能。
配置 SSH 服务器通常涉及修改 /etc/ssh/sshd_config 文件,例如修改端口号、禁用密码登录等。合理的 SSH 配置可以大大提高服务器的安全性。
在使用 Nginx 作为反向代理服务器时,也可以配置 SSH 端口转发,将外部的 SSH 连接转发到内部的服务器,从而简化网络配置并提高安全性。此外,还可以使用宝塔面板等工具来简化 SSH 管理操作。
冠军资讯
代码一只喵