firewall防火墙(二)

一、IP伪装与端口转发:

当用户数据包经过NAT设备时.NAT设备将源地址替换为公网P地址.而返回的数据包就可以被路由,NAT技术一般都是在企业边界路由器或者防火墙上来配置.
Firewaild支持两种类型的NAT;P地址伪装和端口转发.

1.1 IP地址伪装:

地址伪装〈masquerade):通过地址伪装,NAT设备将经过设备的包转发到指定接收方.同时将通过的数据包的源地址更改为其自己的接口地址。当返回的数据包到达时,会将目的地址修改为原始主机的地址并做路由。地址伪装可以实现局域网多个地址共享单一公网地址上网。类似于NAT技术中的端口多路复用(pat),IP地址伪装仅支持ipv4,不支持ipv6.

1.2 端口转发:

端口转发(Forward-port):也称为目的地址转换或端口映射.通过端口转发.将指定Р地址及端口的流量转发到相同计算机.上的不同端口,或不同计算机上的端口。企业内网的服务器-般都采用私网地址,可以通过端口转发将使用私网地址的服务器发布到公网,以便让互联网用户访问。例如,当接收互联网用户的HTTP请求时,网关服务器判断数据包的目标地址与目标端口,一旦匹配指定规则.则将其目标地址修改为内网真正的服务器地址.从而建立有效连接。

二、firewall-cmd高级配置:

2.1 使用富语言:

firewalld的富语言(rich language)提供了一种不需要了解iptables语法的通过高级语言配置复杂Pv4和IPv6 防火墙规则的机制.为管理员提供了一种表达性语言,通过这种语言可以表达 firewalld的基本语法中未涵盖的自定义防火墙规则。例如.仅允许从单个P地址(而非通过某个区域路由的所有P地址)连接到服务.
富规则可用于表达基本的允许/拒绝规则,也可以用于配置记录〈面向syslog 和 auditd),以及端口转发、伪装和速率限制。下面是表达富规则的基本语法:

 规则的每个单一元素都能够以option=-value的形式来采用附加参数。

1)规则排序
一旦向某个区域(一般是指防火墙〉中添加了多个规则,规则的排序会在很大程度上影响防火墙的行为。对于所有的区域.区域内的规则的基本排序是相同的。如果区域中的任何规则与包均不匹配,通常会拒绝该包,但是区域可能具有不同的默认值。例如,可信区域(trusted)将接收任何不匹配的包。此外,在匹配某个记录规则后.将继续正常处理包。
直接规则是个例外。大部分直接规则将首先进行解析.然后由firewalld进行其他处理,但是直接规则语法允许管理员在任何区域中的任何位置插入任何规则.

2)测试和调试
为了便于测试和调试.几乎所有规则都可以与超时一起添加到运行时配置。当包含超时的规则添加到防火墙时,计时器便针对该规则开始倒计时,一旦规则的计时器达到О秒,便从运行时配置中删除该规则.
在使用远程防火墙时.使用超时会是一种极其有用的工具,特别是在测试更复杂的规则集时.如果规则有效.则管理员可以再次添加该规则;如果规则没有按照预期运行.甚至可能将管理员锁定而使其无法进入系统.那么规则将被自动删除.以允许管理员可以继续工作.
通过在启用规则的firewall-cmd命令的结尾追加选项-—timeout=<TMEINSECONDS>,可向运行时规则中添加超时.

2.2理解富规则:

firewall-cmd有四个选项可以用于处理富规则.所有这些选项都可以同常规的--permanent或-—zone=<ZONE>选项组合使用.

任何已配置的富规则都会显示在 firewall-cmd --list-all和firewall-cmd ---list-all-zones 的输出结果中。具体语法解释如下所示.
source:限制源Р地址.源地址可以是一个IPv4、IPv6地址或者一个网络地址段.destination:限制目标地址.目标地址使用跟源地址相同的语法。
elenent:要素.该项只能是以下几种要素类型之一;service、port , protocol、icmp-block masquerade和forward-port .
service:服务名称是firewaild 提供的其中一种服务。要获得支持的服务列表,输入以下命令:firewall-cmd —--get-services 。如果一个服务提供了一个目标地址,它和规则中的目标地址冲突.则会导致一个错误。命令格式为:service name=service_narne

