在 Debian 上限制 telnet 用户,通常可以从 访问控制、用户权限、服务隔离、替代方案 几个层面来做。下面按常见场景说明。
Telnet 是明文传输,极不安全,生产环境不建议使用
如果可以:
apt remove telnetd
apt install openssh-server
然后用 SSH + 密钥登录,安全性高得多。
/etc/passwd 禁止登录对不允许 telnet 的用户:
usermod -s /usr/sbin/nologin username
或
usermod -s /bin/false username
/etc/ftpusers(部分 telnet 实现有效)某些 telnet 服务会读取该文件:
echo username >> /etc/ftpusers
(限制 root 常用)
编辑:
/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
/etc/hosts.allow 和 /etc/hosts.deny# /etc/hosts.deny
in.telnetd: ALL
# /etc/hosts.allow
in.telnetd: 192.168.1.0/24
iptables -A INPUT -p tcp --dport 23 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j DROP
# /etc/pam.d/login
auth required pam_securetty.so
并在 /etc/securetty 中删除 tty 相关行或注释
usermod -s /usr/sbin/nologin root
(谨慎操作)
# /etc/pam.d/login
account required pam_time.so
编辑 /etc/security/time.conf
login ; * ; !allowuser ; Wk0900-1800
usermod -s /bin/rbash username
并严格控制 PATH。
systemctl stop inetd
systemctl disable inetd
# 或
apt remove telnetd
✅ 最佳实践:
如果你愿意,可以告诉我:
我可以给你一套最小化可用配置。