温馨提示×

stream8如何设置防火墙规则

小樊
48
2025-10-25 18:12:55
栏目: 编程语言

CentOS Stream 8防火墙规则设置指南(基于firewalld)
CentOS Stream 8默认使用firewalld作为防火墙管理工具,它支持动态更新规则且无需重启服务,核心功能包括区域管理、端口/服务控制、富规则等。以下是具体操作步骤:

1. 安装与启动firewalld

若未安装firewalld,可通过以下命令安装:

sudo dnf install firewalld

安装完成后,启动服务并设置开机自启:

sudo systemctl start firewalld      # 启动firewalld
sudo systemctl enable firewalld     # 设置开机自动启动

2. 检查防火墙状态

  • 查看firewalld运行状态(确认是否为active (running)):
    sudo systemctl status firewalld
    
  • 查看当前防火墙整体状态(是否启用):
    sudo firewall-cmd --state
    

3. 管理区域(Zone)

区域是firewalld的核心概念,用于定义不同网络环境的安全级别(如publicprivatetrusted)。常用操作:

  • 查看默认区域
    sudo firewall-cmd --get-default-zone
    
  • 设置默认区域(如将默认区域改为public):
    sudo firewall-cmd --set-default-zone=public
    
  • 查看活动区域及绑定的接口
    sudo firewall-cmd --get-active-zones      # 查看活动区域
    sudo firewall-cmd --get-zone-of-interface=eth0  # 查看指定接口(如eth0)所属区域
    
  • 将接口绑定到指定区域(如将eth0绑定到public区域):
    sudo firewall-cmd --zone=public --change-interface=eth0 --permanent
    sudo firewall-cmd --reload
    

4. 配置端口与服务规则

4.1 管理端口

  • 查看所有开放的端口
    sudo firewall-cmd --zone=public --list-ports
    
  • 临时开放端口(如8080/tcp,立即生效但重启后失效):
    sudo firewall-cmd --add-port=8080/tcp
    
  • 永久开放端口(需重载配置):
    sudo firewall-cmd --permanent --add-port=8080/tcp
    sudo firewall-cmd --reload
    
  • 删除端口规则(如关闭8080/tcp):
    sudo firewall-cmd --permanent --remove-port=8080/tcp
    sudo firewall-cmd --reload
    

4.2 管理服务

firewalld预定义了常见服务(如httpsshmysql)的规则,可直接通过服务名管理:

  • 查看允许的服务列表
    sudo firewall-cmd --list-services
    
  • 临时允许服务(如http):
    sudo firewall-cmd --add-service=http
    
  • 永久允许服务
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --reload
    
  • 移除服务规则
    sudo firewall-cmd --remove-service=http
    

5. 配置富规则(Rich Rules)

富规则用于更精细的访问控制(如允许/拒绝特定IP、端口或协议),语法更灵活。常用场景:

  • 允许特定IP访问某端口(如允许192.168.1.100访问3306/tcp):
    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
    
  • 拒绝特定IP访问所有端口(如拒绝192.168.1.200):
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.200" reject'
    sudo firewall-cmd --reload
    
  • 允许某网段访问某服务(如允许192.168.1.0/24访问ssh):
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
    sudo firewall-cmd --reload
    

6. 其他实用操作

  • 查看所有防火墙规则(包括端口、服务、富规则):
    sudo firewall-cmd --list-all
    
  • 重载防火墙配置(使永久规则生效,不中断现有连接):
    sudo firewall-cmd --reload
    
  • 完全重载配置(中断现有连接,慎用):
    sudo firewall-cmd --complete-reload
    
  • 关闭防火墙(临时禁用,生产环境不建议):
    sudo systemctl stop firewalld
    

注意事项

  • 备份规则:修改前可通过sudo firewall-cmd --list-all > firewall-backup.txt备份当前配置。
  • 测试规则:生产环境应用前,建议在测试环境验证规则是否生效。
  • 安全性:仅开放必要端口,避免过度开放导致安全风险。

以上步骤覆盖了CentOS Stream 8防火墙的核心配置需求,可根据实际场景调整规则。

0