port:端口可以是一个独立端口数字,或者是端口范围.如5060~5062。协议为TCP或uDP、命令格式为:port port=number_or _range protocol=protocol

protocol:协议.可以是一个协议ID号,或者一个协议名。查询可用协议,请查阅/etc/ protocols。命令格式为:protocol value=protocol_name_or_lD

icmp-block:阻断一个或多个ICMP类型.要获得支持的ICMP类型列表.输入firewall-and--get-icmptypes命令即可查看。命令格式为:icmp-block neme=icmptype_name

masquerade:规则里的P伪装.用源地址而不是目的地址来把伪装限制在一个范围内。

forward-port:将指定的TCP或UDP协议的数据包转发到本机的其他端口,或另一台机器,或另一-台机器上的其他端口。port 和 to-port可以是一个单独的端口数字.或一个端口范围。而目的地址是一个简单的P地址.命令格式为:forward-portport=number_or_range protocol=protocol to-port=number _or_range to-addr=address

log:注册有内核日志的连接请求到规则中,如系统日志。可以定义一个前缀文本把日志信息作为前缀加入。日志等级可以是emerg. alert、 crit、error,warning.notice、info 或者debug 中的一个。可以选择日志的用法,按以下方式限制日志:log [prefix=prefix text][level=log level] limit value=rate/duration。持续时间的单位为s、 m、 h、 d、s表示秒.m表示分钟, h表示小时, d表示天。最大限定值是1/d(每天最多有一条日志进入)。

audit:审核.审核类型可以是accept、reject或drop 中的--种,但不能在 audit命令后指定.因为审核类型将会从规则动作中自动收集,审核不包含自身参数,但可以选择性地增加限制。审核的使用是可选择的。

acceptlreject|drop:可以是accept、reject或drop 中的一个行为。命令格式为:accept / reject[type=reject type] / drop。指定accept时.所有新的连接请求都将被允许.指定reject时.连接将被拒绝.发起端将接到一个拒绝信息。指定 drop时,所有数据包会被丢弃.并且不会向发起端发送任何信息。

2.3规则配置举例:

为认证报头协议AH使用新的IPv4和IPv6连接.

[root@localhost ~]# firewall-cmd --add-rich-rule='rule protocol value=ah accept'

 允许新的IPv4和Pv6连接FTP.并使用审核每分钟记录一次.

[root@localhost ~]# firewall-cmd --add-rich-rule='rule service name=ftp log limit value=1/m audit accept'

允许来自192.168,0,0/24地址的TFTP协议的IPv4 连接.并且使用系统日志每分钟记录一次。

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.0.0/24 service name=tftp log prefix=tftp level=info limit value=1/m accept'

为 RADUS协议拒绝所有来自1∶2∶3∶4∶6:的新IPv6连接.日志前缀为“dns”,级别为“info”,并每分钟最多记录3次。接受来自其他发起端新的IPv6连接。

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv6 source address=1:2:3:4:6:: service name=radius log prefix=dns level=info limit value=3/m reject'[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv6 service name=radius accept'

将源192.168,2.2地址加入白名单,以允许来自这个源地址的所有连接.

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.2.2 accept'

 拒绝来自public区域中职地址192.168,0.11的所有流量。

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.0.11/32 reject'

丢弃来自默认区域中任何位置的所有传入的ipsec esp协议包.

[root@localhost ~]# firewall-cmd --add-rich-rule='rule protocol value=esp drop'

 在192.168.1 ,0/24子网的dmz区域中,接收端口7900~7905的所有TCP包。

[root@localhost ~]# firewall-cmd --zone=dmz --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 port port=7900-7905 protocol=tcp accept'

