当前位置: 首页 > news >正文

【Linux安全】Firewalld防火墙基础

目录

一、Firewalld概述

二、Firewalld和iptables的关系

三、Firewalld网络区域

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

2、firewalld 数据包处理原则

3、firewalld数据处理流程

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

四、Firewalld防火墙的配置方法

1、firewalld 命令行操作管理

1)查

2)增

3)删

4)改

五、Firewalld防火墙案例


一、Firewalld概述

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

二、Firewalld和iptables的关系

 netfilter

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

     体系

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

Firewalld/iptables

  • CentOS7默认的管理防火墙规则的工具(Firewalld)
  • 称为Linux防火墙的“用户态

Firewalld和iptables的区别
Firewalldiptables
配置文件

/usr/lib/firewalld/

/etc/firewalld/

/etc/sysconfig/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

http://www.lryc.cn/news/354427.html

相关文章:

  • 先进制造aps专题八 基于ai大模型的ai超级应用,ai生管
  • Textual for Mac:轻量级IRC客户端
  • Facebook:连接世界,畅游社交之旅
  • 部署PIM-SM
  • 一分钟揭秘面试官真实意图,稳拿offer的面试秘诀!
  • 【源码】2024心悦搜剧源码百万级网盘资源
  • 燃数科技前端25-40K*14薪一面超简单,下周二面啦
  • 读人工智能时代与人类未来笔记14_管控人工智能
  • 高效并发编程:Java阻塞队列深度解析与最佳实践
  • 会话机制:Session
  • MySQL中, 自增主键和UUID作为主键有什么区别?
  • 机器人与AI:结合应用与未来展望
  • PyTorch学习笔记:新冠肺炎X光分类
  • 【Python】 XGBoost模型的使用案例及原理解析
  • Java中print,println,printf的功能以及区别
  • vue3+electron+typescript 项目安装、打包、多平台踩坑记录
  • 实际案例分析
  • JAVA实现图书管理系统(初阶)
  • 【Torch学习笔记】
  • LeetCode算法题:42. 接雨水(Java)
  • LINGO:存贮问题
  • 《微服务王国的守护者:Spring Cloud Dubbo的奇幻冒险》
  • (九)npm 使用
  • Thinkphp5内核宠物领养平台H5源码
  • 一、Elasticsearch介绍与部署
  • NL6621 实现获取天气情况
  • SpringCloud配置文件bootrap
  • 经典面试题:进程、线程、协程开销问题,为什么进程切换的开销比线程的大?
  • 鸿蒙 DevEco Studio 3.1 Release 下载sdk报错的解决办法
  • QGIS开发笔记(二):Windows安装版二次开发环境搭建(上):安装OSGeo4W运行依赖其Qt的基础环境Demo