温馨提示×

怎样限制linux telnet访问

小樊
38
2026-09-27 18:31:22
栏目: 智能运维

在 Linux 中,Telnet 本身是不加密、不安全的,通常建议直接用 SSH 替代 Telnet。但如果确实需要使用 Telnet,可以通过以下几种方式限制 Telnet 访问,提升安全性。


一、限制来源 IP(最常用)

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

适用于 telnet 由 xinetd / inetd 管理的情况。

禁止所有 IP:

# /etc/hosts.deny
telnetd: ALL

允许指定 IP:

# /etc/hosts.allow
telnetd: 192.168.1.100 10.0.0.0/24

✅ 规则优先级:
hosts.allow > hosts.deny


2️⃣ 使用 iptables 限制(推荐)

# 只允许 192.168.1.0/24 访问 23 端口
iptables -A INPUT -p tcp --dport 23 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j DROP

保存规则(视发行版):

service iptables save
# 或
iptables-save > /etc/sysconfig/iptables

3️⃣ 使用 firewalld(CentOS / RHEL 7+)

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.0/24"
port protocol="tcp" port="23" accept'

firewall-cmd --permanent --remove-service=telnet
firewall-cmd --reload

二、限制用户访问 Telnet

1️⃣ 禁止 root 直接登录

编辑配置文件:

# xinetd 方式
/etc/xinetd.d/telnet

添加或修改:

disable = no
only_from = 192.168.1.0/24
no_access = root

或限制用户:

only_from = 192.168.1.0/24
access_times = 09:00-18:00

2️⃣ 禁止某些用户使用 Telnet

在 /etc/pam.d/remote 或 /etc/pam.d/login 中:

auth required pam_listfile.so item=user sense=deny file=/etc/telnet.deny onerr=succeed
# /etc/telnet.deny
root

三、限制时间访问

xinetd 示例:

service telnet
{
    disable = no
    access_times = 08:00-20:00
}

四、完全禁用 Telnet(✅ 强烈建议)

systemctl disable telnet.socket
systemctl stop telnet.socket

或 xinetd:

chkconfig telnet off

五、最佳实践建议

✅ 不要用 Telnet
✅ 使用 SSH + 密钥登录
✅ 修改 SSH 端口
✅ 禁止 root 登录


如果你能告诉我:

  • 使用的 Linux 发行版(CentOS / Ubuntu / Rocky 等)
  • Telnet 是 xinetd 还是 systemd 管理

我可以给你更精确的配置示例。

0 踩