温馨提示×

centos防火墙如何限制访问IP

小樊
46
2025-03-07 11:32:00
栏目: 智能运维

在CentOS系统中,你可以使用firewalld来限制访问特定IP。以下是具体步骤:

方法一:使用firewalld的富规则(rich rules)

  1. 启动firewalld服务(如果尚未启动):

    sudo systemctl start firewalld
    
  2. 启用firewalld服务(如果尚未启用):

    sudo systemctl enable firewalld
    
  3. 添加富规则以限制特定IP访问: 假设你想阻止IP地址192.168.1.100访问你的服务器上的某个端口(例如80端口),可以使用以下命令:

    sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" reject'
    

    解释:

    • --permanent:使规则永久生效。
    • --zone=public:指定防火墙区域为public。
    • --add-rich-rule:添加富规则。
    • rule family="ipv4":指定规则适用于IPv4。
    • source address="192.168.1.100":指定源IP地址。
    • port protocol="tcp" port="80":指定端口和协议。
    • reject:拒绝访问。
  4. 重新加载firewalld配置以应用新规则:

    sudo firewall-cmd --reload
    

方法二:使用iptables

如果你更喜欢使用iptables,可以按照以下步骤操作:

  1. 阻止特定IP访问某个端口: 假设你想阻止IP地址192.168.1.100访问你的服务器上的80端口,可以使用以下命令:

    sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j DROP
    

    解释:

    • -A INPUT:将规则添加到INPUT链。
    • -s 192.168.1.100:指定源IP地址。
    • -p tcp:指定协议为TCP。
    • --dport 80:指定目标端口为80。
    • -j DROP:丢弃匹配的数据包。
  2. 保存iptables规则(CentOS 7及以上版本):

    sudo systemctl stop firewalld
    sudo iptables-save > /etc/sysconfig/iptables
    sudo systemctl start firewalld
    

    解释:

    • iptables-save > /etc/sysconfig/iptables:将当前的iptables规则保存到文件中。
    • systemctl stop firewalldsystemctl start firewalld:停止并重新启动firewalld服务以应用iptables规则。

通过以上两种方法,你可以有效地限制特定IP地址访问你的CentOS服务器上的资源。选择哪种方法取决于你的个人偏好和系统配置。

0