Ubuntu防火墙管理(五)——ufw源规则解读与修改
firewalld与nftables
在 /etc/firewalld/firewalld.conf
文件中,FirewallBackend
选项用于指定 Firewalld 使用的防火墙后端实现。具体来说:
-
nftables:这是当前的默认选项,表示 Firewalld 将使用
nftables
作为防火墙后端。nftables
是一个现代的防火墙框架,旨在替代旧的iptables
,提供更好的性能和更灵活的配置。 -
iptables:这是一个较旧的防火墙后端,支持
iptables
、ip6tables
、ebtables
和ipset
。不过,正如注释中所提到的,iptables
后端已经被标记为过时(deprecated),并将在未来的版本中被移除。
因此,FirewallBackend=nftables
的意思是 Firewalld 将使用 nftables
作为其防火墙后端实现,这是推荐的选择,因为它是现代的、功能更强大的解决方案。如果你没有特别的需求,建议保持这个设置为默认值。
但由于暂时不想学习nftables语法,聚焦于iptables与ufw
iptables VS nftables
nftables
和 iptables
是 Linux 系统中用于管理网络流量和防火墙规则的两种工具。nftables
是 iptables
的替代品,旨在提供更现代和灵活的防火墙管理方式。以下是它们之间的一些优缺点比较:
优点
nftables 的优点
-
统一的框架:
nftables
提供了一个统一的框架来处理 IPv4、IPv6、ARP 和其他协议,而iptables
需要分别使用iptables
、ip6tables
、ebtables
等工具。
-
更简洁的语法:
nftables
的语法更简洁,规则的定义和管理更加直观,减少了复杂性。
-
更高的性能:
nftables
在处理规则时使用了更高效的数据结构(如哈希表),在处理大量规则时性能更好。
-
更强大的功能:
nftables
支持更复杂的匹配条件和操作,例如使用集合(sets)来管理多个地址或端口,支持更灵活的流量控制。
-
内置的状态跟踪:
nftables
提供了更强大的连接跟踪功能,可以更方便地管理状态信息。
-
更好的日志记录:
nftables
提供了更灵活的日志记录选项,可以更方便地记录和管理日志。
iptables 的优点
-
成熟和广泛使用:
iptables
已经存在很长时间,广泛应用于各种 Linux 发行版,许多文档和教程可供参考。
-
兼容性:
- 许多现有的脚本和工具依赖于
iptables
,在某些情况下,使用iptables
可能更方便。
- 许多现有的脚本和工具依赖于
缺点
nftables 的缺点
-
学习曲线:
- 对于习惯于
iptables
的用户,nftables
可能需要一些时间来适应新的语法和概念。
- 对于习惯于
-
支持和文档:
- 尽管
nftables
的文档在不断改进,但相较于iptables
,仍然可能存在一些不足。
- 尽管
iptables 的缺点
-
复杂性:
iptables
的语法和规则管理相对复杂,尤其是在处理大量规则时,可能会变得难以管理。
-
性能问题:
- 在处理大量规则时,
iptables
的性能可能不如nftables
,因为它使用的是线性链表结构。
- 在处理大量规则时,
-
分散的工具:
iptables
需要分别使用ip6tables
、ebtables
等工具来处理不同的协议,增加了管理的复杂性。
总结
- 选择
nftables
:如果您正在设置新的防火墙或需要更高效、更灵活的规则管理,nftables
是一个更好的选择。 - 选择
iptables
:如果您已经有大量基于iptables
的配置或脚本,或者需要与现有系统兼容,继续使用iptables
可能更方便。
总的来说,nftables
是一个现代化的解决方案,提供了许多优于 iptables
的功能,但在某些情况下,iptables
仍然是一个有效的选择。
Ufw源规则解读
- 在
/etc/ufw/before.rules
1-MDNS监听
-A ufw-before-input -p udp -d 224.0.0.251 --dport 5353 -j DROP
-A ufw-before-input -p udp -d 239.255.255.250 --dport 1900 -j DROP
在 /etc/ufw/before.rules
文件中,您看到的这两行是 iptables
规则的定义,具体用于允许特定的多播(multicast)流量。让我们逐行分析这些规则的含义:
规则解析
-
第一条规则:
-A ufw-before-input -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT
-A ufw-before-input
:这表示将规则添加到名为ufw-before-input
的链中。ufw-before-input
是UFW
在处理输入流量之前使用的链。-p udp
:指定协议为 UDP(用户数据报协议)。-d 224.0.0.251
:指定目标地址为224.0.0.251
,这是用于多播 DNS(mDNS)的地址。--dport 5353
:指定目标端口为5353
,这是 mDNS 服务使用的端口。-j ACCEPT
:表示如果流量匹配上述条件,则接受该流量。
总结:这条规则允许所有发送到多播地址
224.0.0.251
的 UDP 流量,目标端口为5353
,以支持 mDNS 服务发现。 -
第二条规则:
-A ufw-before-input -p udp -d 239.255.255.250 --dport 1900 -j ACCEPT
-A ufw-before-input
:同样表示将规则添加到ufw-before-input
链中。-p udp
:指定协议为 UDP。-d 239.255.255.250
:指定目标地址为239.255.255.250
,这是用于通用即插即用(UPnP)服务的多播地址。--dport 1900
:指定目标端口为1900
,这是 UPnP 服务使用的端口。-j ACCEPT
:表示如果流量匹配上述条件,则接受该流量。
总结:这条规则允许所有发送到多播地址
239.255.255.250
的 UDP 流量,目标端口为1900
,以支持 UPnP 服务发现。
总结
这两条规则的目的是允许特定的多播流量,以支持服务发现功能。mDNS 和 UPnP 是常用的网络服务发现协议,允许设备在网络上自动发现彼此。通过在 ufw-before-input
链中添加这些规则,UFW
确保这些多播流量不会被防火墙阻止,从而使相关服务能够正常工作。
2- ufw-not-local 报文的处理
# ufw-not-local
-A ufw-before-input -j ufw-not-local# if LOCAL, RETURN
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN# if MULTICAST, RETURN
-A ufw-not-local -m addrtype --dst-type MULTICAST -j DROP# if BROADCAST, RETURN
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN# all other non-local packets are dropped
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
这段代码是iptables规则,用于配置ufw防火墙在处理输入数据包时的行为。
-
-A ufw-before-input -j ufw-not-local
这行代码表示将数据包传递到名为ufw-not-local
的链。也就是说,所有传入数据包都将按照该链中的规则进行处理。 -
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
这行代码表示如果数据包的目标类型是LOCAL(本地)地址,则直接返回(允许通过)。这意味着本地目标的数据包将被接受并传递到本地。 -
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
这行代码表示如果数据包的目标类型是MULTICAST(多播)地址,则直接返回(允许通过)。这意味着多播目标的数据包将被接受并传递到相应的多播组。 -
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
这行代码表示如果数据包的目标类型是BROADCAST(广播)地址,则直接返回(允许通过)。这意味着广播目标的数据包将被接受并传递到所有主机。 -
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
这行代码表示如果数据包既不是本地、多播、广播目标,那么将启用日志记录,并限制每分钟只接受3个数据包,超过这个数量的数据包会被丢弃。同时将匹配的数据包传递到ufw-logging-deny
链。该链的作用是将被丢弃的数据包进行日志记录。 -
-A ufw-not-local -j DROP
这行代码表示如果数据包既不是本地、多播、广播目标,且已经超过了日志记录的限制数目,那么直接丢弃该数据包。
总之,这段代码的作用是检查输入的数据包目标地址类型,如果是本地、多播、广播目标则接受通过,如果不是则根据限制条件进行日志记录或丢弃。
- RETURN
RETURN
是一个iptables规则动作,表示数据包会立即返回到调用链的上一级。在这个特定的规则中,如果数据包的目标类型是MULTICAST(多播)地址,那么该规则会立即返回,不会继续往下执行链中的其他规则。这意味着数据包将被允许通过,不会被防火墙拦截或处理。
相关文章:
Ubuntu防火墙管理(五)——ufw源规则解读与修改
firewalld与nftables 在 /etc/firewalld/firewalld.conf 文件中,FirewallBackend 选项用于指定 Firewalld 使用的防火墙后端实现。具体来说: nftables:这是当前的默认选项,表示 Firewalld 将使用 nftables 作为防火墙后端。nftab…...
Docker如何运行一个python脚本Hello World
Docker如何运行一个python脚本Hello World 1、编写Python的Hello World:script.py #!/usr/bin/python #_*_coding:utf-8_*_ print("Hello World") 2、Dockerfile文件 #拉取Docker环境 FROM python #设置工作目录 WORKDIR /app #将dockerfile同级文件copy到…...
人工智能-自动驾驶领域
目录 引言自动驾驶与人工智能的结合为什么自动驾驶领域适合发表文章博雅智信的自动驾驶辅导服务结语 引言 自动驾驶技术的崛起是当代交通行业的一场革命。通过结合先进的人工智能算法、传感器技术与计算机视觉,自动驾驶不仅推动了技术的进步,也使得未来…...
[ubuntu18.04]ubuntu18.04安装json-c操作说明
ubuntu18.04安装json-c 代码下载 rootw1804-virtual-machine:/home/w1804/tr069# git clone https://github.com/json-c/json-c.git Cloning into /opt/git/json-c... remote: Enumerating objects: 6398, done. remote: Counting objects: 100% (1067/1067), done. remote:…...
华为eNSP:VRRP
一、VRRP背景概述 在现代网络环境中,主机通常通过默认网关进行网络通信。当默认网关出现故障时,网络通信会中断,影响业务连续性和稳定性。为了提高网络的可靠性和冗余性,采用虚拟路由冗余协议(VRRP)是一种…...
Linux--top系统资源命令查看--详解
top命令用法 图: top命令用法: top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。 top的使用方式: top [-d number] | top [-bnp] top参数解释: -…...
es的join是什么数据类型
在 Elasticsearch 中,parent 并不是一个独立的数据类型,而是与 join 数据类型一起使用的一个概念。join 数据类型用于在同一个索引中建立父子文档之间的关系,允许你在一个索引内表示层级结构或关联关系。通过 join 字段,你可以定义不同类型的文档(如父文档和子文档),并指…...
KV Shifting Attention Enhances Language Modeling
基本信息 📝 原文链接: https://arxiv.org/abs/2411.19574👥 作者: Mingyu Xu, Wei Cheng, Bingning Wang, Weipeng Chen🏷️ 关键词: KV shifting attention, induction heads, language modeling📚 分类: 机器学习, 自然语言处…...
软错误防护技术在车规MCU中应用
在大气层内,宇宙射线粒子与大气分子发生核反应生成大气中子。大气中子入射微电子器件或电路将会诱发单粒子效应(SEE),效应类型主要有单粒子翻转(SEU)、单粒子瞬态(SET)、单粒子锁定&…...
遥感图像处理二(ENVI5.6 Classic)
1 实验目的和内容 1.1 实验目的 本次上机旨在继续深入了解ENVI软件的基本使用,并对提供的实验数据进行基本的图像分割和地物分类等操作并分析结果。 1.2 实验内容 1.2.1 图像分割 对教材示例数据“C7图像分割”中的风景图、兰花图和娃娃图分别进行图像分割操作…...
经典文献阅读之--A Fast Dynamic Point Detection...(用于驾驶场景中的动态点云剔除方法)
0. 简介 现有的基于3D点的动态点检测和移除方法存在显著的时间开销,使其难以适应激光雷达-惯性测程系统。《A Fast Dynamic Point Detection Method for LiDAR-Inertial Odometry in Driving Scenarios》提出了一种基于标签一致性的动态点检测和移除方法࿰…...
百度搜索应适用中文域名国家标准,修复中文网址展示BUG
12月1日中文域名国家标准正式实施。该标准“明确了中文域名在编码、解析、注册、字表等方面的技术要求,适用于中文域名注册管理机构、注册服务机构、网络软硬件服务商及终端用户”。 00:23 显然,百度作为网络软硬件服务商,是包括在国家标准的…...
设计模式学习之——适配器模式
适配器模式(Adapter Pattern),又称作变压器模式(因为这两者都体现了“转换”或“适配”的核心概念),是一种结构型设计模式。它将一个类的接口转换成客户端所期望的另一种接口,从而使得原本因接口…...
服务器数据恢复—热备盘上线过程中硬盘离线导致raid5阵列崩溃的数据恢复案例
服务器数据恢复环境: 两组分别由4块SAS接口硬盘组建的raid5阵列,两组raid5阵列划分LUN并由LVM管理,格式化为EXT3文件系统。 服务器故障: RAID5阵列中一块硬盘未知原因离线,热备盘自动激活上线替换离线硬盘。在热备盘上…...
MetaGPT源码 (Memory 类)
目录 MetaGPT源码:Memory 类例子 MetaGPT源码:Memory 类 这段代码定义了一个名为 Memory 的类,用于存储和管理消息(Message)对象。Memory 提供了多种操作消息的功能,包括添加单条或批量消息、按角色或内容筛选消息、删除最新消息…...
数据结构与算法复习AVL树插入过程
环境 $ cat /proc/version Linux version 6.8.0-45-generic (builddlcy02-amd64-115) (x86_64-linux-gnu-gcc-13 (Ubuntu 13.2.0-23ubuntu4) 13.2.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 #include <std…...
小迪笔记第 五十天 文件包含漏洞 远程包含 本地包含 ctf练习题实战
前言 文件包含漏洞 原理就是包含的文件如果可控就会造成这个漏洞 php文件包含的特征 : PHP:include、require、include_once、require_once等 一共是分为了2 种 一个就是 远程文件包含 这个的前提是php开启了 远程文件上传这个选项 原理应用就是…...
单片机:实现点阵汉字平滑滚动显示(附带源码)
单片机实现点阵汉字平滑滚动显示 点阵显示技术是嵌入式系统中的常见显示技术之一,广泛应用于LED矩阵显示屏、广告牌、电子时钟等设备。在本项目中,我们将实现一个基于单片机的点阵汉字平滑滚动显示系统,使用LED点阵显示屏来实现动态滚动的汉…...
C# 实现 10 位纯数字随机数
本文将介绍如何用 C# 实现一个生成 10 位纯数字随机数的功能。以下是完整的代码示例: using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace RandomTset {class Program{// 使用GUID作为种子来创建随机数生成器static…...
分布式全文检索引擎ElasticSearch-基本概念介绍
一、索引类型 索引,可以理解是我们的目录,看一本书的时候,可以根据目录准确快速定位到某一页,那么索引就可以帮我们快速定位到某条数据在庞大的数据表的哪一个位置。 我们常见的索引包括正排索引和倒排索引 1、正排索引 正排索…...
电子应用设计方案-49:智能拖把系统方案设计
智能拖把系统方案设计 一、引言 随着人们生活水平的提高和对清洁效率的追求,智能拖把作为一种创新的清洁工具应运而生。本方案旨在设计一款功能强大、操作便捷、清洁效果出色的智能拖把系统。 二、系统概述 1. 系统目标 - 实现自动清洁地面,减轻用户劳…...
汽车免拆诊断案例 | 2014款保时捷卡宴车发动机偶尔无法起动
故障现象 一辆2014款保时捷卡宴车,搭载3.0T 发动机,累计行驶里程约为18万km。车主反映,发动机偶尔无法起动。 故障诊断 接车后试车,发动机起动及运转均正常。用故障检测仪检测,发动机控制单元(DME&#x…...
电脑怎么设置通电自动开机(工控机)
操作系统:win10 第一步,电脑开机时按del键进入bios页面。 第二步,选择advanced下的IT8712 Super IO Configuration 第三步,找到Auto Power On,将其从Power off设置为Power On 第四步,F10保存,大…...
MaxKB进阶:豆包大模型驱动的智能日报小助手
MaxKB进阶:豆包大模型驱动的智能日报小助手 说明: 在本教程中,我们通过“智能日报小助手”的应用场景,全面解析MaxKB的进阶功能:从如何接入公共大模型(以豆包为例),到函数功能的灵活…...
Python爬虫之使用xpath进行HTML Document文档的解析
响应有两种:JSON数据和HTML页面,对于后者就需要进行解析HTML Documen得到我们需要的信息。 ① xpath使用 可以提前安装xpath插件,也可以自己从HTML源码解析。 (1)打开chrome浏览器 (2)点击右…...
调度系统:使用 Airflow 对 Couchbase 执行 SQL 调度时的潜在问题
使用 Airflow 对 Couchbase 执行 SQL 调度时,通常情况下不会直接遇到与 Couchbase 分布式特性相关的异常,但在某些特定情境下,可能会出现一些与分布式环境、调度和数据一致性相关的潜在问题。以下是一些可能会遇到的问题和建议的解决方案&…...
【数据结构——查找】二分查找(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现二分查找的算法。 相关知识 为了完成本关任务,你需要掌握:1.根据键盘输入的一组有序数据建立顺序表,2.顺序表的输…...
简单网页制作提升用户体验和客户转化
在当今竞争激烈的市场中,用户体验和客户转化率往往是决定企业成败的关键。简单而高效的网页制作,正是提升用户体验和客户转化的重要手段之一。 首先,简洁的网页设计能够有效减轻用户的认知负担。当用户打开一个层次分明、界面整洁的网站时&am…...
数据类型(使用与定义)
基本数据类型是CPU可以直接进行运算的类型,在算法直接被使用,主要包括: 整数类型:byte、short、int、long。 浮点数类型:float、double,用于表示小数。 字符类型:char,用于表示各种语言的字母…...
VMware:CentOS 7.* 连不上网络
1、修改网络适配 2、修改网卡配置参数 cd /etc/sysconfig/network-scripts/ vi ifcfg-e33# 修改 ONBOOTyes 3、重启网卡 service network restart 直接虚拟机中【ping 宿主机】,能PING通说明centOS和宿主机网络通了,只要宿主机有网,则 Ce…...
唐山做网站公司哪家好/优化官网咨询
http://www.cnblogs.com/littlemonk/p/5500801.html这篇文章主要介绍了Angularjs中UI Router全攻略,涉及到angularjs ui router的基本用法,需要的朋友参考下吧首先给大家介绍angular-ui-router的基本用法。 如何引用依赖angular-ui-router angular.modul…...
巫山网站设计/内存优化大师
每日任务内容: 本次会议为第四次Scrum Meeting会议~由于本次会议女生今日因身体不适未参与会议,故在宿舍楼开会,大家集会15分钟。队员 昨日完成任务 明日要完成任务 刘乾 #130 学习python的单元测试,并撰写一个demo或者blog&…...
做的比较炫的网站/域名免费注册0元注册
转载于:https://blog.51cto.com/13956693/2173332...
教育网站建设情况报告/产品品牌策划方案
问题你需要执行简单的时间转换,比如天到秒,小时到分钟等的转换。解决方案为了执行不同时间单位的转换和计算,请使用 datetime 模块。 比如,为了表示一个时间段,可以创建一个 timedelta 实例,就像下面这样&a…...
厦门律师网站建设/搜索词分析
说明:PMI的很多考试题目中,可能有不止一个正确答案,要选择一个相对最正确的答案。从什么角度来判断相对性最正确的,从本三十六计中的几个角度:“相对首先”、“相对首要”、“相对全面”、“相对积极主动”、“相对相关…...
做电影网站算侵权吗/百度网盘搜索引擎网站
测试环境:ubuntu18.04driver450cuda11.0cudnn8.0.5opencv4.4.0 1、ubuntu显卡驱动下载安装 2、cuda及cudnn安装 3、opencv4编译配置 4、darknet源码编译测试...