ufw:Linux网络防火墙
一、命令简介
ufw(Uncomplicated Firewall)是一个为 Linux 系统提供简单易用的命令行界面的防火墙管理工具。它是基于 iptables 的,但提供了更简洁的语法和更直观的操作方式,使得配置防火墙变得更加简单,特别适合那些希望快速设置基本防火墙的用户,同时也支持更高级的配置需求。
安装 ufw
sudo apt update
sudo apt install ufw
二、命令参数
命令格式:
sudo ufw 子命令 [选项] [规则]
-
[子命令]:如enable、disable、allow、deny、limit、delete 等,用于执行特定的防火墙操作。 -
[选项]:这是子命令的可选参数,用于进一步定义或修改子命令的行为。 -
[规则]:这是指定防火墙规则的部分,通常包括流量来源、目的地、使用的协议和端口等信息。
子命令
-
enable: 启用UFW。 -
disable: 禁用UFW。 -
allow: 允许特定的连接或服务。 -
deny: 拒绝特定的连接或服务。 -
reject: 拒绝特定的连接或服务,并返回一个错误信息给客户端。 -
limit: 限制特定连接的速率。 -
delete: 删除一个特定的规则。 -
insert: 在规则列表中的特定位置插入一条规则。 -
status: 显示当前的防火墙规则状态。 -
status numbered: 显示当前防火墙规则的状态,并带上规则的编号。 -
reset: 重置UFW的规则,即删除所有规则。
选项
-
--dry-run: 显示规则更改,但不实际应用它们。 -
--force: 强制执行命令,不进行任何提示。 -
in: 指定规则应用于进入的连接。 -
out: 指定规则应用于输出的连接。 -
on: 指定规则应用于特定的网络接口。
规则
-
ssh: 允许或拒绝SSH连接。 -
80/tcp: 指定TCP端口80的规则。 -
53/udp: 指定UDP端口53的规则。 -
from 192.168.1.100: 指定来自特定IP地址的规则。 -
to any: 指定目标为任何地址的规则。
三、命令示例
-
启用 ufw:
sudo ufw enable -
禁用 ufw:
sudo ufw disable -
允许所有传入流量:
sudo ufw default allow incoming-
default:这个关键字用于设置默认的策略,而不是针对特定的服务或端口。 -
allow:允许。 -
incoming:这个关键字指定了规则的类型,这里是针对传入的流量。
-
-
拒绝所有传入流量:
sudo ufw default deny incoming-
deny:拒绝。
-
-
允许所有传出流量:
sudo ufw default allow outgoing-
outgoing:这个关键字指定了规则的类型,这里是针对传出的流量。
-
-
拒绝所有传出流量:
sudo ufw default deny outgoing -
允许来自特定 IP 地址的流量:
sudo ufw allow from 192.168.1.100 -
拒绝来自特定 IP 地址的流量:
sudo ufw deny from 192.168.1.200 -
允许特定端口的流量(例如,TCP 端口 80):
sudo ufw allow 80/tcp -
拒绝特定端口的流量(例如,UDP 端口 53):
sudo ufw deny 53/udp -
允许特定服务的流量(例如,SSH):
sudo ufw allow ssh -
拒绝特定服务的流量(例如,MySQL):
sudo ufw deny mysql -
限制特定端口的连接尝试(例如,每分钟不超过 20 次):
sudo ufw limit 22/tcp -
删除特定规则的编号(例如,删除编号为 3 的规则):
sudo ufw delete 3 -
在特定位置插入规则(例如,在编号 5 的位置插入规则):
sudo ufw insert 5 allow 2222/tcp -
在规则列表的开头添加规则(例如,允许 TCP 端口 443):
sudo ufw prepend allow 443/tcp -
重新加载 ufw 的规则:
sudo ufw reload -
重置 ufw 的规则到默认状态:
sudo ufw reset -
显示 ufw 的当前状态:
sudo ufw status -
显示 ufw 的当前状态,包括规则编号:
sudo ufw status numbered -
显示 ufw 的详细状态:
sudo ufw status verbose -
显示 ufw 的版本信息:
sudo ufw version -
列出所有应用程序配置文件:
sudo ufw app list -
显示特定应用程序配置文件的详细信息(例如,SSH):
sudo ufw app info ssh -
更新特定应用程序配置文件(例如,SSH):
sudo ufw app update ssh -
设置默认的应用程序策略(例如,允许 Dovecot):
sudo ufw app default allow dovecot
四、规则生效顺序
存在多条规则时,如果规则间有冲突,则前者优先生效。
To Action From
-- ------ ----
22 ALLOW 192.168.10.0/24 #第1条始终有效,因为它在最前面。
22 DENY Anywhere #与前面的规则冲突,只能部分生效,DENY对规则1描述的网段不生效。
22 (v6) DENY Anywhere (v6) #生效
- 第一条规则始终有效
- 第二条规则,与第一条规则冲突的部分无效,不冲突的部分有效。
- 第三条规则有效。
练习: 限制端口 22 每分钟只能尝试连接 5 次,但不限制来自192.168.10.0/24 网段的连接?
- 限制默认连接次数。编辑
/etc/ufw/ufw.conf 文件,设置参数LIMIT = "5/minute",保存。执行sudo ufw reload 重载 ufw 配置。 - 允许特例。
sudo ufw allow from 192.168.10.0/24 to any port 22# 限制端口连接频率
sudo ufw limit proto tcp to any port 22
注意:添加规则的顺序很重要。 因为规则列表的顺序就是ufw生效顺序。应先添加特例,再添加默认行为。
相关文章:
ufw:Linux网络防火墙
一、命令简介 ufw(Uncomplicated Firewall)是一个为 Linux 系统提供简单易用的命令行界面的防火墙管理工具。它是基于 iptables 的,但提供了更简洁的语法和更直观的操作方式,使得配置防火墙变得更加简单,特别适…...
[C++]使用纯opencv部署yolov11-cls图像分类onnx模型
【算法介绍】 在C中使用纯OpenCV部署YOLOv11-cls图像分类ONNX模型是一项具有挑战性的任务,因为YOLOv11通常是用PyTorch等深度学习框架实现的,而OpenCV本身并不直接支持加载和运行PyTorch模型。然而,可以通过一些间接的方法来实现这一目标&am…...
如何使用Immersity AI将图片转换成3D效果视频
随着技术的进步,图片处理变得越来越强大和直观。借助Immersity AI这样的工具,我们现在可以轻松地将平面图片转换成3D效果视频。以下是如何使用Immersity AI进行这一转换的详细步骤。 第一步:访问Immersity AI网站 首先,打开你的…...
安全运营 -- GPO审计
0x00 背景 审计GPO,目的是审计哪些GPO权限分配不合理,包括但不限于审计预期以外的用户具有对GPO的写权限。 0x01 开启审核 在一台windows服务器上 开始 -- 运行 -- 输入 server manager 依次点击Manage -- Add Roles and Features Wizard 角色和功能…...
thinkphp6入门(25)-- 分组查询 GROUP_CONCAT
假设表名为 user_courses,字段为 user_id 和 course_name,存储每个用户选修的课程,想查询每个学生选修的所有课程 SQL 原生查询 SELECT user_id, GROUP_CONCAT(course_name) as courses FROM user_courses GROUP BY user_id; ThinkPHP 代码…...
小米 MIX FOLD工程固件 更换字库修复分区 资源预览与刷写说明
小米 MIX FOLD机型代号 :cetus 该手机搭载骁龙888旗舰处理器 。对于一些因为字库问题损坏导致的故障,更换字库后要先刷写对应的工程底层修复固件。绑定cpu后在写入miui量产固件。 通过博文了解 1💝💝💝-----此机型工程固件的资源刷写注意事项 2💝💝💝-----此…...
Flutter全局统一自定义导航栏返回按钮
Flutter全局统一自定义导航栏返回按钮 在Flutter开发中,导航栏(AppBar)是用户界面的重要组成部分,它不仅提供了页面标题,还可能包含返回按钮、导航按钮等。默认情况下,每个Scaffold的AppBar都会包含一个返…...
微信图片的超能力:5大隐秘功能揭秘,让你成为信息处理大师
在数字化时代,微信已成为我们日常生活中不可或缺的通讯工具。 它不仅仅是聊天的平台,更是一个功能强大的信息处理工具。 今天,我们将揭秘微信中图片背后的五大隐秘功能,让你在使用微信时更加得心应手,成为信息处理的…...
python实现RC4加解密算法
RC4算法 一、算法介绍1.1 背景1.2 密钥调度算法(KSA)1.3 伪随机生成算法(PRGA) 二、代码实现三、演示效果 一、算法介绍 1.1 背景 RC4算法是由Ron Rivest在1987年为RSA数据安全公司设计的一种流密码算法,其安全性主要依赖于其密钥流的随机性和不可预测性。该算法因…...
BLE MESH学习2——自定义MESH网络架构思考
BLE MESH学习2——自定义MESH网络架构思考 基于对WCH CH582这款单片机的了解,其可以实现mesh配网、朋友节点、低功耗节点和中继节点的角色,基本功能无问题。在此基础上,考虑满足IoT需求的MESH架构设计,作为后续设计的“白皮书”。…...
路由器的工作机制
在一个家庭或者一个公司中 路由器的作用主要有两个(①路由–决定了数据包从来源到目的地的路径 通过映射表决定 ②转送–通过路由器知道了映射表 就可以将数据包从路由器的输入端转移给合适的输出端) 我们可以画一张图来分析一下: 我们好好来解析一下这张图&#x…...
Studying-多线程学习Part3 - condition_variable与其使用场景、C++11实现跨平台线程池
来源:多线程学习 目录 condition_variable与其使用场景 生产者与消费者模型 C11实现跨平台线程池 condition_variable与其使用场景 生产者与消费者模型 生产者-消费者模式是一种经典的多线程设计模式,用于解决多个线程之间的数据共享和协作问题。…...
开发自定义starter
环境:Spring Cloud Gateway 需求:防止用户绕过网关直接访问服务器,用户只需引入依赖即可。 1、创建项目 首先创建一个spring boot项目 2、配置pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xm…...
Vue2电商平台(五)、加入购物车,购物车页面
文章目录 一、加入购物车1. 添加到购物车的接口2. 点击按钮的回调函数3. 请求成功后进行路由跳转(1)、创建路由并配置路由规则(2)、路由跳转并传参(本地存储) 二、购物车页面的业务1. uuid生成用户id2. 获取购物车数据3. 计算打勾商品总价4. 全选与商品打勾(1)、商品全部打勾&a…...
众数信科 AI智能体政务服务解决方案——寻知智能笔录系统
政务服务解决方案 寻知智能笔录方案 融合民警口供录入与笔录生成需求 2分钟内生成笔录并提醒错漏 助办案人员二次询问 提升笔录质量和效率 寻知智能笔录系统 众数信科AI智能体 产品亮点 分析、理解行业知识和校验规则 AI实时提醒用户文书需注意部分 全文校验格式、内容…...
Redis篇(面试题 - 连环16炮)(持续更新迭代)
目录 目录 目录 (第一炮)一、Redis?常用数据结构? 1. 项目里面到了Redis,为什么选用Redis? 2. Redis 是什么? 3. Redis和关系型数据库的本质区别有哪些? 4. Redis 的线程模型…...
selenium元素定位
find_element和find_elements 元素定位有两个表达式,分别为find_element()和find_elements(),它们的不同点如下: find_element():找出的为单个元素,若有多个元素为同一表达式,则默认定位第一个元素&#…...
美畅物联丨视频汇聚从“设”开始:海康威视摄像机设置详解
在运用畅联云平台进行视频汇聚与监控管理时,海康威视的安防摄像机凭借其卓越的性能与广泛的应用兼容性,成为了众多用户的首选产品。海康威视摄像机参数设置与调试对于实现高效的安防监控至关重要。今天,让我们一同深入学习海康摄像机的参数设…...
聊天机器人羲和的代码04
进一步完善和优化聊天机器人GUI,使其更加丰富和美观,采取了以下措施: 添加图标:为应用程序添加一个图标。 调整布局:进一步优化布局,使其更加美观。 增加样式:使用更多的样式和主题来提升视觉效果。 添加动画:增加加载动画以提高用户体验。 优化控件:使用更现代的控件…...
Linux安装配置Jupyter Lab并开机自启
文章目录 1、安装配置jupyter lab首先需要使用pip3安装:生成配置文件和密码: 2、设置开机自启首先通过which jupyter查询到可执行文件路径:设置自启服务: 1、安装配置jupyter lab 首先需要使用pip3安装: pip3 instal…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
