Linux——firewalld防火墙(二)

一、firewalld高级配置 

1、IP地址伪装

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

2、端口转发

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

二、firewalld-cmd高级配置

1、firewalld中理解直接规则

        firewalld提供了“direct interface”(直接接口),它允许管理员手动编写的 iptables,ip6tables 和ebtables规则插入firewalld管理的区域中.适用于应用程序,而不是用户。如果对 iptables 不太熟,不建议使用直接接口,可能会无意中导致防火墙被入侵,firewalld保持对所增加项目的追踪,所以它还能质询firewalld和发现使用直接端口模式的程序造成的更改。直接端口通过firewall-cmd 命令中的---direct选项实现。除非将直接规则显式插入firewalld管理的区域,否则将首先解析直接规则.然后解析其他firewalld规则。执行以下命令即可添加一些直接规则以将某个IP范围列入黑名单。

[root@checker ~]# firewall-cmd --add-rich-rule='rule protocol value=ah accept'
success
[root@checker ~]# firewall-cmd --direct --permanent --add-chain ipv4 raw blacklist
success
[root@checker ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw PREROUTING 0 -s 192.168.0.0/24 -j blacklist
success
[root@checker ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist 0 -m limit --limit 1/min -j LOG --log-prefix "blacklisted"
success
[root@checker ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist 1 -j DROP
success

2、使用富语言 

        firewalld 的富语言(rich language〉提供了一种不需要了解iptables语法的通过高级语言配置复杂Pv4和IPv6防火墙规则的机制.为管理员提供了一种表达性语言,通过这种语言可以表达 firewalld的基本语法中未涵盖的自定义防火墙规则。

        富规则可用于表达基本的允许/拒绝规则,也可以用于配置记录〈面向 syslog 和 auditd),以及端口转发、伪装和速率限制。下面是表达富规则的基本语法

3、理解富规则命令

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

source:限制源P地址.源地址可以是一个IPv4、Pv6地址或者一个网络地址段

destination:限制目标地址.目标地址使用跟源地址相同的语法。
element:要素.该项只能是以下几种要素类型之一:service、port , protocol、icmp一block、masquerade和forward--port 

service:服务名称是firewalld提供的其中一种服务。要获得支持的服务列表,输入以下命令:firewall-cmd ---get-services 。如果一个服务提供了一个目标地址,它和规则中的目标地址冲突.则会导致一个错误。命令格式为:service nane-service_name。

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

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

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

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

forward-port:将指定的 TCP或UDP协议的数据包转发到本机的其他端口,或另一台机器,或另-台机器上的其他端口。port和 to-port可以是一个单独的端口数字.或一个端口范围。而目的地址是一个简单的Р地址。

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时,所有数据包会被丢弃.并且不会向发起端发送任何信息。

4、规则配置举例

(1)为认证报头协议AH使用新的IPv4

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

(2)允许新的IPv4和Pv6连接FTP、并使用审核每分钟记录一次。

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

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

[root@checker ~]# 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'
success

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

[root@checker ~]# 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'
success
[root@checker ~]# firewall-cmd --add-rich-rule='rule family="ipv6" service name="radius" accept'
success

(5)将源192.168.2.2地址加入白名单,以允许来自这个源地址的所有连接。

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

(6)拒绝来自public区域中P地址192.168,0.11的所有流量。

[root@checker ~]# firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.11/32" reject'
success

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

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

(8)在192.168.1.0/24子网的dmz区域中,接收端口7900~7905的所有TCP包。

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

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

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

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

[root@checker ~]# 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
success



 


 


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(26)Linux 进程通信之共享内存(共享储存空间)

共享内存是System V版本的最后一个进程间通信方式。共享内存&#xff0c;顾名思义就是允许两个不相关的进程访问同一个逻辑内存&#xff0c;共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一…

6.4、SDN在云数据中心的应用案例分析

云数据中心中的虚拟子网包含网关和IP网段,IP分配给各个服务器,服务器间能够互相通信或通过网关访问外部网络。 在SDN云数据中心内,用户可以随时订购任意网段的虚拟子网,而且这些子网是可以在不同用户之间复用的,也就是说,不同用户可以使用相同的私有网段。 SDN云数据中心…

Matlab 字符识别OCR实验

Matlab 字符识别实验 图像来源于屏幕截图&#xff0c;要求黑底白字。数据来源是任意二进制文件&#xff0c;内容以16进制打印输出&#xff0c;0-9a-f’字符被16个可打印字符替代&#xff0c;这些替代字符经过挑选&#xff0c;使其相对容易被识别。 第一步进行线分割和字符分割…

从“唯分论”到“过程评价” 助力教育高质量发展

近日,为推动教育评价改革工作高质量发展,山东省委办公厅、省政府办公厅印发《关于进一步推进教育评价改革工作的若干措施》,从学校评价改革、学生评价改革等6方面共提出25条举措,对教育评价改革进行了全面部署。 教育评价改革是教育改革的“牛鼻子”,为教育发展提供了明确的方…

CSS 中的伪装大师:伪类和伪元素的奇妙世界

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

开源大数据集群部署(四)Freeipa部署(kerberos+ldap)

作者&#xff1a;櫰木 1、 FreeIPA介绍 Kerberos协议只是一种协议标准的框架&#xff0c;而MIT Kerberos则是实现了该协议的认证服务&#xff0c;是Kerberos的物理载体。将它与Hadoop服务进行集成便能够很好地解决安全性不足的问题。 除了需要安装MIT Kerberos之外&#xff0…

调查问卷设计指南:提升数据收集与分析效果的实用技巧

想要做好一份调查问卷要明确哪几点&#xff1f; 一、问卷三要素 1、问卷主题 我们使用调查问卷法进行调查的时候&#xff0c;首先要明确主题是什么&#xff0c;是关于人员满意度调查、人员喜好类型调查还是其他主题。明确主题后我们才可以进行接下来的动作。 2、调查人群 明确问…

互联网 HR 眼中的好简历是什么样子的?

HR浏览一份简历也就25秒左右&#xff0c;如果你连「好简历」都没有&#xff0c;怎么能找到好工作呢&#xff1f; 如果你不懂得如何在简历上展示自己&#xff0c;或者觉得怎么改简历都不出彩&#xff0c;那请你一定仔细读完。 互联网运营个人简历范文> 男 22 本科 AI简历…

数据类型、数据类型转换(Java)

一、数据类型的分类 1. byte&#xff1a;1字节&#xff0c;-128~127 2. short&#xff1a;2字节&#xff0c;-32768~32767 3. int&#xff1a;4字节 默认整型 4. long&#xff1a;8字节 注意&#xff1a;随便写一个整型字面量会默认是整型的&#xff0c;所以我们在写一个…

Docker 安装部署

1、Docker 安装 ① 卸载docker&#xff0c;清空之前的docker文件 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce…

挑选富集分析结果 enrichments

#2.2挑选term---selected_clusterenrichenrichmets[grepl(pattern "cilium|matrix|excular|BMP|inflamm|development|muscle|vaso|pulmonary|alveoli",x enrichmets$Description),]head(selected_clusterenrich) distinct(selected_clusterenrich)# remove duplica…

2. Presto应用

该笔记来源于网络&#xff0c;仅用于搜索学习&#xff0c;不保证所有内容正确。文章目录 1、Presto安装使用2、事件分析3、漏斗分析4、漏斗分析UDAF开发开发UDF插件开发UDAF插件 5、漏斗测试 1、Presto安装使用 参考官方文档&#xff1a;https://prestodb.io/docs/current/ P…

如何有效提高矢量网络分析仪的动态范围

动态范围是网络分析仪&#xff08;VNA&#xff09;接收机的最大输入功率与最小可测量功率&#xff08;本底噪声&#xff09;之间的差值&#xff0c;如图所示&#xff0c;要使测量有效&#xff0c;输入信号必须在这些边界内。 如果需要测量信号幅度非常大的变化&#xff0c;例如…

构建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的Nginx1.24.0的RPM包

本文适用&#xff1a;rhel8系列&#xff0c;或同类系统(CentOS8,AlmaLinux8,RockyLinux8等) 文档形成时期&#xff1a;2022-2023年 因系统版本不同&#xff0c;构建部署应略有差异&#xff0c;但本文未做细分&#xff0c;对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人…

SpringBoot 引入分页插件 PageHelper

官网 https://pagehelper.github.io/docs/howtouse/ 引入步骤 第1步&#xff1a;引入依赖 <!--分页插件--> <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.3.2</ver…

GBASE南大通用数据库如何检索单行

SELECT 语句返回的行集是它的活动集。单个 SELECT 语句返回单个行。您可使用嵌入式 SELECT 语句来从数据库将单个行检索到主变量内。然而&#xff0c;当 SELECT 语句返回多行数 据时&#xff0c;程序必须使用游标来一次检索一行。在 检索多行 中讨论“多行”选择操作。 要检索单…

STL——stack容器和queue容器详解

目录 &#x1f4a1;stack &#x1f4a1;基本概念 常用接口 &#x1f4a1;queue &#x1f4a1;基本概念 &#x1f4a1;常用接口 &#x1f4a1;stack &#x1f4a1;基本概念 栈&#xff08;stack&#xff09;&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端…

【Web】forward 和 redirect 的区别

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Web ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 Forward&#xff08;转发&#xff09;&#xff1a; Redirect&#xff08;重定向&#xff09;&#xff1a; 区别总结&#xff1a; …

NeRF 其一:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

NeRF 其一&#xff1a;NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 1. 什么是神经辐射场2. 论文简述3. 体渲染3.1 视线3.2 体渲染-连续3.3 体渲染-离散 4. 神经网络与位置编码4.1 神经网络4.2 视线角度为什么需要视角向量 d \boldsymbol{d} d&…

使用Pygame库来显示一个简单的窗口,并绘制一些基本的形状和文本

import pygame from pygame.locals import *# 初始化pygame库 pygame.init()# 创建窗口并设置大小和标题 screen_width 800 screen_height 600 screen pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("My Pygame")# 定义颜色…