温馨提示×

如何通过Linux防火墙限制访问

小樊
47
2025-09-29 11:38:15
栏目: 智能运维

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

方法1:使用iptables

  1. 首先,确保iptables已安装在您的系统上。在大多数Linux发行版中,iptables都是预装的。如果没有,请使用包管理器(如apt、yum或zypper)安装。

  2. 查看当前的iptables规则:

sudo iptables -L 
  1. 添加规则以限制访问。例如,要阻止特定IP地址访问SSH端口(默认为22),可以使用以下命令:
sudo iptables -A INPUT -p tcp --dport 22 -s 123.123.123.123 -j DROP 

123.123.123.123替换为您要阻止的IP地址。

  1. 若要允许特定IP地址访问SSH端口,可以使用以下命令:
sudo iptables -A INPUT -p tcp --dport 22 -s 123.123.123.123 -j ACCEPT 
  1. 保存iptables规则,以便在系统重启后仍然生效。这取决于您的Linux发行版。在Debian和Ubuntu上,可以使用以下命令:
sudo iptables-save > /etc/iptables/rules.v4 

在Red Hat和CentOS上,可以使用以下命令:

sudo service iptables save 

方法2:使用firewalld

  1. 首先,确保firewalld已安装在您的系统上。在大多数Linux发行版中,firewalld都是预装的。如果没有,请使用包管理器(如apt、yum或zypper)安装。

  2. 启动firewalld服务并设置为开机启动:

sudo systemctl start firewalld sudo systemctl enable firewalld 
  1. 查看当前的firewalld配置:
sudo firewall-cmd --list-all 
  1. 添加规则以限制访问。例如,要阻止特定IP地址访问SSH端口(默认为22),可以使用以下命令:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="123.123.123.123" port protocol="tcp" port="22" reject' 

123.123.123.123替换为您要阻止的IP地址。

  1. 若要允许特定IP地址访问SSH端口,可以使用以下命令:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="123.123.123.123" port protocol="tcp" port="22" accept' 
  1. 重新加载firewalld配置以应用更改:
sudo firewall-cmd --reload 

这样,您就可以通过iptables或firewalld限制Linux系统上的访问了。请注意,这些命令可能需要root权限。

0