温馨提示×

linux如何限制telnet访问

小樊
39
2026-10-18 07:03:02
栏目: 智能运维

在 Linux 中 telnet 本身是不安全且通常不建议使用 的协议(明文传输)。如果确实需要使用 telnet,可以从 服务层、网络层、系统层 多个角度限制访问。

下面按常见场景说明。


一、直接禁用 telnet(最推荐)

如果业务允许,直接不装或停止 telnet 服务:

# 停止并禁用
systemctl stop telnet.socket
systemctl disable telnet.socket

# 或(旧系统)
service xinetd stop
chkconfig telnet off

二、限制可登录用户(系统层)

1. 使用 /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

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

方法 1:iptables 限制

# 只允许 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

方法 2:firewalld(CentOS/RHEL 7+)

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

四、通过 xinetd / TCP Wrappers 限制(传统方式)

1. /etc/hosts.allow

in.telnetd: 192.168.1.

2. /etc/hosts.deny

in.telnetd: ALL

需 telnet 由 xinetd 管理才生效


五、限制登录终端(可选)

只在特定终端允许 telnet:

vi /etc/securetty

删除或注释 pts/* 相关行(不推荐生产环境)


六、强烈建议的替代方案

✅ 使用 SSH 并禁用 telnet

systemctl disable telnet.socket
systemctl enable sshd

SSH 可做到:

  • 加密传输
  • 限制 IP
  • 禁止 root 登录
  • 使用密钥认证

总结建议

需求 推荐方式
不用 telnet 直接禁用
限制 IP iptables / firewalld
限制用户 access.conf
老旧系统 hosts.allow/deny
安全性 改用 SSH

如果你能说明:

  • Linux 发行版(CentOS / Ubuntu / 等)
  • 是否必须保留 telnet
  • 是内网还是公网

我可以给你一套 精确可执行的配置方案。

0 踩