【Linux安全】Firewalld防火墙基础

目录

一、Firewalld概述

二、Firewalld和iptables的关系

三、Firewalld网络区域

1、firewalld防火墙预定义了9个区域:

[2、firewalld 数据包处理原则](#2、firewalld 数据包处理原则)

3、firewalld数据处理流程

4、firewalld检查数据包的源地址的规则

四、Firewalld防火墙的配置方法

[1、firewalld 命令行操作管理](#1、firewalld 命令行操作管理)

1)查

2)增

3)删

4)改

五、Firewalld防火墙案例


一、Firewalld概述

  • 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
  • 支持IPv4、IPv6防火墙设置以及以太网桥
  • 支持服务或应用程序直接添加防火墙规则接口
  • 拥有两种配置模式
    • 运行时配置
    • 永久配置

二、Firewalld和iptables的关系

netfilter

  • 位于Linux内核中的包过滤功能

体系

  • 称为Linux防火墙的"内核态

Firewalld/iptables

  • CentOS7默认的管理防火墙规则的工具(Firewalld)
  • 称为Linux防火墙的"用户态
Firewalld iptables
配置文件 /usr/lib/firewalld/ /etc/firewalld/ /etc/sysconfig/iptables
对规则的修改 不需要全部刷新策略,不丢失现行连接 需要全部刷新策略,丢失连接
防火墙类型 动态防火墙 静态防火墙
[Firewalld和iptables的区别]

三、Firewalld网络区域

1、firewalld防火墙预定义了9个区域:

  1. trusted(信任区域):允许所有的传入流量。
  2. public(公共区域):允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域。
  3. external(外部区域):允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。 默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络。
  4. home(家庭区域):允许与ssh、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。
  5. internal(内部区域):默认值时与home区域相同。
  6. work(工作区域):允许与 ssh、dhcpv6-client 预定义服务匹配的传入流量,其余均拒绝。
  7. dmz(隔离区域也称为非军事区域):允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。
  8. block(限制区域):拒绝所有传入流量。
  9. drop(丢弃区域):丢弃所有传入流量,并且不产生包含 ICMP的错误响应。

2、firewalld 数据包处理原则

要激活某个区域,需要先将区域与 源地址或网卡接口 关联绑定(一个区域可以关联绑定多个源地址或网卡接口,一个源地址或网卡接口只能关联绑定一个区域)

先检查传入数据包的源地址,若源地址与特定区域绑定,则直接使用该区域的规则过滤处理数据包

若源地址与任何一个区域没有绑定,则使用与入站网卡绑定的特定区域的规则过滤处理数据包

若也没有特定区域绑定网卡接口,则使用默认区域的规则过滤处理数据包

3、firewalld数据处理流程

firewalld对于进入系统的数据包,会根据数据包的源IP地址或传入的网络接口等条件,将数据流量转入相应区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址。

4、firewalld检查数据包的源地址的规则

  1. 若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则。
  2. 若源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突),则使用传入网络接口的区域并执行该区域所制定的规则。
  3. 若网络接口也未关联到特定的区域(即源地址或接口都没有绑定特定的某个区域),则使用默认区域并执行该区域所制定的规则。

四、Firewalld防火墙的配置方法

1、firewalld 命令行操作管理

1)查

复制代码
firewall-cmd --get-default-zone                 查看当前默认区域
             --get-active-zones                 查看当前已激活的区域
             --get-zones                        查看所有可用的区域
             --list-all-zones                   查看所有区域的规则
             --list-all --zone=区域名           查看指定区域的规则
             --list-services --zone=区域名      查看指定区域允许访问的服务列表
             --list-ports --zone=区域名         查看指定区域允许访问的端口列表
             --get-zone-of-interface=网卡名     查看与网卡绑定的区域
             --get-icmptypes                    查看所有icmp类型

2)增

