温馨提示×

如何限制Debian telnet用户

小樊
39
2026-09-10 15:12:24
栏目: 智能运维

在 Debian 上限制 telnet 用户,通常可以从 访问控制、用户权限、服务隔离、替代方案 几个层面来做。下面按常见场景说明。


一、尽量用 SSH 替代 Telnet(最重要)

Telnet 是明文传输,极不安全,生产环境不建议使用

如果可以:

apt remove telnetd
apt install openssh-server

然后用 SSH + 密钥登录,安全性高得多。


二、限制哪些用户可以使用 telnet

1. 使用 /etc/passwd 禁止登录

对不允许 telnet 的用户:

usermod -s /usr/sbin/nologin username

或

usermod -s /bin/false username

2. 使用 /etc/ftpusers(部分 telnet 实现有效)

某些 telnet 服务会读取该文件:

echo username >> /etc/ftpusers

(限制 root 常用)


3. 使用 PAM 限制用户

编辑:

/etc/pam.d/login

添加:

auth required pam_listfile.so item=user sense=allow file=/etc/telnet.allow onerr=fail

创建允许列表:

echo allowuser > /etc/telnet.allow
chmod 600 /etc/telnet.allow

三、限制来源 IP(网络层)

1. 使用 /etc/hosts.allow 和 /etc/hosts.deny

# /etc/hosts.deny
in.telnetd: ALL

# /etc/hosts.allow
in.telnetd: 192.168.1.0/24

2. 使用 iptables / nftables

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

四、限制 root 直接 telnet

1. 禁止 root 登录

# /etc/pam.d/login
auth required pam_securetty.so

并在 /etc/securetty 中删除 tty 相关行或注释


2. 禁止 root shell

usermod -s /usr/sbin/nologin root

(谨慎操作)


五、限制 telnet 使用时间或命令

1. 限制登录时间(PAM)

# /etc/pam.d/login
account required pam_time.so

编辑 /etc/security/time.conf

login ; * ; !allowuser ; Wk0900-1800

2. 登录后限制命令(受限 shell)

usermod -s /bin/rbash username

并严格控制 PATH。


六、直接禁用 telnet(推荐)

systemctl stop inetd
systemctl disable inetd
# 或
apt remove telnetd

总结建议

✅ 最佳实践:

  • 禁用 telnet
  • 使用 SSH
  • 用 PAM + 防火墙做用户/IP 限制

如果你愿意,可以告诉我:

  • Debian 版本
  • 是否必须保留 telnet
  • 是内网还是公网

我可以给你一套最小化可用配置。

0 踩