通过 Telnet 进行 Linux 系统更新的正确方式
重要说明与风险
- Telnet 协议以明文传输,用户名、密码及命令都可能被窃听,存在中间人攻击风险;仅可在隔离网络或应急维护场景下临时使用,更新完成后应立即关闭并改用 SSH。若条件允许,优先直接使用 SSH 执行更新操作。
操作步骤
-
步骤 1 启用 Telnet 临时远程登录
- 在目标主机安装并启动 Telnet(以 CentOS 7 为例):
- 安装组件:sudo yum install -y telnet-server xinetd
- 启用服务:sudo systemctl enable --now xinetd;sudo systemctl enable --now telnet.socket
- 防火墙放行:sudo firewall-cmd --zone=public --add-port=23/tcp --permanent && sudo firewall-cmd --reload
- 在客户端连接:telnet 服务器IP 23,登录到系统命令行。
-
步骤 2 执行系统更新
- 确认网络连通后,按发行版执行更新命令:
- Debian/Ubuntu:sudo apt update && sudo apt full-upgrade && sudo reboot
- RHEL/CentOS 7:sudo yum update && sudo reboot
- Fedora:sudo dnf update && sudo reboot
- openSUSE:sudo zypper refresh && sudo zypper dup && sudo reboot
- 更新过程中保持会话稳定,避免中断导致更新失败。
-
步骤 3 更新后安全收尾
- 关闭 Telnet 并恢复安全访问:
- 停止服务:sudo systemctl disable --now telnet.socket;sudo systemctl disable --now xinetd
- 关闭防火墙端口:sudo firewall-cmd --zone=public --remove-port=23/tcp --permanent && sudo firewall-cmd --reload
- 仅使用 SSH 进行后续管理,必要时在 SSH 中禁用 root 密码登录、启用密钥登录。
常见注意事项
- 许多发行版默认禁止 root 通过 Telnet 登录,可先用普通用户登录再执行 su 或 sudo;也可按需配置 PAM/securetty(不推荐,存在安全风险)。
- 升级 OpenSSH 等涉及远程登录安全的组件时,建议先保留 Telnet 作为应急通道,完成升级并验证 sshd 正常后再关闭 Telnet。
- 若使用 Debian/Ubuntu,更新的是 telnetd 软件包本身(而非通过 Telnet 去更新系统);更新后可用 sudo systemctl status telnet.socket 检查状态。
更安全的替代方案
- 直接使用 SSH 执行更新:将命令中的 telnet 替换为 ssh,例如 ssh user@服务器IP,随后按发行版执行相应的更新命令。SSH 提供加密传输与强身份认证,适合生产环境。