【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

相关推荐
良许Linux几秒前
0.96寸OLED显示屏详解
linux·服务器·后端·互联网
蜜獾云11 分钟前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
小屁不止是运维12 分钟前
麒麟操作系统服务架构保姆级教程(五)NGINX中间件详解
linux·运维·服务器·nginx·中间件·架构
Hacker_Oldv17 分钟前
WPS 认证机制
运维·服务器·wps
bitcsljl26 分钟前
Linux 命令行快捷键
linux·运维·服务器
ac.char29 分钟前
在 Ubuntu 下使用 Tauri 打包 EXE 应用
linux·运维·ubuntu
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Youkiup1 小时前
【linux 常用命令】
linux·运维·服务器
qq_297504611 小时前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
虹科数字化与AR1 小时前
安宝特应用 | 美国OSHA扩展Vuzix AR眼镜应用,强化劳动安全与效率
安全·ar·远程协助