防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口。

动态防火墙后台程序firewalld提供了一个动态管理的防火墙,用以支持网络“zone”,以分配对一个网路及其相关连接和界面的支持

它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。

在RHEL7里有几种防火墙共存:firewalld、iptables、ebtables,默认使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等。

netfilter才是防火墙,firewalld和iptables是两种不同的防火墙管理工具,其底层都是iptables命令

systemctl start firewalld   ##启用
systemctl enable firewalld   ##开机自启动
systemctl disable firewalld  ##开机禁启动
systemctl stop firewalld     ##关闭

firewalld跟iptables比起来至少有两大好处:

1、firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效;
2、firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能

ZONE

数据包要进入到内核必须要通过这些zone中的一个,而不同的zone里定义的规则不一样(即信任度不一样,过滤的强度也不一样)。可以根据网卡所连接的网络的安全性来判断,这张网卡的流量到底使用哪个zone,比如上图来自eth0的流量全部使用zone1的过滤规则,eth1的流量使用zone3。一张网卡同时只能绑定到一个zone。大家就可以把这些zone想象成进入火车站(地铁)的安检,不同的入口检测的严格度不一样

阻塞区域(block):任何传入的网络数据包都将被阻止。
工作区域(work):相信网络上的其他计算机,不会损害你的计算机。
家庭区域(home):相信网络上的其他计算机,不会损害你的计算机。
公共区域(public):不相信网络上的任何计算机,只有选择接受传入的网络连接。
隔离区域(DMZ):隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络连接。
信任区域(trusted):所有的网络连接都可以接受。
丢弃区域(drop):任何传入的网络连接都被拒绝。
内部区域(internal):信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。
外部区域(external):不相信网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接

配置模式

firewalld的配置文件以xml格式为主(主配置文件firewalld.conf例外),他们有两个存储位置
1、/etc/firewalld/
2、/usr/lib/firewalld/

 

当需要一个文件时firewalld会首先到第一个目录中去查找,如果可以找到,那么就直接使用否则会继续到第二个目录中查找。
firewalld的这种配置文件结构的主要作用是这样的:

在第二个目录中存放的是firewalld给提供的通用配置文件,如果我们想修改配置, 那么可以copy一份到第一个目录中,然后再进行修改。

这么做有两个好处:首先我们日后可以非常清晰地看到都有哪些文件是我们自己创建或者修改过的,

其 次,如果想恢复firewalld给提供的默认配置,只需要将自己在第一个目录中的配置文件删除即可,非常简                                    单,而不需要像其他很多软件那样在修改之前还 得先备份一下,而且时间长了还有可能忘掉之前备份的是什                                  么版本

配置文件结构 文件:firewalld.conf、lockdown-whitelist.xml
目录:zones、services、icmptypes
另外,如果使用到direct,还会有一个direct.xml文件。我们要注意,在保存默认配置的目录“/usr/lib/firewalld/”中只有我们这里所说的目录,而没有firewalld.conf、lockdown-whitelist.xml和direct.xml这三个文件,也就是说这三个文件只存在于“/etc/firewalld/”目录中。
文件和目录的作用 firewalld.conf

firewalld的主配置文件,是键值对的格式,不过非常简单,只有五个配置项

DefaultZone 默认使用的zone,默认值为public
MinimalMark  标记的最小值,linux内核会对每个进入的数据包都进行标记,目的当然是为了对他们进行区分,这里其实就是使用的标记,当然对数据包的标记还有很多作用。这里所设置的 MinimalMark值就是标记的最小值,默认值为100,一般情况下我们不需要对其进行修改,但是如果我们有特殊需要的时候就可以通过对其进行修改来 告诉linux所使用标记的最小值了,比如我们需要给符合某条件的数据包标记为123,这时候为了防止混淆就需要将MinimalMark设置为一个大于 123的值了
CleanupOnExit 这个配置项非常容易理解,他表示当退出firewalld后是否清除防火墙规则,默认值为yes;
Lockdown 这个选项跟D-BUS接口操作firewalld有关,firewalld可以让别的程序通过D-BUS接口直接操作,当Lockdown设置为yes的 时候就可以通过lockdown-whitelist.xml文件来限制都有哪些程序可以对其进行操作,而当设置为no的时候就没有限制了,默认值为 no;
IPv6_rpfilter 其功能类似于rp_filter,只不过是针对ipv6版的,其作用是判断所接受到的包是否是伪造的,检查方式主要是通过路由表中的路由条目实现的,更多详细的信息大家可以搜索uRPF相关的资料,这里的默认值为yes
lockdown-whitelist.xml 当Lockdown为yes的时候用来限制可以通过D-BUS接口操作firewalld的程序
direct.xml 通过这个文件可以直接使用防火墙的过滤规则,这对于熟悉iptables的用户来说会非常顺手,另外也对从原来的iptables到firewalld的迁移提供了一条绿色通道
zones 保存zone配置文件
services 保存service配置文件
icmptypes 保存和icmp类型相关的配置文件
zone概念

