第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 | 重载防火墙 |

相关推荐
WillWolf_Wang7 分钟前
Linux 编译 Android 版 QGroundControl 软件并运行到手机上
android·linux·智能手机
岚天start8 分钟前
Shell脚本一键监控平台到期时间并钉钉告警推送指定人
linux·shell·钉钉告警·计划任务·监控到期·平台到期
白鹭1 小时前
MySQL主从复制进阶(GTID复制,半同步复制)
linux·运维·数据库·mysql·集群
叫我Zoe就行2 小时前
MySQL集群——主从复制
linux·数据库·学习·mysql
TechubNews2 小时前
Webus 与中国国际航空合作实现 XRP 支付
大数据·网络·人工智能·web3·区块链
博语小屋2 小时前
进程控制之进程等待
linux
Dobby_052 小时前
【Linux】网络安全管理:SELinux 和 防火墙联合使用 | Redhat
linux·运维·云原生·防火墙·selinux
monster_风铃2 小时前
小补充: IPv6 安全RA
网络·安全·智能路由器
wheeldown2 小时前
【Linux】Linux进程状态和僵尸进程:一篇看懂“进程在忙啥”
linux·运维·服务器·进程
jzwalliser2 小时前
关于Linux生态的补充
linux·语言暴力