接收从 work区域到SSH的新连接.以notice级别且每分钟最多三条消息的方式将新连接记录到 syslog

[root@localhost ~]# firewall-cmd --zone=work --add-rich-rule='rule service name=ssh log prefix=ssh level=info limit value=3/m accept'

在接下来的5min 内,拒绝从默认区域中的子网192.168,2.0/24到DNS的新连接.并且拒绝的连接将记录到audit系统.且每小时最多一条消息.

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.2.0/24 service name=dns audit limit value=1/h reject' --timeout=300




 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/610915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客网-JAVA(错题集)-1

1 Java的抽象类和接口不可以进行实例化 2 知识点&#xff1a; 1、不论如何 finally里面的代码是一定会执行的 2、finally里面的代码块比return早执行 3、多个return是按顺序执行的&#xff0c;只执行一次 public abstract class Test {public static void main(String[] ar…

Spring配置类以及扫描过程源码解析

书接上文 文章目录 一、 拾遗1. 回顾2. 源码分析 二、 配置类扫描源码分析1. 源码分析2. BeanDefinition覆盖问题3. full配置类和lite配置类的区别 一、 拾遗 1. 回顾 前面我们分析了Spring框架器启动过程要做的事情&#xff0c;着重分析了ApplicationContext的refresh方法。…

乐鑫ESP32与SD NAND的协同应用|MK-米客方德

SD NAND在乐鑫ESP32上的作用 SD NAND是贴片式TF卡&#xff0c;可以用于存储数据&#xff0c;比如视频图片或者代码 乐鑫ESP32一颗具有双核处理器的嵌入式系统芯片&#xff0c;有丰富的外设接口&#xff0c;包括Wi-Fi、蓝牙、UART、SPI、I2C等&#xff0c;使其适用于各种物联网…

加工零件的题解

目录 原题描述&#xff1a; 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 提示 题目大意&#xff1a; 主要思路&#xff1a; 但是我们怎么才能判断出x走到1时L是偶数还是奇数呢&#xff1f; 初始化&#xff1a;…

vim编辑器

1.vi编辑器介绍 vim是全屏幕纯屏幕纯文本编辑器, 是vi编辑器的增强版. 可以利用别名让输入vi命令时, 实际上执行vim编辑器, 例如: alias vi "vim" #定义别名 这样定义的别名是临时生效, 如果需要永久生效, 请放入环境变量配置文件(~/.bashrc) 2.vim基本的使用 …

如何压缩照片?分享4种全面的方法!

随着智能手机的普及&#xff0c;我们每个人都成为了摄影爱好者。然而&#xff0c;随着拍摄的照片越来越多&#xff0c;手机内存也逐渐变得捉襟见肘。那么&#xff0c;如何有效地压缩照片&#xff0c;释放手机内存呢&#xff1f;今天&#xff0c;我们就来为你揭秘那些可以轻松压…

前端浏览器滚动条炫酷美化

一、文章引导 #mermaid-svg-2qRndEP8CFzlUhap {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2qRndEP8CFzlUhap .error-icon{fill:#552222;}#mermaid-svg-2qRndEP8CFzlUhap .error-text{fill:#552222;stroke:#55222…

多模态+SNN个人学习历程和心得

祖传开头 这次想写一个一直深藏心中的研究方向&#xff0c;那就是多模态方向。其实当初在实验室那会儿&#xff0c;最先接触的就是多模态的工作&#xff0c;因此这是我科研之路的起点。只不过&#xff0c;后来经历了一些波折&#xff0c;导致个人没有往这个方向深挖&#xff0…

PayPal账号被关联!跨境卖家如何自救?关于PayPal防关联你不得不知道的事!

很多跨境卖家的支付平台都会选择 PayPal&#xff0c;但是 PayPal 账号在使用过程中也经常会遇见关联&#xff0c;风控等问题&#xff0c;这时候为了保护我们的 PayPal 账号安全&#xff0c;防关联就很重要。今天龙哥就分享一些关于 PayPal 防关联的内容&#xff0c;希望能够帮助…