firewalld默认提供了九个zone配置文件:block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml,他们都保存在“/usr/lib /firewalld/zones/”目录下

上面的九个zone其实就是九种方案,而且起决定作用的其实是每个xml文件所包含的内容,而不是 文件名,所以大家不需要对每种zone(每个文件名)的含义花费过多的精力,比如trusted这个zone会信任所有的数据包,也就是说所有数据包都会 放行,但是public这个zone只会放行其中所配置的服务,其他的一律不予放行,其实我们如果将这两个文件中的内容互换一下他们的规则就换过来了,也 就是public这个zone会放行所有的数据包,下面我们来看一下这两个文件的内容

public:

<?xml version="1.0" encoding="utf-8"?>
<zone><short>Public</short><description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description><service name="ssh"/><service name="dhcpv6-client"/>
</zone>

tusted:

<?xml version="1.0" encoding="utf-8"?>
<zone target="ACCEPT"><short>Trusted</short><description>All network connections are accepted.</description>
</zone>

我们要特别注意trusted.xml中zone的target,就是因为他设置为了ACCEPT,所以才会放行所有的数据包,而 public.xml中的zone没有target属性,这样就会默认拒绝通过,所以public这个zone(这种方案)只有其中配置过的服务才可以通 过

service 从端口号改为服务名主要有两个好处:首先是使用服务名配置的语义清晰,不容易出错;其次在对某个服务的端口号进行修改的时候只需要修改相应的 service文件就可以了,而不需要再修改防火墙方案——zone。这其实跟DNS将ip地址和域名关联了起来是一样的道理。下面学生再来给大家介绍一 下service的配置文件。
service配置文件的命名规则是<服务名>.xml,比如ssh的配置文件是ssh.xml,http的配置文件是 http.xml等,他们默认保存在“/usr/lib/firewalld/services/”目录下,常见的服务其中都可以找到,如果我们想修改某 个服务的配置,那么可以复制一份到“/etc/firewalld/services/”目录下然后进行修改就可以了,要想恢复默认配置直接将我们自己的 配置文件删除就可以了
   
   
配置方法 firewalld的配置方法主要有三种:firewall-config、firewall-cmd和直接编辑xml文件,其中 firewall-config是图形化工具,firewall-cmd是命令行工具
   
   
   
   
   
                                                                             命令
区域 显示支持的区域列表 firewall-cmd --get-zones
设置当前区域的接口 firewall-cmd --get-zone-of-interface=enp03s
查看当前区域 firewall-cmd --get-active-zones
查看所有域

firewall-cmd --list-all-zones

查看指定域的信息 firewall-cmd --zone=public --list-all
设定默认域 firewall-cmd --set-default-zone=work
临时修改网络接口(enp0s3)为内部区域(internal) firewall-cmd --zone=internal --change-interface=enp03s
永久修改网络接口enp03s为内部区域(internal) firewall-cmd --permanent --zone=internal --change-interface=enp03s
端口 打开端口 firewall-cmd --add-port=443/tcp

永久打开3690/TCP端口

永久打开端口需要reload一下

firewall-cmd --permanent --add-port=3690/tcp

永久打开一个端口段

永久打开端口需要reload一下

firewall-cmd --permanent --add-port=1000-2000/tcp
查看防火墙,添加的端口 firewall-cmd --list-all
删除端口 firewall-cmd --permanent --zone=public --remove-port=8080-8081/tcp
服务 删除服务 firewall-cmd --permanent --zone=public --remove-service=https
  显示服务列表 firewall-cmd --get-services
  允许SSH服务通过 firewall-cmd --enable service=ssh
  禁止SSH服务通过 firewall-cmd --disable service=ssh
  打开TCP的8080端口 firewall-cmd --enable ports=8080/tcp
  显示当前服务 firewall-cmd --list-services
  添加HTTP服务到内部区域 firewall-cmd --permanent --zone=internal --add-service=http
  临时允许Samba服务通过600秒 firewall-cmd --enable service=samba --timeout=600
     
   
   
   
   
   
   
   
 

