首页主机资讯CentOS如何管理防火墙

CentOS如何管理防火墙

时间2025-10-09 10:58:03发布访客分类主机资讯浏览317
导读:CentOS防火墙管理指南(以firewalld为核心) CentOS 7及以上版本默认使用firewalld作为防火墙管理工具,它支持动态规则调整、区域(Zone)划分及服务关联,提供了更灵活的安全管理能力。以下是firewalld的常用...

CentOS防火墙管理指南(以firewalld为核心)
CentOS 7及以上版本默认使用firewalld作为防火墙管理工具,它支持动态规则调整、区域(Zone)划分及服务关联,提供了更灵活的安全管理能力。以下是firewalld的常用管理操作:

一、基础状态管理

  1. 查看防火墙状态
    使用以下命令确认firewalld是否运行及状态:

    sudo systemctl status firewalld    # 查看服务运行状态(active/running表示运行中)
    firewall-cmd --state               # 快速查看防火墙状态(running表示运行中)
    
  2. 启动/停止/重启防火墙

    • 启动firewalld(即时生效,重启后失效):
      sudo systemctl start firewalld
      
    • 停止firewalld(即时生效,重启后恢复):
      sudo systemctl stop firewalld
      
    • 重启firewalld(应用配置变更,即时生效):
      sudo systemctl restart firewalld
      
  3. 设置开机自启
    若需firewalld随系统启动自动运行,执行:

    sudo systemctl enable firewalld
    

    若需禁用开机自启:

    sudo systemctl disable firewalld
    

二、规则配置(核心操作)

  1. 开放/关闭端口

    • 开放端口(永久生效,需重载)
      例如开放HTTP(80/tcp)、HTTPS(443/tcp)端口:
      sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
      sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
      
    • 关闭端口(永久生效,需重载)
      例如关闭22/tcp端口:
      sudo firewall-cmd --permanent --zone=public --remove-port=22/tcp
      
    • 即时生效(无需重载)
      若需临时开放端口(重启后失效),去掉--permanent参数即可。
  2. 添加/移除服务
    firewalld内置了常见服务(如http、https、ssh)的规则,可直接通过服务名管理:

    • 添加服务(永久生效)
      例如开放SSH服务(22/tcp):
      sudo firewall-cmd --permanent --zone=public --add-service=ssh
      
    • 移除服务(永久生效)
      sudo firewall-cmd --permanent --zone=public --remove-service=ssh
      
  3. 配置默认区域
    区域(Zone)定义了不同网络环境的信任级别(如public、home、internal),默认区域为public(最严格)。

    • 查看当前默认区域
      firewall-cmd --get-default-zone
      
    • 设置默认区域(即时生效)
      例如将默认区域改为home
      sudo firewall-cmd --set-default-zone=home
      
  4. 富规则(Rich Rules)
    富规则支持更复杂的条件过滤(如基于IP、协议、端口范围),适用于高级场景:

    • 允许特定IP访问端口
      例如允许192.168.1.100访问80/tcp端口:
      sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" accept'
      
    • 拒绝特定IP段访问
      例如拒绝192.168.2.0/24访问所有端口:
      sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.2.0/24" reject'
      

三、其他常用操作

  1. 查看规则

    • 查看所有开放端口
      sudo firewall-cmd --list-ports
      
    • 查看当前区域所有规则(包括服务、端口、富规则)
      sudo firewall-cmd --list-all
      
    • 查看所有区域配置
      firewall-cmd --list-all-zones
      
  2. 重载配置
    修改规则后,需重载firewalld使变更生效:

    sudo firewall-cmd --reload     # 动态重载(不中断现有连接)
    sudo firewall-cmd --complete-reload  # 完全重载(断开现有连接,类似重启)
    
  3. 接口绑定区域
    将指定网络接口(如eth0)绑定到特定区域(如public):

    sudo firewall-cmd --permanent --zone=public --add-interface=eth0
    sudo firewall-cmd --reload
    

四、安全增强建议

  1. 限制不必要的端口
    仅开放业务必需的端口(如Web服务的80/443端口、SSH的22端口),关闭其他端口以减少攻击面。

  2. 使用SELinux增强安全
    SELinux与firewalld配合,提供更细粒度的访问控制。确保SELinux处于启用状态:

    sudo setenforce 1                # 临时启用(0为禁用)
    sudo vi /etc/selinux/config      # 永久启用(修改SELINUX=enforcing)
    
  3. 定期更新规则
    根据业务变化及时调整防火墙规则,避免过时规则导致安全隐患。

  4. 监控日志
    启用firewalld日志记录,便于排查安全事件:

    sudo firewall-cmd --permanent --zone=public --add-log-prefix="Firewall: "
    sudo firewall-cmd --reload
    

    日志路径通常为/var/log/messages/var/log/firewalld

通过以上操作,可实现对CentOS系统防火墙的有效管理,保障系统网络安全。需注意,生产环境中修改规则前应充分测试,避免误操作导致服务中断。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS如何管理防火墙
本文地址: https://pptw.com/jishu/721163.html
CentOS中如何安装新软件 怎样查看Tomcat日志中的访问记录

游客 回复需填写必要信息