firewalld 高级配置

news/2024/10/5 17:31:49/

一:firewalld  高级配置

1.1:关于iptables的知识

IP 数据包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做数据包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的数据包过滤表中,而这些表集成在Linux内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain) 中。

虽然 netfilter/iptables IP 数据包过滤系统被称为单个实体,但它实际上由两个组件 netfilter 和 iptables 组成。

(1).netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些数据包过滤 表组成,这些表包含内核用来控制数据包过滤处理的规则集。

(2).iptables 组件是一种工具,也称为用户空间 (userspace),      它使插入、修改和除去数 据包过滤表中的规则变得容易。iptables包含4个表,5个链。其中表是按照对数据包的操作区分的,链是按照不同的 Hook(挂钩)点来区分的,表和链实际上是 netfilter 的两个维度。

firewalld   中理解直接规则

将 iptables的规则插入到firewalld的管理区域中,这种方式写的规则叫直接规则。

将某个IP范围列入黑名单

在这个例子中首先自定义了一个叫blacklist的链,然后将所有来自192.168.10.0/24的数据包 都指向了这个链,最后定义了这个链的规则:首先进行记录,然后drop, 记录的方法是使 用“blacklisted:” 前缀并且限制1分钟记录一次。

(1)创建一个黑名单,并为这个黑名单创建一个链,链名为 blacklist

[root@localhost ~]#firewall-cmd --direct --permanent --add-chain ipv4 raw blacklist

(2)将来自192.168.10.0/24的数据包指向这个链

[root@localhost     ~]#firewall-cmd     --direct     -permanent      --add-rule     ipv4      raw     PREROUTING     0-s 192.168.10.0/24-jblacklist

(3)每分钟记录一次日志(-m limit --limit 1/min   每分钟记录一次日志)

[root@localhost ~]#firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist O-m limit --limit 1/min -jLOG --log-prefix "blacklisted"

(4)设置这个链的规则为 DROP

[root@localhost~]#firewall-cmd--direct--permanent --add-rule ipv4 raw blacklist 1-jDROP

(5)重启 firewalld(重启或重载后生效)

[root@localhost~]#systemctl restart firewalld

(6)查看直接规则

[root@localhost ~]#cat /etc/firewalld/direct.xml

使用富语言

1: 什么是富语言

不需要使用iptables语法,而是使用高级语言配置防火墙规则的机制成为富语言。

规则排序

测试和调试

3: 理解富规则命令

4: 规则配置举例

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

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

(2)允许新的IPv4 和 IPv6  连接http, 并使用审核每分钟记录一次

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

注意:

开启日志记录后

[root@localhost~]#cat /var/log/messages

Jan     1411:27:29192     kernel:'httpaccess'IN=ens330UT=

MAC=00:0c:29:85:a0:bd:00:0c:29:5e:d3:72:08:00 SRC=192.168.10.102 DST=192.168.10.101

LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=60222 DF PROTO=TCP SPT=53168 DPT=80

WINDOW=29200 RES=0x00SYN URGP=0

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

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

(4)为RADIUS协议拒绝所有来自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:6::" service  name="raduis"log  prefix="dns"level="info"limit  value="3/m"reject'

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

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

(6) 拒绝(删除)来自 public 区域中 IP 地址为192.168.0.11的所有流量

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

[root@localhost ~]#firewall-cmd --zone=public --remove-rich-rule='rule family=ipv4 source address=192.168.10.202/32 reject'

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

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

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

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

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

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

(10)在接下来的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.ppmy.cn/news/1473491.html

相关文章

【优化论】约束优化算法

约束优化算法是一类专门处理目标函数在存在约束条件下求解最优解的方法。为了更好地理解约束优化算法,我们需要了解一些核心概念和基本方法。 约束优化的核心概念 可行域(Feasible Region): 比喻:想象你在一个园艺场…

基于Java的微信记账小程序【附源码】

摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,记账微信小程序被用户普遍使用,为方便用户能够…

第4-5天:30余种加密编码和资产架构端口应用CDNWAF站库分离负载均衡

文章目录 前言知识点常见加密编码等算法解析 资产架构&端口&应用&CDN&WAF&站库分离&负载均衡资产架构番外安全考虑阻碍 前言 在安全测试中常见的敏感信息密码等会采用加密方式,因此作为一名安全人员要了解常见加密。 知识点 主要有存储加…

项目实战--Spring Boot与PageHelper的集成及线程污染解决

一、PageHelper使用背景 公司要做个简单管理系统,要我搭建Spring BootMyBatisPageHelperRedis的项目框架然后交i给实习生来开发。这个其实很简单,但是遇到搭建和使用过程中PageHelper有好多小坑,就记录一下,避免再踩。 版本选择&…

android 定时调用方法

在Android中,可以使用Handler类和Runnable接口来实现定时调用方法。以下是一个简单的例子,展示了如何每隔一定时间调用一个方法。 import android.os.Handler; import android.os.SystemClock; import androidx.appcompat.app.AppCompatActivity; impor…

开发必备基础知识【字符编码合集】

开发必备基础知识【字符编码合集】 大家在日常开发交流中会发现,别人那里运行的好好的文件,在你电脑上却无法编译,甚至出现一堆莫名其妙的字符,比如:��� 程序中经常遇到一些关于乱码…

单线服务器有什么作用?

什么是单线服务器?单线服务器是指只有一条物理线路可以接入的服务器,这表明所有的数据信息与用户的访问请求都只能通过这一条线路来进行传输,因此单线服务器在服务器的性能与可扩展性方面有着一定的限制。 单线服务器与双线服务器相比&#x…

构建LangChain应用程序的示例代码:49、如何使用 OpenAI 的 GPT-4 和 LangChain 库实现多模态问答系统

! pip install "openai>1" "langchain>0.0.331rc2" matplotlib pillow加载图像 我们将图像编码为 base64 字符串,如 OpenAI GPT-4V 文档中所述。 import base64 import io import osimport numpy as np from IPython.display import HT…