文章目录

  • firewalld概述
  • firewall和iptables的不同
  • firewalld常用命令
  • firewalld基本管理
    • 1.图形化操作 firewall-config
    • 2.命令化操作
      • 火墙的高级管理策略
        • Direct Rules
        • Rich Rules(富集)
          • 地址伪装
          • 地址转发
    • 3.xml文件模块化管理

firewalld概述

现在的RedHat/CentOS7版本默认都使用firewall防火墙了,firewall的配置方法大致可以分为图形化和命令行以及编辑配置文件三种。firewalld跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制。
firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了。

相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。

1.firewalld 管理防火墙规则的模式(动态): 任何规则的变更都不需要对整个防火墙规则列表进行重新加载,只需要将变更部分保存并更新到运行中的 iptables
2.区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合
从而实现防火墙策略之间的快速切换。例如,我们有一台笔记本电脑,每天都要在办公室、咖啡厅和家里使用。
按常理来讲,这三者的安全性按照由高到低的顺序来排列,应该是家庭、公司办公室、咖啡厅。
我们希望为这台笔记本电脑指定如下防火墙策略规则:在家中允许访问所有服务;
在办公室内仅允许访问文件共享服务;在咖啡厅仅允许上网浏览。
在以往,我们需要频繁地手动设置防火墙策略规则,而现在只需要预设好区域集合,
然后只需轻点鼠标就可以自动切换了,从而极大地提升了防火墙策略的应用效率。

firewalld中常见的区域名称(默认为public);

firewall和iptables的不同



/usr/lib/firewalld/services:firewalld服务默认在此目录下定义了70+种服务供我们使用,格式:服务名.xml;

/etc/firewalld/zones: 默认区域配置文件,配置文件中指定了编写完成的规则(规则中的服务名必须与上述文件名一致);

==分为多个文件的优点: ==
第一 通过服务名字来管理规则更加人性化
第二 通过服务来组织端口分组的模式更加高效,如果一个服务使用了若干个网络端口,则服务的配置文件就相当于提供了到这些端口的规则管理的批量操作快捷方式

firewalld常用命令

命令语法:firewall-cmd [–zone=zone] 动作 [–permanent]
注:如果不指定–zone选项,则为当前所在的默认区域,–permanent选项为是否将改动写入到区域配置文件中

firewall的状态:

--state ##查看防火墙的状态
--reload ##重新加载防火墙,中断用户的连接,将临时配置清掉,加载配置文件中的永久配置
--complete-reload ##重新加载防火墙,不中断用户的连接(防火墙出严重故障时使用)
--panic-on ##紧急模式,强制关闭所有网络连接,--panic-off是关闭紧急模式

动作中查看操作:

--get-icmptypes ##查看支持的所有ICMP类型
--get-zones ##查看所有区域
--get-default-zone ##查看当前的默认区域
--get-active-zones ##查看当前正在使用的区域
--get-services ##查看当前区域支持的服务
--list-services ##查看当前区域开放的服务列表
--list-all ##查看此区域内的所有配置,类似与iptables -n

更改区域操作:

--set-default-zone=work ##更改默认的区域

新建–add或删除–remove规则:

--add-interface=eth0 ##将网络接口添加到默认的区域内--add-port=12222/tcp --permanent ##添加端口到区域开放列表中--add-port=5000-10000/tcp --permanent ##将端口范围添加到开放列表中;--add-service=ftp --permanent ##添加服务到区域开放列表中(注意服务的名称
需要与此区域支持的服务列表中的名称一致)--add-source=192.168.1.1 ##添加源地址的流量到指定区域--remove-source=192.168.1.1 ##删除源地址的流量到指定区域--change-interface=eth1 ##改变指定的接口到其他区域--remove-service=http ##在home区域内将http服务删除在开放列表中删除--add-masquerade ##开启SNAT(源地址转换)--query-masquerade ##查询SNAT的状态--remove-interface=eth0 ##将网络接口在默认的区域内删除--query-interface=eth0 ##确定该网卡接口是否存在于此区域--add-forward-port=port=513:proto=tcp:toport=22:toaddr=192.168.100.101 ##端口转发

firewalld基本管理

在双网卡主机中

开启firewalld

systemctl stop iptables.service
systemctl disable iptables.servicesystemctl mask iptables.service
systemctl unmask firewalld
systemctl start firewalld
systemctl enable firewalld


对firewalld的操作

1.图形化操作 firewall-config

默认设置
2.更改设置
34.5.

2.命令化操作

在双网卡主机中

