Centos 7.5 上开放指定端口并设置白名单

在 CentOS 7.5 中,你可以使用 firewalld 来禁用某些端口,并只允许指定 IP 地址访问特定端口。以下是详细的步骤:

步骤 1:安装并启动 firewalld

如果尚未安装 firewalld,可以使用以下命令进行安装并启动它:

sudo yum install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

步骤 2:查看当前防火墙状态和区域

查看当前防火墙状态:

sudo firewall-cmd --state

查看活跃区域:

sudo firewall-cmd --get-active-zones

查看当前区域的详细信息:

sudo firewall-cmd --zone=public --list-all

步骤 3:添加规则,禁用端口并只开放给指定 IP

假设你要禁用端口 8080,并只允许 IP 地址 192.168.1.100 访问该端口。

  1. 添加拒绝规则:先添加一个规则,拒绝所有对端口 8080 的访问。 (经过验证, 此步骤不需要,会导致下面白名单也无效)

     sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" port port=8080 protocol=tcp reject' --permanent
    
  2. 添加允许规则:然后添加一个规则,只允许指定的 IP 地址访问端口 8080。

     sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address=192.168.1.100 port port=8080 protocol=tcp accept' --permanent
    
  3. 重新加载防火墙配置:使新的规则生效。

     sudo firewall-cmd --reload
    

步骤 4:验证规则

  1. 查看防火墙规则,确认新的规则已添加:

     sudo firewall-cmd --zone=public --list-all
    
  2. 使用 ssnetstat 命令确认端口状态:

     sudo ss -tuln | grep :8080
    

    或者

     sudo netstat -tuln | grep :8080
    

删除规则

如果你需要删除之前添加的规则,可以使用以下命令:

  1. 删除拒绝规则:

     sudo firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" port port=8080 protocol=tcp reject' --permanent
    
  2. 删除允许规则:

     sudo firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address=192.168.1.100 port port=8080 protocol=tcp accept' --permanent
    
  3. 重新加载防火墙配置:

     sudo firewall-cmd --reload
    

通过这些步骤,你可以使用 firewalld 来禁用端口,并只允许指定 IP 地址访问特定端口,从而提高系统的安全性。

最后更新于 1st Jul 2024