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



 


 


 

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

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

相关文章

Mjdjoureny详细教程

网站 https://gptgod.online/#/register?invite_code5kc4awzinkjcn6cmm1yk6qz9a 使用QQ邮箱登录以后,点击最下面的积分&#xff0c; 在填写连个验证码&#xff0c;就有5万积分 YHCU06D4HPD02CMTULSHYBCIEKG006 J6Z3V49E303ZLQA9ENKYX9N7XWMDML 训练 创建新会话&#xff0c…

STOP的用法

STOP运行时的效果和注意事项 STOP运行时会出现的异常代表什么 逻辑数据库---待续 NODES: sflight, sbook. DATA: bookings TYPE i, max TYPE i VALUE 100. GET sflight. cl_demo_output>next_section( |{ sflight-carrid } | && |{ sflight-connid } | && …

公司如何防止员工泄露办公终端电脑文件数据\资料——推荐核心部门部署【天锐绿盾终端安全管理系统】

为了防止员工泄露办公终端电脑的文件数据和资料&#xff0c;部署天锐绿盾终端安全管理系统是一个很好的选择。这个系统可以从多个方面保护企业的数据安全&#xff0c;特别是对于核心部门&#xff0c;其效果更为显著。 PC端访问地址&#xff1a; https://isite.baidu.com/site…

如何正确地理解应用架构并开发

许多同学或多或少都经历过这样的流程&#xff1a; 新同学刚来公司&#xff0c;学习了解团队的一些工程代码&#xff0c;并了解其中的代码风格团队新接手了一些其他团队的项目&#xff0c;需要了解工程结构以及概念如何定义工程项目的工程结构&#xff0c;包目录结构并达成团队共…

使用FFmpeg+EasyDarwin搭建音视频推拉流测试环境

1. 前言 在上一篇文章《使用VS2017在win10 x64上编译调试FFmpeg&#xff08;附源码和虚拟机下载&#xff09;》中&#xff0c;我们讲解了如何搭建FFmpeg源码编译和调试环境。 调试FFmpeg&#xff0c;还需要搭建流媒体服务器。流媒体服务器的作用是通过网络对外提供音视频服务…

高照数量关系(二)—— 工程问题 、几何问题、容斥原理、最值问题、年龄问题

工程问题 完工时间型 效率比例型 具体单位型 日期周期工程问题 牛吃草问题 几何问题 几何公式 三角形 最短路径 几何最值 同比例缩放 生活中的几何小游戏 容斥原理 两集合 三集合 画图法 容斥原理结合不定方程&#xff08;最值&#xff09; 最值问题 最不利构造 构造数列…

npm安装vue,添加淘宝镜像

如果是第一次使用命令栏可能会遇到权限问题。 解决vscode无法运行npm和node.js命令的问题-CSDN博客 安装 在vscode上面的导航栏选择terminal打开新的命令栏 另外可能会遇到网络或者其他的问题&#xff0c;可以添加淘宝镜像 npm install -g cnpm --registryhttps://registry.…

什么是云安全?如何保护云资源

云计算允许组织通过互联网按需向其客户、合作伙伴或员工提供关键业务应用程序、服务和资源。换句话说&#xff0c;不再需要物理维护资源。每当您通过 Internet 从计算机访问文件或服务时&#xff0c;您都是在访问云。 迁移到云可以帮助企业增强安全性、简化运营并降低成本。企…

【python】内存管理和数据类型问题

一、内存管理 Python有一个自动内存管理机制&#xff0c;但它并不总是按照期望的方式工作。例如&#xff0c;如果创建了一个大的列表或字典&#xff0c;并且没有删除它&#xff0c;那么这个对象就会一直占用内存&#xff0c;直到Python的垃圾回收器决定清理它。为了避免这种情…

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

传统 VC机构&#xff0c;是否还能在Fair launch的散户牛市中胜出&#xff1f; LaunchPad是代币面向市场的重要一环&#xff0c;将代币推向市场&#xff0c;加密项目将能够通过代币的销售从市场上募集资金&#xff0c;同时生态也开始进入全新的发展阶段。而对于投资者来说&#…

一文读懂「Prompt Engineering」提示词工程

在了解提示过程之前&#xff0c;先了解一下什么是提示prompt&#xff0c;见最后附录部分 一、什么是Prompt Engingering&#xff1f; 提示工程&#xff08;Prompt Engingering&#xff09;&#xff0c;也被称为上下文提示&#xff08;In-Context Prompting&#xff09;&#x…

C++:多态究竟是什么?为何能成为面向对象的重要手段之一?

C&#xff1a;多态究竟是什么&#xff1f;为何能成为面向对象的重要手段之一&#xff1f; 前言一、多态的概念二、多态的定义及实现2.1 多态的构成条件2. 2 虚函数2.3 虚函数的重写2.3.1 虚函数重写的例外1&#xff1a;协变(基类与派生类虚函数返回值类型不同)2.3.2 虚函数重写…