centos

centos如何限制telnet访问

小樊
47
2025-07-10 11:38:00
栏目: 智能运维

在CentOS系统中,限制Telnet访问可以通过以下几种方法实现:

方法一:使用防火墙(firewalld)

  1. 安装firewalld(如果尚未安装):

    sudo yum install firewalld
    
  2. 启动并启用firewalld服务

    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    
  3. 添加规则以阻止Telnet访问: Telnet默认使用TCP端口23。你可以使用以下命令来阻止该端口的入站连接:

    sudo firewall-cmd --permanent --remove-port=23/tcp
    sudo firewall-cmd --reload
    
  4. 验证规则是否生效

    sudo firewall-cmd --list-all
    

    你应该看不到端口23/tcp在列表中。

方法二:使用iptables

  1. 安装iptables(如果尚未安装):

    sudo yum install iptables-services
    
  2. 启动并启用iptables服务

    sudo systemctl start iptables
    sudo systemctl enable iptables
    
  3. 添加规则以阻止Telnet访问: 使用以下命令来阻止端口23的入站连接:

    sudo iptables -A INPUT -p tcp --dport 23 -j DROP
    
  4. 保存iptables规则: CentOS 7及以上版本使用firewalld,但如果你使用的是CentOS 6或其他版本,可以使用以下命令保存规则:

    sudo service iptables save
    
  5. 验证规则是否生效: 你可以使用以下命令查看当前的iptables规则:

    sudo iptables -L -n
    

    你应该能看到一条规则阻止了端口23的入站连接。

方法三:使用SELinux

  1. 检查SELinux状态

    sestatus
    

    如果SELinux处于 enforcing 模式,你可以继续下一步。

  2. 创建一个SELinux策略模块来阻止Telnet: 创建一个新的策略文件,例如/etc/selinux/targeted/src/policy/policy.31,并添加以下内容:

    module telnet_block 1.0;
    
    require {
        type httpd_t;
        class tcp_socket name_bind;
    }
    
    allow httpd_t tcp_socket name_bind:tcp_socket { bind };
    deny httpd_t tcp_socket name_bind:tcp_socket { connectto };
    
  3. 编译并加载策略模块

    checkmodule -M -m -o telnet_block.mod telnet_block.te
    semodule_package -o telnet_block.pp -m telnet_block.mod
    sudo semodule -i telnet_block.pp
    
  4. 验证策略是否生效: 你可以使用以下命令查看SELinux日志,确认是否有相关的拒绝记录:

    sudo ausearch -m avc -ts recent
    

通过以上方法,你可以有效地限制CentOS系统上的Telnet访问。选择适合你系统配置和环境的方法进行实施。

0
看了该问题的人还看了