温馨提示×

Linux下如何限制telnet访问

小樊
48
2025-07-13 02:25:02
栏目: 智能运维

在Linux下限制Telnet访问可以通过以下几种方法实现:

1. 使用防火墙规则

你可以使用iptablesfirewalld来限制Telnet访问。

使用iptables

# 允许特定IP访问Telnet
sudo iptables -A INPUT -p tcp --dport 23 -s 192.168.1.100 -j ACCEPT

# 拒绝所有其他IP访问Telnet
sudo iptables -A INPUT -p tcp --dport 23 -j DROP

使用firewalld

# 允许特定IP访问Telnet
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="23" accept'

# 拒绝所有其他IP访问Telnet
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port protocol="tcp" port="23" reject'

# 重新加载防火墙配置
sudo firewall-cmd --reload

2. 使用PAM(Pluggable Authentication Modules)

你可以配置PAM来限制Telnet访问。

编辑/etc/pam.d/telnet

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

创建/etc/telnet.deny/etc/telnet.allow

# /etc/telnet.deny
* # 拒绝所有用户

# /etc/telnet.allow
root # 允许root用户

3. 使用SELinux

如果你的系统启用了SELinux,你可以使用SELinux策略来限制Telnet访问。

设置SELinux上下文

sudo chcon -R system_u:object_r:telnetd_t:s0 /etc/xinetd.d/telnet

配置SELinux策略

编辑/etc/selinux/config文件,确保以下行未被注释:

SELINUX=enforcing

4. 使用xinetd配置

如果你使用xinetd来管理Telnet服务,可以在/etc/xinetd.d/telnet文件中进行配置。

编辑/etc/xinetd.d/telnet

service telnet
{
    disable = no
    socket_type = stream
    protocol = tcp
    wait = no
    user = root
    server = /usr/sbin/in.telnetd
    log_on_success += HOST PID
    log_on_failure += HOST
    only_from = 192.168.1.100
}

5. 使用tcp_wrappers

你可以使用tcp_wrappers来控制对Telnet服务的访问。

安装tcp_wrappers

sudo apt-get install tcpd

编辑/etc/hosts.deny/etc/hosts.allow

# /etc/hosts.deny
ALL: telnetd

# /etc/hosts.allow
192.168.1.100: telnetd

通过以上方法,你可以有效地限制Linux系统上的Telnet访问。选择适合你系统的方法进行配置即可。

0