温馨提示×

debian怎么限制telnet访问

小樊
34
2026-10-16 08:30:33
栏目: 智能运维

在 Debian 上“限制 telnet 访问”通常有几层含义,下面按常见场景给你说明做法(含强烈不建议使用 telnet 的前提说明)。


一、先说重要前提(安全建议)

telnet 是明文协议,极其不安全,生产环境强烈建议用 SSH 替代。

如果只是为了兼容老设备:

  • 尽量只监听内网
  • 配合防火墙严格限制来源 IP

二、Debian 上 telnet 服务的两种来源

1. 使用 telnetd(inetd 方式)

Debian 传统 telnet 服务由 openbsd-inetd + telnetd 提供。

查看是否安装:

dpkg -l | grep -E 'telnetd|inetd'

三、限制 telnet 访问的常见方法

方法 1:直接禁用 telnet(最推荐)

如果你不需要 telnet:

sudo systemctl stop inetd
sudo systemctl disable inetd

或彻底卸载:

sudo apt remove telnetd openbsd-inetd

方法 2:只允许特定 IP 访问(hosts.allow / hosts.deny)

编辑:

sudo nano /etc/hosts.deny

加入:

telnetd: ALL

再编辑:

sudo nano /etc/hosts.allow

允许指定 IP:

telnetd: 192.168.1.100
telnetd: 10.0.0.0/24

这依赖 tcp_wrappers,openbsd-inetd 支持。


方法 3:用防火墙限制(iptables / nftables)

iptables 示例(仅允许 192.168.1.0/24)

sudo iptables -A INPUT -p tcp --dport 23 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 23 -j DROP

查看:

sudo iptables -L -n

方法 4:修改 inetd 监听地址(仅内网)

编辑:

sudo nano /etc/inetd.conf

原行类似:

telnet  stream  tcp  nowait  root  /usr/sbin/tcpd  /usr/sbin/in.telnetd

改为只监听内网 IP(示例 192.168.1.10):

192.168.1.10:telnet  stream  tcp  nowait  root  /usr/sbin/tcpd  /usr/sbin/in.telnetd

重启:

sudo systemctl restart openbsd-inetd

方法 5:使用 systemd socket(如果通过 socket 启动)

sudo systemctl stop telnet.socket
sudo systemctl disable telnet.socket

四、验证是否生效

从不允许的机器测试:

telnet <debian_ip>

应被拒绝或超时。


五、总结建议

✅ 最佳做法:不用 telnet,用 SSH
✅ 必须用时:内网 + IP 白名单 + 防火墙

如果你能告诉我:

  • Debian 版本
  • telnet 是给谁用(人 / 设备)
  • 是否必须 23 端口

我可以给你更精确的配置方案。

0 踩