当前位置: 首页 > news >正文

Ubuntu系统中telnet服务的配置与安全实践

1. 为什么要在Ubuntu上配置telnet服务?

Telnet作为早期的远程登录协议,至今仍在某些特定场景下发挥作用。我最近在帮朋友调试一台老旧的实验室设备时,就遇到了必须使用telnet的情况。这台设备固件太老,只支持telnet协议,SSH根本无法连接。类似的情况在企业内网管理旧服务器、工业控制设备时也经常出现。

不过需要特别提醒的是,telnet协议本身存在严重的安全缺陷。它所有的通信内容(包括用户名和密码)都是以明文形式传输的,就像用明信片寄送银行密码一样危险。我在2018年就亲眼见过一个案例:某公司用telnet管理内网设备,结果被黑客用简单的抓包工具窃取了管理员凭证。

2. 安装与基础配置

2.1 安装必要组件

首先需要安装两个关键软件包:

sudo apt update sudo apt install openbsd-inetd telnetd -y

这里有个小技巧:我习惯先单独安装openbsd-inetd,等它配置完成后再装telnetd。因为有些Ubuntu版本如果两个包同时安装,inetd的配置文件可能不会自动生成。遇到过这种情况的朋友可以在评论区分享一下你的解决方法。

2.2 验证服务状态

安装完成后,用这个命令检查服务是否正常运行:

sudo netstat -tulnp | grep telnet

正常应该看到类似这样的输出:

tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 1234/inetd

如果没看到监听状态,可能需要手动重启服务:

sudo systemctl restart openbsd-inetd

3. 连接测试与排错

3.1 本地连接测试

先试试从本机连接:

telnet 127.0.0.1

成功连接后会看到登录提示。这里有个细节:如果你用的是非root用户,记得先确保这个用户在/etc/passwd中有有效的shell配置。我有次就被这个问题卡了半小时,最后发现是用户的shell被设成了/sbin/nologin。

3.2 远程连接问题排查

当从其他机器连接失败时,建议按这个顺序检查:

  1. 防火墙规则(后面会详细讲)
  2. /etc/inetd.conf配置
  3. /etc/hosts.allow和hosts.deny文件
  4. 客户端和服务端的时间是否同步

4. 安全加固措施

4.1 防火墙配置

强烈建议使用UFW限制访问:

sudo ufw allow from 192.168.1.0/24 to any port 23 sudo ufw enable

在企业环境我会更进一步,只允许特定管理IP访问:

sudo ufw allow from 10.0.100.5/32 to any port 23

4.2 使用TCP Wrapper

编辑/etc/hosts.allow增加访问控制:

telnetd: 192.168.1.100, 192.168.1.101

然后在hosts.deny中默认拒绝所有:

ALL: ALL

4.3 会话超时设置

在/etc/inetd.conf中添加:

telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd -h -L /bin/login -t 300

这里的-t 300表示5分钟无操作自动断开连接。

5. 为什么建议使用SSH替代

虽然配置好了telnet,但我必须强调:只要设备支持,SSH永远是更好的选择。去年我做过一个实验:在同一网络下,用telnet传输的数据包,用Wireshark可以轻松看到所有命令和密码;而SSH连接则完全无法解密。

对于必须使用telnet的场景,我有几个建议:

  1. 只在隔离的内网使用
  2. 使用跳板机中转连接
  3. 定期更换密码
  4. 监控/var/log/auth.log的异常登录

最后提醒一点:完成调试后,记得禁用telnet服务:

sudo systemctl disable openbsd-inetd
http://www.jsqmd.com/news/893538/

相关文章:

  • 2026年净化公司TOP10榜单:无尘车间/GMP净化/无菌实验室/洁净室工程/手术室净化/食品车间/电子厂房/生物医药最新推荐 - 企业推荐官【官方】
  • Win10下Python虚拟环境激活报错:深入解析ExecutionPolicy权限与管理员模式解决方案
  • 基于PLC的立体仓库控制系统设计(设计源文件+万字报告+讲解)(支持资料、图片参考_降重降ai)_文章底部可以扫码
  • LangGraph多智能体协作效率:从理论模型到工程实践的量化分析
  • 消息队列顺序性保证实战
  • 集成学习在低资源语言情感分析中的应用:以波斯语社交媒体评论为例
  • RFDoc:面向证件检测的高效二进制局部特征描述符设计与实践
  • 无标签知识蒸馏:用动态合成数据训练轻量级人脸识别模型
  • 2026雨水收集系统厂家推荐榜:消防不锈钢水箱/焊接不锈钢水箱/生活不锈钢水箱/组合式不锈钢水箱/调蓄型雨水收集系统/选择指南 - 优质品牌商家
  • 11- Claude Code 最强插件库详解:从安装到全插件用途全吃透
  • SignFormer:基于Vision Transformer的静态手语识别模型解析与实战
  • KK-HF Patch:如何解决恋活!游戏体验的三大核心痛点?
  • 构建多图记忆系统VEKTOR:让AI智能体告别金鱼综合症
  • MHmarkets:平台工具、风控与体验体系观察
  • 保姆级教程:在Windows 10/11上配置Kaggle CLI并一键提交submission.csv
  • 明日方舟游戏资源库:技术开发者与创意工作者的完整解决方案
  • 美容平台支付失败率骤降91%:Lovable多通道聚合支付网关设计(含微信/支付宝/跨境PayPal容灾切换逻辑)
  • 利用Taotoken为内容创作平台集成多模型文本生成能力
  • 基于Transformer与知识图谱的药物重定位:2型糖尿病老药新用智能发现
  • 简单三步让Zotero中文文献管理效率提升10倍:Jasminum插件完全指南
  • TwinGAN:双阶段GAN实现中国山水画风格迁移的技术解析与实践
  • 五分钟快速搭建本地AI助手:基于OpenClaw的实践指南
  • 【独家首发】中国制造业AI Agent成熟度白皮书(覆盖17个细分行业,含68家样本企业实测数据)
  • 如何快速实现VR视频转换:用VR-Reversal在普通电脑上自由探索3D内容
  • 告别编译报错!手把手教你用CMake GUI搞定Cesium For Unreal 1.22.0插件依赖库
  • MySQL命令行导出数据库
  • 2026年开源商城和 SaaS 怎么选?为什么越来越多企业开始重视“自主可控”?——真正决定企业长期上限的,从来不是“前期上线速度”,而是“未来还能不能持续演进”
  • Linux权限管理避坑指南:为什么你的新用户加不进sudo组?详解wheel组与/etc/sudoers.d
  • 在Mac本地部署离线AI助手:Llama 2模型与llama.cpp实战指南
  • triton-inference-server-ge-backend 是什么?让模型推理服务化变得如此简单