防火墙firewalld相关推荐

  1. Linux防火墙firewalld只允许特定IP访问

    Linux防火墙firewalld只允许特定IP访问 目录 目标 思路 直接说办法 其他注意事项 1.Centos 7 使用firewalld 而不是 iptables,iptables 是Cento ...

  2. ansible防火墙firewalld设置

    ansible防火墙firewalld设置 背景 需求 操作 防火墙的开关 打开 验证 防火墙端口策略 打开 验证 防火墙服务策略 打开 验证 背景 防火墙 通过有机结合各类用于安全管理与筛选的软件和 ...

  3. Linux中防火墙firewalld

    Linux中防火墙firewalld 一.什么是防火墙 二.防火墙的作用 三.Linux中的防火墙分类 四.firewalld防火墙 1. 区域 2.运行模式和永久模式 五.防火墙设置 1.防火墙的启 ...

  4. Linux命令之Centos 7 systemctl和防火墙firewalld命令(初学一)

    如上图:可以在本地的git bash中通过ssh来连接登录linux服务器 语法:ssh 用户名@IP -p 端口   (因为ssh默认端口是22)   也可以是ssh 用户名@IP 2.echo命令 ...

  5. Linux7查看防火墙日志,Linux入门教程:CentOS7防火墙firewalld配置,防火墙日志在哪呢...

    Linux入门教程:CentOS7防火墙firewalld配置,防火墙日志在哪呢 启动: systemctl start firewalld 停止: systemctl stop firewalld ...

  6. linux防火墙firewalld

    目录 一.firewalld的理论 1.firewalld的概述 2.iptables和firewall的区别 3.firewalld的区域 4.九个区域的作用 5.firewall数据的处理流程 二 ...

  7. 防火墙---firewalld

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

  8. 防火墙——firewalld

    一.firewalld防火墙概述 firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前iptables防火墙,也是工作在网络层,属于包过滤防火墙. firewalld和ipta ...

  9. RHEL7中防火墙firewalld的配置

    转自http://lduan.blog.51cto.com/5428084/1547139 在RHEL7里有几种防火墙共存:firewalld.iptables.ebtables,默认使用firewa ...

  10. Centos7 防火墙 firewalld 实用操作

    一.前言 Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙.其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤 ...

最新文章

  1. 解决flex4 分辨率自适应问题
  2. 安卓初学者必看实例,(手机GPS简单编程访问)
  3. 虚拟机中使用Samba实现文件共享,并在win10上创建映射网络驱动器
  4. 提高篇 第三部分 图论 第1章 最小生成树
  5. PCB制图 | Altium Designer 20软件汉化
  6. # Vue 组件开发打包、Vue 项目打包、js库组件库打包使用
  7. 比较不错的MaciOS软件论坛
  8. 6.4输入系统-模拟输入系统驱动
  9. MixFormer: End-to-End Tracking with Iterative Mixed Attention解读
  10. 递归 (一): 递归思想与 C++ 中的递归函数及两个递归应用示例 (斐波那契, 汉诺塔)
  11. 该设备正在使用中.请关闭可能使用该设备的所
  12. 计算机专业论文1000字英语作文,计算机专业毕业论文一千字以上
  13. 国外邮箱哪家好?好用的公司邮箱怎么申请?
  14. 10大排序算法时间复杂度和空间复杂度总结
  15. 从零开始写安卓APP 《第一行代码》笔记 第一周
  16. H3C交换机配置管理口和SNMP客户端
  17. iOS Crash崩溃异常教你查看和分析
  18. C++ Primer学习之(9)——顺序容器
  19. 小米11 安卓11 未ROOT 脱壳 准备工作
  20. 如何将横向滚动条加粗css,css实现横向滚动条的两种方式(代码实例)

热门文章

  1. vscode 头文件包含问题_使用clangd替代c/c++配置vscode c++项目
  2. 远程桌面服务器office版本,在启用远程桌面服务的计算机上部署 Office 2010
  3. android 背景切换动画效果代码,在Android应用中以模糊效果设置背景图片
  4. android开发隐藏软键盘,Android开发之完全隐藏软键盘的方法
  5. java是值传递还是引用传递_Java 到底是值传递还是引用传递?
  6. php mysql购物车实现原理_PHP实现购物车的思路和源码分析
  7. java包含关系图_Java——Spring框架完整依赖关系图!再复习了解加工一下吧?
  8. 虚拟按键自己触发的java代码_在SystemUI添加虚拟按键
  9. java bean验证_javaBean--登录验证
  10. mysql如何备份一个表单_Mysql亿级数据大表单表备份