linux

Linux防火墙怎样限制访问IP

小樊
37
2025-08-09 11:16:35
栏目: 智能运维

在Linux系统中,可以使用iptables或firewalld来限制访问IP。以下是两种方法的简要说明:

方法一:使用iptables

  1. 首先,确保iptables已安装在您的Linux系统上。如果没有,请使用以下命令安装:

    对于基于Debian的系统(如Ubuntu):

    sudo apt-get update
    sudo apt-get install iptables
    

    对于基于RPM的系统(如CentOS、Fedora):

    sudo yum install iptables-services
    
  2. 使用iptables限制访问特定IP。以下命令将阻止所有来自特定IP地址(例如,192.168.1.100)的新连接:

    sudo iptables -A INPUT -s 192.168.1.100 -j DROP
    

    要允许特定IP访问特定端口(例如,允许IP 192.168.1.100访问SSH端口22),请使用以下命令:

    sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
    
  3. 保存iptables规则。这将确保在系统重启后规则仍然有效。

    对于基于Debian的系统:

    sudo iptables-save > /etc/iptables/rules.v4
    

    对于基于RPM的系统:

    sudo service iptables save
    

方法二:使用firewalld

  1. 首先,确保firewalld已安装在您的Linux系统上。如果没有,请使用以下命令安装:

    对于基于Debian的系统(如Ubuntu):

    sudo apt-get update
    sudo apt-get install firewalld
    

    对于基于RPM的系统(如CentOS、Fedora):

    sudo yum install firewalld-services
    
  2. 启动firewalld服务并设置为开机启动:

    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    
  3. 使用firewalld限制访问特定IP。以下命令将阻止所有来自特定IP地址(例如,192.168.1.100)的新连接:

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
    

    要允许特定IP访问特定端口(例如,允许IP 192.168.1.100访问SSH端口22),请使用以下命令:

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
    
  4. 重新加载firewalld配置以应用更改:

    sudo firewall-cmd --reload
    

这样,您就可以使用iptables或firewalld来限制访问特定IP了。请注意,这些命令仅适用于IPv4地址。如果您需要限制IPv6访问,请相应地修改命令。

0
看了该问题的人还看了