第1章 firewalld防火墙

防火墙

概念

  • 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
  • 支持IPv4、IPv6防火墙设置以及以太网桥
  • 支持服务或应用程序直接添加防火墙规则接口
  • 拥有两种配置模式
    • 运行时配置:添加的策略立即生效,不用重载防火墙,策略临时存在(重启后失效)
    • 永久配置:添加的策略需要重载防火墙才会生效,策略永远存在

形态

不管是什么防火墙,只要是在Linux中运行的防火墙,就有两种形态

  • 内核态:netfilter
    • 指的是操作系统内核运行的环境,具有最高权限和直接访问系统硬件的能力。在内核态运行的代码可以执行高级的系统操作。
    • netfilter:是Linux内核的一个框架,用于实现网络数据包的过滤和修改。它提供了对数据包进行处理的接口,可以用于实现防火墙功能、网络地址转换(NAT)等。
    • 通常netfilter被firewalld和iptables管理
  • 用户态:iptables、firewalld
    • 是指操作系统提供给应用程序运行的环境,应用程序在用户态运行,不能直接访问硬件,必须通过系统调用等方式访问操作系统提供的服务。
    • iptables:是Linux系统中一个传统的命令行工具,用于配置IPv4数据包过滤规则和网络地址转换(NAT)规则。iptables配置的规则会被netfilter在内核态中执行。
    • firewalld:是一个动态管理防火墙的工具,提供了简化配置和管理防火墙规则的方式。它作为用户态程序运行,并与内核态中的netfilter交互,实现网络安全策略。

防火墙分类

  • 包过滤防火墙:匹配数据包内的关键字,进行过滤
  • 状态话防火墙(思科、华为等设备 )

firewalld网络区域

  • 区域如同进入主机的安全门,每个区域都具有不同限制程度的规则
  • 可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口
  • 默认情况下,public区域是默认区域,包含所有接口(网卡)
区域划分
  • 阻塞区域(block):任何传入的网络数据包都将被阻止。
  • 隔离区域(DMZ):隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络连接。
  • 丢弃区域(drop):任何传入的网络连接都被拒绝。
  • 外部区域(external):不相信网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。
  • 家庭区域(home):相信网络上的其他计算机,不会损害你的计算机。
  • 内部区域(internal):信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。
  • 公共区域(public):不相信网络上的任何计算机,只有选择接受传入的网络连接。
  • 信任区域(trusted):所有的网络连接都可以接受。
  • 工作区域(work):相信网络上的其他计算机,不会损害你的计算机。

配置防火墙相关命令

|--------------------------------------------------------|-----------------------------------------------|
| 命令 | 说明 |
| firewall-cmd --state | 查询防火墙状态 |
| firewall-cmd --get-zones | 获取当前所有区域 |
| firewall-cmd --get-service | 获取所有能管理的服务 这里的服务都是默认端口,如果服务的端口被修改了,就不能直接管理该服务 |
| firewall-cmd --get-default-zone | 当前接口默认属于哪个区域 |
| firewall-cmd --set-default-zone=internal | 将当前接口的默认区域修改为internal |
| firewall-cmd --get-active-zones | 查询当前被激活的区域 |
| firewall-cmd --get-zone-of-interface=ens33 | 查询指定接口所在的区域 |
| firewall-cmd --zone=dmz --list-interface | 列出指定区域有哪些接口 |
| firewall-cmd --zone=dmz --add-service=http | 为指定区域添加支持的服务 |
| firewall-cmd --zone=dmz --remove-service=http | 删除该区域的指定服务的默认端口 |
| firewall-cmd --zone=dmz --list-services | 列出指定区域支持的服务 |
| firewall-cmd --zone=dmz --add-port=80/tcp | 添加端口号策略 为同一个服务添加访问端口时,要把对应部署的服务默认端口删除 |
| firewall-cmd --zone=dmz --change-interface=ens33 | 修改指定接口的所在区域为dmz |
| firewall-cmd --zone=dmz --add-service=http --permanent | 为dmz区域以永久时的方式部署http服务 |
| firewall-cmd --zone=dmz --remove-interface=ens38 | 删除dmz区域的ens38接口 |
| firewall-cmd --list-all --zone=dmz | 列出指定区域的全部信息 |
| firewall-cmd --reload | 重载防火墙 |

相关推荐
2035去旅行13 小时前
bootcmd 详细讲解
linux·嵌入式·arm·soc
陈希12314 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡14 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
且从容.18 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道18 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
且从容.21 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落1 天前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨1 天前
WSL2的安装与使用
linux·wsl
微小的鱼1 天前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng1 天前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器