centos7 firewall-cmd 用活firewalld防火墙中的zone
原文:http://www.excelib.com/article/290/show/
firewalld中zone的含义学生前面已经给大家介绍过了,说白了一个zone就是一套规则集。可是什么时候该用哪个zone、每个zone中的规则具体是怎么设置呢?下面学生就来给大家详细讲解。
名词解释
在具体介绍zone之前学生先给大家介绍几个相关的名词,因为如果不理解这几个名词zone就无从入手。
target:目标,这个前面学生也已经给大家介绍过了,可以理解为默认行为,有四个可选值:default、ACCEPT、%%REJECT%%、DROP,如果不设置默认为default
service:这个在前面学生已经给大家解释过了,他表示一个服务
port:端口,使用port可以不通过service而直接对端口进行设置
interface:接口,可以理解为网卡
source:源地址,可以是ip地址也可以是ip地址段
icmp-block:icmp报文阻塞,可以按照icmp类型进行设置
masquerade:ip地址伪装,也就是按照源网卡地址进行NAT转发
forward-port:端口转发
rule:自定义规则
哪个zone在起作用
我们知道每个zone就是一套规则集,但是有那么多zone,对于一个具体的请求来说应该使用哪个zone(哪套规则)来处理呢?这个问题至关重要,如果这点不弄明白其他的都是空中楼阁,即使规则设置的再好,不知道怎样用、在哪里用也不行。
对于一个接受到的请求具体使用哪个zone,firewalld是通过三种方法来判断的:
1、source,也就是源地址
2、interface,接收请求的网卡
3、firewalld.conf中配置的默认zone
这三个的优先级按顺序依次降低,也就是说如果按照source可以找到就不会再按interface去查找,如果前两个都找不到才会使用第三个,也就是学生在前面给大家讲过的在firewalld.conf中配置的默认zone。
好了,我们现在知道其原理了,下面学生就给大家介绍每一种方式所对应的配置方法。
配置source
source是在zone的xml文件中配置的,其格式为
1 2 3 |
|
只要我们将source节点放入相应的zone配置文件中就可以了,节点的address属性就是源地址,不过我们要注意相同的source节点只可以在一个zone中进行配置,也就是说同一个源地址只能对于一个zone,另外,直接编辑xml文件之后还需要reload才可以起作用,这些学生前面已经给大家讲过,这里就不再重述了。
另外,我们当然也可以使用firewall-cmd命令进行配置,这里主要有五个相关命令(参数)
1 2 3 4 5 |
|
我们分别来介绍一下
--list-sources:用于列出指定zone的所有绑定的source地址
--query-source:用于查询指定zone是否跟指定source地址进行了绑定
--add-source:用于将一个source地址绑定到指定的zone(只可绑定一次,第二次绑定到不同的zone会报错)
--change-source:用于改变source地址所绑定的zone,如果原来没有绑定则进行绑定,这样就跟--add-source的作用一样了
--remove-source:用于删除source地址跟zone的绑定
另外,大家可以看到上面的命令中有两个可选参数:--permanent和--zone,--permanent学生在前面已经给大家介绍过了,表示是否存储到配置文件中(如果存储到配置文件中这不会立即生效),--zone用于指定所要设置的zone,如果不指定则使用默认zone。
我们来看个例子
1 |
|
这样就可以将1.2.3.4绑定到drop这个zone中了,如果没有修改过drop规则的话所有来自1.2.3.4这个ip的连接将会被drop。
至于什么时候使用add什么时候使用change,如果我们就是想将某源地址绑定到指定的zone那么最好使用change,而如果想在源地址没绑定的时候进行绑定,如果已经绑定过则不绑定那么就使用add。
配置interface
interface有两个可以配置的位置:1、zone所对应的xml配置文件2、网卡配置文件(也就是ifcfg-*文件)。
第一种配置跟source大同小异,学生这里就不再细述了,interface在zone配置文件中的节点为
1 2 3 |
|
相关的firewall-cmd命令为
1 2 3 4 5 |
|
另外,我们还可以在网卡配置文件中进行配置,比如可以在
ifcfg-em1文件中添加下面的配置
1 |
|
这行配置就相当于下面的命令
1 |
|
这样配置之后来自em1的连接就会使用public这个zone进行管理(如果source匹配了其他的zone除外)。
配置默认zone
默认zone的配置学生前面已经给大家介绍过了,他是通过firewalld.conf配置文件的DefaultZone配置项来配置的,当然也可以使用firewall-cmd命令来配置
1 |
|
另外还可以通过--get-default-zone来获取默认zone的值。
查看当前起作用的zone
我们可以使用下面的命令来查看当前所有起作用的zone
1 |
|
这个命令会返回所有绑定了source、interface以及默认的zone,并会说明在什么情况下使用。
反向查询
firewalld还给我们提供了反向查询的命令,也就是根据source或者interface查询所对应的zone,其命令如下
1 2 |
|
有了这两个命令我们就可以检查我们的设置是否正确了。
好了,现在大家就明白了一个接收到的请求具体使用哪个zone了,那么zone具体的规则怎么配置呢?下面学生就来给大家详细介绍。
zone规则配置
target
zone规则中首先最重要的是target的设置,他默认可以取四个值:default、ACCEPT、%%REJECT%%、DROP,其含义很容易理解,这里学生就不介绍了,下面来说怎么配置。
在xml文件中target是zone节点的一个属性,比如drop.xml中为
1 |
|
block.xml中为
1 |
|
如果使用firewall-cmd命令来操作,命令如下
1 2 |
|
我们要特别注意,这里的--permanent不是可选的,也就是说使用firewall-cmd命令也不可以让他直接生效,也需要reload才可以。
service
service学生在前面也已经给大家介绍过了,他的配置和我们上面所介绍的source基本相同,只不过同一个service可以配置到多个不同的zone中,当然也就不需要--change命令了,他在zone配置文件中的节点为
1 2 3 |
|
相应的配置命令为
1 2 3 4 |
|
具体每个命令的含义大家对照上面的source很容易就理解了,不过这里的--add命令中多了一个--timeout选项,学生这里给大家介绍一下。
--add-service中的--timeout的含义是这样的:添加一个服务,但是不是一直生效而是生效一段时间,过期之后自动删除。
这个选项非常有用,比如我们想暂时开放一个端口进行一些特殊的操作(比如远程调试),等处理完成后再关闭,不过有时候我们处理完之后就忘记关闭了,而现在的--timeout选项就可以帮我们很好地解决这个问题,我们在打开的时候就可以直接设置一个时间,到时间之后他自动就可以关闭了。另外,这个参数还有更有用的用法,学生会在下面给大家讲到。当然--timeout和--permanent是不可以一起使用的。
另外,这里我们主要讲的是怎么在zone中使用service,而service自己的配置学生下节再给大家详细介绍。
port
port是直接对端口的操作,他和service非常相似,所以这里也不详细介绍了,port在zone中的配置节点为
1 2 3 |
|
相应命令为
1 2 3 4 |
|
icmp-block
icmp-block是按照icmp的类型进行设置阻塞,比如我们不想接受ping报文就可以使用下面的命令来设置
1 |
|
当然,如果需要长久保存就需要加--permanent选项,不过那样就需要reload才能生效。
icmp-block在zone配置文件中的节点为
1 2 3 |
|
相应操作命令为
1 2 3 4 |
|
masquerade
masquerade大家应该都比较熟悉,其作用就是ip地址伪装,也就是NAT转发中的一种,具体处理方式是将接收到的请求的源地址设置为转发请求网卡的地址,这在路由器等相关设备中非常重要,比如大家很多都使用的是路由器连接的局域网,而想上互联网就得将我们的ip地址给修改一下,要不大家都是192.168.1.XXX的内网地址,那请求怎么能正确返回呢?所以在路由器中将请求实际发送到互联网的时候就会将请求的源地址设置为路由器的外网地址,这样请求就能正确地返回给路由器了,然后路由器再根据记录返回给我们发送请求的主机了,这就是masquerade。
其设置非常简单,在zone中是一个没有参数(属性)的节点
1 2 3 |
|
操作命令为
1 2 3 |
|
forward-port
这项也非常容易理解,他是进行端口转发的,比如我们要将在80端口接收到tcp请求转发到8080端口可以使用下面的命令
1 |
|
forward-port还支持范围转发,比如我们还可以将80到85端口的所有请求都转发到8080端口,这时只需要将上面命令中的port修改为80-85即可。
在zone配置文件中节点如下
1 2 3 |
|
相关操作命令如下
1 2 3 4 |
|
rule
rule可以用来定义一条复杂的规则,其在zone配置文件中的节点定义如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
可以看到这里一条rule的配置的配置项非常多,比zone本身还多出了destination、log、audit等配置项。其实这里的rule就相当于使用iptables时的一条规则。rule的操作命令如下
1 2 3 4 |
|
这里的参数'rule'代表一条规则语句,语句结构就是直接按照上面学生给大家的节点结构去掉尖括号来书写就可以了,比如要设置地址为1.2.3.4的source就可以写成source address="1.2.3.4",也就是直接写标签名,然后跟着写属性就可以了,我们来看个例子
1 |
|
这条规则就会将1.2.3.4这个源地址的连接全部给drop掉。
使用rule结合--timeout我们可以实现一些非常好玩和有用的功能,比如我们可以写个自动化脚本,当发现有异常的连接时就可以添加一条rule将其相应的地址drop掉,而且还可以使用--timeout给设置个时间段,过了之后再自动开放!
centos7 firewall-cmd 用活firewalld防火墙中的zone相关推荐
- CentOS7、REHL7的firewalld防火墙使用简单说明
title: CentOS7.REHL7的firewalld防火墙使用简单说明 categories: Linux tags: - Linux timezone: Asia/Shanghai date ...
- Iptables与Firewalld防火墙
转载来自:http://www.linuxprobe.com/chapter-08.html tcp,udp都是网络传输协议,承载数据包传输的.tcp是可靠传输,有3次握手机制保证数据传输的可靠性.如 ...
- RH254-第二十六节-iptables和firewalld防火墙
防火墙管理工具 保证数据的安全性是继可用性之后最为重要的一项工作,防火墙技术作为公网与内网之间的保护屏障,起着至关重要的作用.面对同学们普遍不了解在红帽RHEL7系统中新旧两款防火墙的差异,认识在红帽 ...
- iptables规则备份恢复,firewalld的9个zone
2019独角兽企业重金招聘Python工程师标准>>> 10月29日任务 10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 fir ...
- centos7 firewall 防火墙 命令
如果你的系统上没有安装使用命令安装 #yum install firewalld //安装firewalld 防火墙 开启服务 # systemctl start firewalld.service ...
- 理论+实操: linux中firewalld防火墙基础讲解(转载)
前言 firewalld概述.firewalld 中的d代表服务 firewalld 和 iptables 的关系 firewalld 网络区域 firewalld 防火墙的配置方法 firewall ...
- Linux运维:CentOS7在防火墙中添加访问端口?
文章目录 1.查看mysql启动状态命令 2. 查看防火墙状态命令 2.1.开启防火墙命令 2.2.关闭防火墙命令 2.3.查看防火墙开放端口命令 2.4.向防火墙中添加端口命令 2.5.重启防火墙命 ...
- centos7 防火墙_Linux系统安全Centos 7的Firewalld防火墙基础
一.Linux防火墙的基础 Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实时过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙).Linux系统的防火墙体系基于内核共存:fire ...
- Firewalld防火墙 常见命令
1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disabl ...
最新文章
- 吴恩达老师深度学习视频课笔记:逻辑回归公式推导及C++实现
- LeetCode Gray Code 格雷码
- 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery )
- Git客户端(Windows系统)的使用(Putty)(转)
- 【LeetCode笔记】22.括号生成(Java、DFS回溯、剪枝、括号)
- php dom 丢失内容,PHP DOMDocument缺失
- Linux之深入理解anaconda使用
- NXP S32K RTC模块手册中文
- 如何在 Mac 上安装新字体?
- Ubuntu下Hadoop的安装和配置
- MAC编译OpenJDK8:详细步骤及问题解决办法(含独家解决办法)
- Oracle 逗号分割的字符串转换为可放入in的语句
- 《HBase权威指南》读书笔记:第一章 简介
- JavaScript 高级程序设计(第3版)
- HLS视频流 H265解码问题处理
- MATLAB批量改变图片大小
- 计算两个向量的逆时针夹角
- 貌似在ubuntu下架了个web服务器,上传上次的flex调色板
- 计算机教师知识老化,【计算机教学论文】技校计算机教学分析(共2800字)
- 图片过大怎么办?如何把图片压缩到最小
热门文章
- S7-300/400 系统 Profibus DP 通讯故障诊断实用方
- cf706C(dp)
- Script标签与访问HTML页面
- Java面向对象——基础2 封装、继承、多态
- 《操作系统》——第一章 计算机系统概述
- 暴力枚举——三连击(洛谷 P1618)
- java jdom进行xml的增删改差_java使用DOM对XML文档进行增删改查操作实例代码
- 专访丨HashData创始人简丽荣:云原生与大数据时代,湖仓一体代表了未来
- PostgreSQL如何使用PLJava支持Java编程
- 升级到Oracle 19c:你不可不知的十大SQL问题(上)