重新认识canvas,掌握必要的联结密码

查看专栏目录 canvas示例教程100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

C++ continue语句

作用&#xff1a;在循环语句中&#xff0c;跳过本次循环中余下尚未执行的语句&#xff0c;继续执行下一次循环 与break的区别在于&#xff0c;如果把上述continue换位break&#xff0c;则该程序执行到break则会直接退出for循环&#xff0c;不再执行后面的代码和以后的循环。 实…

Web实战丨基于django+html+css+js的电子商务网站

文章目录 写在前面实验目标需求分析实验内容安装依赖库1.登陆界面2.注册界面3.电子商城界面4.其他界面 运行结果写在后面 写在前面 本期内容&#xff1a;基于DjangoHTMLCSSJS的电子商务网站 实验环境&#xff1a; vscode或pycharmpython(3.11.4)django 代码下载地址&#x…

【Kafka-3.x-教程】-【七】Kafka 生产调优、Kafka 压力测试

【Kafka-3.x-教程】专栏&#xff1a; 【Kafka-3.x-教程】-【一】Kafka 概述、Kafka 快速入门 【Kafka-3.x-教程】-【二】Kafka-生产者-Producer 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft 【Kafka-3.x-教程】-【四】Kafka-消费者-Consumer 【Kafka-3.x-教程】-【五…

观成科技-加密C2框架EvilOSX流量分析

工具简介 EvilOSX是一款开源的&#xff0c;由python编写专门为macOS系统设计的C2工具&#xff0c;该工具可以利用自身释放的木马来实现一系列集成功能&#xff0c;如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信&#xff0c;通信内容为特…

蓝凌EIS pdf.aspx 任意文件读取漏洞

漏洞描述&#xff1a; 蓝凌EIS智慧协同平台是一个简单、高效的工作方式专为成长型企业打造的沟通、协同、社交的移动办公平台&#xff0c;覆盖OA、沟通、客户、人事、知识等管理需求&#xff0c;集合了非常丰富的模块&#xff0c;满足组织企业在知识、项目管理系统建设等需求的…

jmeter循环控制器

1.循环控制器 简单粗暴 写几次 循环几次 经常结合自定义变量使用 2.foreach控制器 搭配 变量一起使用的循环 一般变量的值是一个集合或者 是2个及2个以上的内容

[中阶]1月29-2月2晚8点-软件需求设计方法学全程实例剖析

建模方法学包含以下技能&#xff1a; A-业务建模——定位需要改进的目标组织&#xff08;人群或机构&#xff09;以及该组织接下来最需要改进的问题。 B-需求——描述为了改进组织的问题&#xff0c;所引入的信息系统必须具有的表现。 C-分析——提炼为了满足功能需求&#…

《ORANGE’S:一个操作系统的实现》读书笔记(二十七)文件系统(二)

上一篇文章我们记录了如何操作硬盘&#xff0c;并且编写了简单的硬盘驱动程序用于获取一些硬盘的参数。这篇文章就在上一篇文章的基础上记录文件系统&#xff0c;完善硬盘驱动程序。 文件系统 现在我们该仔细考虑如何构建一个文件系统了。这并不是我们第一次接触文件系统&…

python 工作目录 与 脚本所在目录不一致

工作目录&#xff1a;执行脚本的地方 我以为工作目录会是当前执行脚本的目录位置&#xff0c;但其实不是&#xff0c;例如&#xff1a; 图中红色文件为我执行的脚本文件&#xff0c;但是实际的工作目录是PYTHON LEARNING 可以用如下代码查询当前工作目录&#xff1a; import os…

dubbo的springboot集成

1.什么是dubbo&#xff1f; Apache Dubbo 是一款 RPC 服务开发框架&#xff0c;用于解决微服务架构下的服务治理与通信问题&#xff0c;官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力&#xff0c; 利用 Dubbo …