在 Linux 中 telnet 本身是不安全且通常不建议使用 的协议(明文传输)。如果确实需要使用 telnet,可以从 服务层、网络层、系统层 多个角度限制访问。
下面按常见场景说明。
如果业务允许,直接不装或停止 telnet 服务:
# 停止并禁用
systemctl stop telnet.socket
systemctl disable telnet.socket
# 或(旧系统)
service xinetd stop
chkconfig telnet off
/etc/security/access.conf编辑:
vi /etc/security/access.conf
示例(只允许 admin 从 192.168.1.0/24 登录):
- : ALL EXCEPT admin : ALL
+ : admin : 192.168.1.0/24
并确保 PAM 启用:
vi /etc/pam.d/login
添加:
account required pam_access.so
# 只允许 192.168.1.100 访问 23 端口
iptables -A INPUT -p tcp --dport 23 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j DROP
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="23" accept'
firewall-cmd --permanent --add-port=23/tcp --zone=block
firewall-cmd --reload
/etc/hosts.allowin.telnetd: 192.168.1.
/etc/hosts.denyin.telnetd: ALL
需 telnet 由
xinetd管理才生效
只在特定终端允许 telnet:
vi /etc/securetty
删除或注释 pts/* 相关行(不推荐生产环境)
✅ 使用 SSH 并禁用 telnet
systemctl disable telnet.socket
systemctl enable sshd
SSH 可做到:
| 需求 | 推荐方式 |
|---|---|
| 不用 telnet | 直接禁用 |
| 限制 IP | iptables / firewalld |
| 限制用户 | access.conf |
| 老旧系统 | hosts.allow/deny |
| 安全性 | 改用 SSH |
如果你能说明:
我可以给你一套 精确可执行的配置方案。