复制代码
firewall-cmd --add-interface=网卡名 --zone=区域名                    给指定区域添加绑定的网卡
             --add-source=源地址 --zone=区域名                       给指定区域添加源地址
             --add-service=服务名 --zone=区域名                      给指定区域添加允许访问的服务
             --add-service={服务名1,服务名2,...} --zone=区域名       给指定区域添加允许访问的服务列表
             --add-port=端口/协议 --zone=区域名                      给指定区域添加允许访问的端口
             --add-port=端口1-端口2/协议 --zone=区域名               给指定区域添加允许访问的连续的端口列表
             --add-port={端口1,端口2,...}/协议 --zone=区域名         给指定区域添加允许访问的不连续的端口
             --add-icmp-block=icmp类型 --zone=区域名                 给指定区域添加拒绝访问的icmp类型

3)删

复制代码
firewall-cmd --remove-service=服务名 --zone=区域名  
             --remove-port=端口/协议 --zone=区域名
             --remove-icmp-block=icmp类型 --zone=区域名
             --remove-interface=网卡名 --zone=区域名       从指定区域里删除绑定的网卡
             --remove-source=源地址 --zone=区域名          从指定区域里删除绑定的源地址

4)改

复制代码
firewall-cmd --set-default-zone                            修改当前默认区域
             --change-interface=网卡名 --zone=区域名       修改/添加网卡 绑定给指定区域
             --change-source=源地址 --zone=区域名          修改/添加源地址 绑定给指定区域
  • 运行时配置

    • 实时生效,并持续至Firewalld重新启动或重新加载配置
    • 不中断现有连接
    • 不能修改服务配置
    复制代码
      firewall-cmd ....
      firewall-cmd --runtime-to-permanent       将之前的运行时配置都转换成永久配置
  • 永久配置

    • 不立即生效,除非Firewalld重新启动或重新加载配置
    • 中断现有连接
    • 可以修改服务配置
    复制代码
      firewall-cmd ....  --permanent
      firewall-cmd --reload   或   systemctl restart firewalld

/etc/firewalld/中的配置文件

  • Firewalld会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/lib/firewalld/中的配置
    • /etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/lib/firewalld/中拷贝
    • /usr/lib/firewalld/:默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/ 中的配置

五、Firewalld防火墙案例

永久生效

富规则
https://blog.51cto.com/u_3823536/2552274

相关推荐
草莓熊Lotso6 分钟前
Linux 线程同步与互斥(一):彻底搞懂线程互斥原理、互斥量底层实现与 RAII 封装
linux·运维·服务器·开发语言·数据库·c++
feng_you_ying_li8 分钟前
linux之进程概念
linux
j_xxx404_9 分钟前
深入理解Linux底层存储:从物理磁盘架构到文件系统(inode/Block)原理
linux·运维·服务器·后端
南棱笑笑生11 分钟前
Z:\K7\20260418给万象奥科的开发板HD-RK3576-PI适配瑞芯微原厂的Buildroot时通过WinScp传送文件【SSH模式】
运维·ssh·rockchip
hutengyi11 分钟前
四、nginx的优化和location匹配规则
运维·nginx
嵌入式×边缘AI:打怪升级日志15 分钟前
深度剖析Linux按键驱动四种访问方式:从查询到异步通知
linux·运维·服务器
凉、介18 分钟前
从设备树到驱动源码:揭秘嵌入式 Linux 中 MMC 子系统的统一与差异
linux·驱动开发·笔记·学习·嵌入式·sd·emmc
小江的记录本19 分钟前
【网络安全】《网络安全与数据安全核心知识体系》(包括数据脱敏、数据加密、隐私合规、等保2.0)
java·网络·后端·python·算法·安全·web安全
@insist12320 分钟前
网络工程师-动态路由协议(二):BGP 协议与路由引入技术详解
运维·网络·网络工程师·软考·软件水平考试
Full Stack Developme24 分钟前
Linux 软连接与硬连接比较
linux·运维·服务器