firewall-cmd --get-default-zone #查看默认区域
firewall-cmd --list-all #查看此区域内的所有配置,类似与iptables -Ln
firewall-cmd --set-default-zone=block #更改默认的区域
测试:
真机中 ssh 172.25.254.110失败


firewall-cmd --set-default-zone=trusted#更改默认的区域为trusted
测试:
真机中 ssh 172.25.254.110

![在这里插入

firewall-cmd --state #查看防火墙的状态
firewall-cmd --get -active-zones 查看当前正在使用的区域
firewall-cmd --get-zones #查看所有区域
firewall-cmd --list-all --zone=work #查看指定区域的所有
firewall-cmd --get-services #查看当前区域支持的服务


2.

firewall-cmd --list-all
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --add-source=172.25.254.2 添加源地址的流量到指定区域#
firewall-cmd --reload #重新加载防火墙

firewall-cmd --list-all
firewall-cmd --permanent --remove-service=http #将http服务删除在开放列表中删除
firewall-cmd --reload

原来没有,先添加

firewall-cmd --permanent --remove-source=172.25.254.2 #删除源地址的流量到指定区域
firewall-cmd --permanent --add-source=172.25.254.2 --zone=trusted
firewall-cmd --reload

1.

firewall-cmd --get-active-zones  --public 和trusted

测试
在真机
浏览器中输入 172.25.254.110 应该是成功的

在单网卡主机
测试 1.1.1.110应该是失败的

怎样让单网卡主机也测试成功呢

firewall-cmd --remove-interface=eth1 #将网络接口在默认的区域内删除
firewall-cmd --get-active-zones
firewall-cmd --add-interface=eth1 --zone=trusted
firewall-cmd --get-active-zones


测试:
在单网卡主机
浏览器测试 1.1.1.110应该是成功的

firewall-cmd --reload 和firewall-cmd --complete reload 的区别
complete reload 刷新时会中断正在链接的连接

reload重新加载时不会

火墙的高级管理策略

Direct Rules

1.只允许172.25.254.2访问ssh

在双网卡主机中

firewall-cmd ----remove-service=ssh
firewall-cmd --list-allfirewall-cmd --direct --get-all-rules#查看规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.2 -p tcp --dport 22 -j ACCEPT

1.
测试:
在单网卡主机 ssh 1.1.1.110 拒绝


测试:
在真机 ssh 172.25.254.110连接成功

Rich Rules(富集)

地址伪装

==1.单网卡1.1.1.210访问172.25.254.110 ==
在双网卡主机中

firewall-cmd --list-all
firewall-cmd --permanent --add-masquerade开启SNAT(源地址转换)
firewall-cmd --list-all在单网卡主机中 设置网关为1.1.1.110

1.1.1.1.210中

2.在双网卡主机


测试:

在单网卡主机 1.1.1.210访问172.25.254.110成功(原来应该不成功,因为它们不在一个网段)

地址转发

1.(外网访问内网):真机访问172.25.254.110时实际访问1.1.1.210

(单词forward不仅有前进的意思,还有转发,转寄新地址的意思。)

在双网卡主机

firewall-cmd --add-forward-port=proto=tcp:port=22:toprt=22:toaddr=1.1.1.210
firewall-cmd --list-all

1.
测试:
在真机
ssh 172.25.254.110
ifconfig 实际是1.1.1.210

3.xml文件模块化管理

cd /usr/lib/firewalld/
ls
cd zones/
ls
vim public.xml 编辑public域的文件
添加http服务firewall-cmd --reload
firewall-cmd --list-all #发现http添加成功


注意:

  1. firewall设置中的direct rules
    这个指令可以设置火墙的默认设置是接受还是拒绝
    例如:
    虚拟机安装了httpd服务,但是火墙设置中没有添加httpd服务,所以默认情况下所有的计算机都不能使用虚拟机的httpd服务
    那么我们如何使虚拟机默认接受我真机172.25.254.1的所有要求呢
    firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 80 -s 172.25.254.1 -j ACCEPT ##设置默认接受172.25.254.1端口为80的tcp服务访问

再次测试,真机就可以访问虚拟机了。

与上文提到的只允许某个ip ssh 原理一样.

2.在firewalld 中,执行了firewall-cmd --permanent… 时 必须reload 重新加载,否则不生效。

Linux下轻松理解防火墙的工作原理及相关设置(三)firewalld服务、包括Direct Rules 和Rich Rules (地址伪装和转发)相关推荐

  1. Linux下PHP开发之旅-2.开发环境相关设置探索

    一.默认目录在哪儿? 开始时面对该xampp集成开发环境的相关配置有点不知所错,于是便先想着找httpd.conf,通过该文件,对该集成环境的配置文件关系有了大致了解,具体操作如下; cd /opt/ ...

  2. 深入理解防火墙的工作原理

    一.防火墙基本原理 防火墙的基本原理,主要从安全区域.安全策略.会话表.server-map四个方面说起. 安全区域 1.什么是安全区域 安全区域是防火墙中重要的概念,防火墙可以将不同的接口划分到不同 ...

  3. php service原理,轻松搞懂WebService工作原理

    用更简单的方式给大家谈谈WebService,让你更快更容易理解,希望对初学者有所帮助. WebService是基于网络的.分布式的模块化组件. 我们直接来看WebService的一个简易工作流程: ...

  4. [diango]理解django视图工作原理

    前言:正确理解django视图view,模型model,模板的概念及其之间的关联关系,才能快速学习并上手使用django制作网页 本文主要讲解自己在学习django后对视图view的理解 在进入正文之 ...

  5. linux充当防火墙,Linux下主机充当防火墙的巧妙应用之iptables!.doc

    Linux下主机充当防火墙的巧妙应用之iptables! Linux下主机充当防火墙的巧妙应用之iptables! 实验综合拓扑图: 注意事项:防火墙由Red Hat Linux 5.4 版本的机器充 ...

  6. [react] 简要描述下你知道的react工作原理是什么?

    [react] 简要描述下你知道的react工作原理是什么? 我理解的核心部分: 通过虚拟DOM表达真实DOM 通过数据驱动更新虚拟DOM进而更新真实DOM(MVVM) 有一套完整并且合理的 DOM ...

  7. Linux完全清除防火墙策略,linux下的软件防火墙iptables——规则的查看与清除、定义默认策略,...

    linux下的软件防火墙iptables--规则的查看与清除.定义默认策略软件防火墙IPTABLES --规则在Linux下查看和清除,定义默认策略,防火墙意味着用户限制某些ip或用户对其主机的访问. ...

  8. linux通过无线网卡上网,在Kubuntu Linux下轻松使用无线上网卡

    评论 # re: 在Kubuntu Linux下轻松使用无线上网卡 2008-10-13 15:25 michel 我没有用过这个东西 不过这些日子很像用 我的笔记本是T型卡 不知道能不能在linux ...

  9. eja智能压力变送器工作原理_如何理解智能压力变送器工作原理及功能介绍

    如何理解智能压力变送器工作原理及功能介绍 智能压力变送器一般是由传感器.微处理器.存储器及模数.数模转换器组成.传感器用来检测被测量的信号,其所用材料因厂家而异.横河EJA为硅谐振式,把被测参数转换为 ...

最新文章

  1. [转]slf4j + log4j原理实现及源码分析
  2. 使用OpenCV检测图像中的矩形
  3. android 界面长按,Android 主界面长按创建快捷方式
  4. jquery.js把我的时间修改了为什么?_电气老手在PLC程序调试修改时的几个必备小窍门,看你知道几个?...
  5. 第二节:简易安装 和 快速入门Vue.js
  6. mysql 分库分表 后怎么操作,MySQL要分表分库怎么进行数据切分?
  7. MySQL存储过程之查询受影响的行数与查询到的行数
  8. 2018中国大学生程序设计竞赛-网络选拔赛题解
  9. 上帝视角Hbase二级索引方案全解析
  10. SpringBoot接入微信公众号模板消息推送
  11. RFM 客户价值分析
  12. Java char类型介绍
  13. 数组名arr与arr之间的关系
  14. spry提示信息设置html,CSS教程:12.4 借助于Spry实现折叠面板
  15. 电动除草机驱动方案设计开发
  16. 《教练型管理者》读书笔记-第1篇 【教练原则】
  17. 无线蓄电池测试系统管理软件,电池管理系统(BMS)自动化测试平台
  18. Codeforces-Edu6-B. Grandfather Dovlet’s calculator
  19. 数码相机照片丢失怎么恢复?数码照片恢复只需2步
  20. JavaScript——this关键字

热门文章

  1. 网络安全滑动标尺模型
  2. suid(特殊权限位)提权
  3. mac kafka 环境搭建
  4. DLNA 共享多媒体电脑到电视(Win11)
  5. 部落冲突自动采集资源源码
  6. 隐私号码怎么拨打?拨打的流程有哪些?
  7. android开发实现头像上传功能
  8. 使用Python进行面部合成
  9. KubeEdge边缘计算在顺丰科技工业物联网中的实践
  10. Oracle 如何删除表空间