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.mzph.cn/news/612512.shtml

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

相关文章

CMU15-445-Spring-2023-Project #2 - 前置知识(lec07-010)

Lecture #07_ Hash Tables Data Structures Hash Table 哈希表将键映射到值。它提供平均 O (1) 的操作复杂度&#xff08;最坏情况下为 O (n)&#xff09;和 O (n) 的存储复杂度。 由两部分组成&#xff1a; Hash Function和Hashing Scheme&#xff08;发生冲突后的处理&…

神经辐射场(NeRF)概述

神经辐射场&#xff08;NeRF&#xff09;是一种用于三维场景重建的深度学习算法。它能够从一组稀疏的二维图片中重建出高质量的三维场景。 以下是对NeRF算法的原理和实现方法的详细解释&#xff1a; NeRF算法原理&#xff1a; 基本概念&#xff1a; NeRF算法基于光线追踪的原理…

Unified-IO 2 模型: 通过视觉、语言、音频和动作扩展自回归多模态模型。给大家提前预演了GPT5?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

从0到1实现html文件转换为markdown文档(进度0.1)

Spider-Man 前言准备环境1、node.js2、git 执行指令顺序报错及其解决方案一、npm 错误&#xff01;可以在以下位置找到此运行的完整日志解决方案 二、没有修改权限解决方案&#xff1a; 注意事项总结 前言 当我们处理文档时&#xff0c;常常会遇到将HTML文档转换为Markdown文档…

残疾人聋哑人专用起床叫醒器震动起床提醒器

残疾人聋人专用起床叫醒器震动起床提醒器是为特殊教育学校提供的一种安全防护设施&#xff0c;符合特教行業標準8.7電教、信息網路設備的規定&#xff0c;系统采用了全自动IP网络控制、每个设备内带有IP地扯能独立控制每一个宿舍和教室&#xff0c;在同一时间内&#xff0c;多功…

TypeScript进阶(二)深入理解装饰器

✨ 专栏介绍 TypeScript是一种由微软开发的开源编程语言&#xff0c;它是JavaScript的超集&#xff0c;意味着任何有效的JavaScript代码都是有效的TypeScript代码。TypeScript通过添加静态类型和其他特性来增强JavaScript&#xff0c;使其更适合大型项目和团队开发。 在TypeS…

【解决】Unity Project 面板资源显示丢失的异常问题处理

开发平台&#xff1a;Unity 2021.3.7f1c1   一、问题描述 在开发过程中&#xff0c;遭遇 Project 面板资源显示丢失、不全的问题。但 Unity Console 并未发出错误提示。   二、解决方案&#xff1a;删除 Library 目录 前往 “工程目录/Library” 删除内部所有文件并重打开该…

【JVM】本地方法接口 Native Interface

一、JNI简介 JVM本地方法接口&#xff08;Java Native Interface&#xff0c;JNI&#xff09;是一种允许Java代码调用本地方法&#xff08;如C或C编写的方法&#xff09;的机制。这种技术通常用于实现高性能的计算密集型任务&#xff0c;或者与底层系统库进行交互。 二、JNI组…

Python教程16:使用海龟画图turtle画会动的时钟

---------------turtle源码集合--------------- Python教程36&#xff1a;海龟画图turtle写春联 Python源码35&#xff1a;海龟画图turtle画中国结 Python源码31&#xff1a;海龟画图turtle画七道彩虹 Python源码30&#xff1a;海龟画图turtle画紫色的小熊 Python源码29&a…

CRMEB多商户短信开发

在使用CRMEB多商户系统的时候&#xff0c;想要二开使用其他平台的短信&#xff0c;这里以阿里云短信为例的具体实现方法。 一、加载阿里云短信的SDK&#xff0c;执行命令&#xff1a;composer require alibabacloud/dysmsapi-20170525 二、增加阿里云短信的驱动 1.在 crmeb\…

【REST2SQL】07 GO 操作 Mysql 数据库

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 MySQL是一个关系型数据库管理系统&#xf…

什么是编程思路?如何训练提升自己的编程思路?

哈喽&#xff0c;大家上午好呀&#xff01;又和大家如期见面了&#xff01; 今天给大家分享改变编程思路的9条技巧。 1.拆分项目&#xff0c;再编程 先按大类写子程序&#xff0c;例如自动&#xff0c;手动&#xff0c;报警&#xff0c;然后子程序中写FB块&#xff0c;FC程序&…

el-upload实现可替换、删除、预览的图片上传。js 往返缓存(可判断当前页面是不是返回的页面)

el-upload实现可替换、删除、预览的图片上传 组件使用&#xff1a; <template><div><UploadImage sendUrl :limit"1" :size"size" :gifSize"gifSize" v-model"images"></UploadImage> </div> </tem…

【Linux】Linux系统编程——Linux目录结构

Linux的文件系统呈现为一种树状结构&#xff0c;以根目录/为最顶层&#xff0c;其下分布着各种不同的子目录&#xff0c;每个目录都有其特定的用途和功能。下面是Linux目录结构的详细介绍&#xff1a; 1. 根目录 / 根目录是整个文件系统的基础。所有的目录和文件都从这里开始…

LeetCode刷题13:回溯+剪枝解决216.组合总和 III

找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7 输出: [[1,2,4]] 解…

阿里云c8i服务器CPU性能、架构及费用测评

阿里云第八代云服务器ECS计算型c8i实例&#xff0c;CPU采用Intel Xeon Emerald Rapids或者Intel Xeon Sapphire Rapids&#xff0c;主频不低于2.7 GHz&#xff0c;全核睿频3.2&#xff0c;阿里云百科aliyunbaike.com分享阿里云c8i服务器CPU处理器型号、存储、网络、安全、使用场…

子域名收集

目录 1、OneForAll 2、利用Google的搜索 3、fofa 4、使用在线查询网站查询 5、利用ip反查 6、Layer子域名挖掘机 7、JSFinder 用法 在进行渗透的过程中有一个很重要的工作就是信息收集&#xff0c;而信息收集中的子域名收集是很重要的一项工作&#xff0c;在本篇中我会给大…

绝地求生:【PC】2024年1月商店更新

亲爱的玩家朋友们&#xff0c;大家好&#xff01; 欢迎大家来到闲游盒2024年首次商店更新&#xff01; 我们在1月商店更新中准备了全新生存通行证&#xff1a;龙腾&#xff0c;彩色烟雾皮肤&#xff0c;地狱天使 VS 天堂恶魔系列皮肤&#xff0c;相信大家一定会喜欢~ 实用腰带…

Linux操作系统——进程控制(三) 进程程序替换

前言 目前我们接触到我们所创建的所有的子进程&#xff0c;它执行的代码都是父进程代码的一部分&#xff01;那么如果我们想让子进程执行新的程序呢&#xff1f;&#xff1f;&#xff1f;执行全新的代码和访问全新的数据&#xff0c;不在和父进程有瓜葛&#xff0c;我们该怎么…

一文详解向量数据库Milvus Cloud动态 Schema

在数据库中&#xff0c;Schema 常有&#xff0c;而动态 Schema 不常有。 例如&#xff0c;SQL 数据库有预定义的 Schema&#xff0c;但这些 Schema 通常都不能修改&#xff0c;用户只有在创建时才能定义 Schema。Schema 的作用是告诉数据库使用者所希望的表结构&#xff0c;确…