温馨提示×

CentOS Stream 8防火墙配置技巧

小樊
66
2025-04-26 19:11:25
栏目: 智能运维

在CentOS Stream 8中,防火墙的配置和管理主要通过 firewalld 这个工具来实现。firewalld 是一个基于 netfilter 的动态管理防火墙,它提供了灵活且易用的配置方式。以下是一些常用的配置技巧和命令:

安装和启动firewalld

首先,确保 firewalld 已经安装在你的系统上。如果没有安装,可以使用以下命令进行安装:

sudo dnf install firewalld

安装完成后,启动并设置 firewalld 在系统启动时自动启动:

sudo systemctl start firewalld
sudo systemctl enable firewalld

基本状态管理命令

  • 检查防火墙状态:

    sudo firewall-cmd --state
    
  • 重载防火墙配置(不中断现有连接):

    sudo firewall-cmd --reload
    
  • 完全重载配置(中断连接):

    sudo firewall-cmd --complete-reload
    

区域(Zone)管理

  • 查看默认区域:

    sudo firewall-cmd --get-default-zone
    
  • 设置默认区域:

    sudo firewall-cmd --set-default-zone=public
    
  • 查看活动区域:

    sudo firewall-cmd --get-active-zones
    
  • 列出所有区域规则:

    sudo firewall-cmd --list-all-zones
    
  • 查看指定区域规则:

    sudo firewall-cmd --zone=public --list-all
    
  • 绑定接口到区域:

    sudo firewall-cmd --zone=public --change-interface=eth0
    

端口与服务管理

  • 查看允许的服务:

    sudo firewall-cmd --list-services
    
  • 临时允许 HTTP:

    sudo firewall-cmd --add-service=http
    
  • 永久允许 HTTP:

    sudo firewall-cmd --add-service=http --permanent
    
  • 移除 HTTP 规则:

    sudo firewall-cmd --remove-service=http
    
  • 查看开放的端口:

    sudo firewall-cmd --list-ports
    
  • 临时开放端口:

    sudo firewall-cmd --add-port=8080/tcp
    
  • 永久开放端口范围:

    sudo firewall-cmd --add-port=20000-65535/tcp --permanent
    
  • 关闭端口:

    sudo firewall-cmd --remove-port=8080/tcp
    

富规则(Rich Rules)

  • 允许某 IP 访问 SSH:

    sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="22" protocol="tcp" accept'
    
  • 重新加载配置使更改生效:

    sudo firewall-cmd --reload
    

允许特定IP地址访问

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="3306" protocol="tcp" accept'
sudo firewall-cmd --reload

查看所有防火墙规则

sudo firewall-cmd --list-all

关闭防火墙

sudo systemctl stop firewalld

启用防火墙开机自动启动

sudo systemctl enable firewalld

0