当前位置: 首页 > news >正文

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​: 指定目标为任何地址的规则。

三、命令示例

  1. 启用 ufw:

    sudo ufw enable
    
  2. 禁用 ufw:

    sudo ufw disable
    
  3. 允许所有传入流量:

    sudo ufw default allow incoming
    
    • default​:这个关键字用于设置默认的策略,而不是针对特定的服务或端口。

    • allow​:允许。

    • incoming​:这个关键字指定了规则的类型,这里是针对传入的流量。

  4. 拒绝所有传入流量:

    sudo ufw default deny incoming
    
    • deny​:拒绝。
  5. 允许所有传出流量:

    sudo ufw default allow outgoing
    
    • outgoing​:这个关键字指定了规则的类型,这里是针对传出的流量。
  6. 拒绝所有传出流量:

    sudo ufw default deny outgoing
    
  7. 允许来自特定 IP 地址的流量:

    sudo ufw allow from 192.168.1.100
    
  8. 拒绝来自特定 IP 地址的流量:

    sudo ufw deny from 192.168.1.200
    
  9. 允许特定端口的流量(例如,TCP 端口 80):

    sudo ufw allow 80/tcp
    
  10. 拒绝特定端口的流量(例如,UDP 端口 53):

    sudo ufw deny 53/udp
    
  11. 允许特定服务的流量(例如,SSH):

    sudo ufw allow ssh
    
  12. 拒绝特定服务的流量(例如,MySQL):

    sudo ufw deny mysql
    
  13. 限制特定端口的连接尝试(例如,每分钟不超过 20 次):

    sudo ufw limit 22/tcp
    
  14. 删除特定规则的编号(例如,删除编号为 3 的规则):

    sudo ufw delete 3
    
  15. 在特定位置插入规则(例如,在编号 5 的位置插入规则):

    sudo ufw insert 5 allow 2222/tcp
    
  16. 在规则列表的开头添加规则(例如,允许 TCP 端口 443):

    sudo ufw prepend allow 443/tcp
    
  17. 重新加载 ufw 的规则:

    sudo ufw reload
    
  18. 重置 ufw 的规则到默认状态:

    sudo ufw reset
    
  19. 显示 ufw 的当前状态:

    sudo ufw status
    
  20. 显示 ufw 的当前状态,包括规则编号:

    sudo ufw status numbered
    
  21. 显示 ufw 的详细状态:

    sudo ufw status verbose
    
  22. 显示 ufw 的版本信息:

    sudo ufw version
    
  23. 列出所有应用程序配置文件:

    sudo ufw app list
    
  24. 显示特定应用程序配置文件的详细信息(例如,SSH):

    sudo ufw app info ssh
    
  25. 更新特定应用程序配置文件(例如,SSH):

    sudo ufw app update ssh
    
  26. 设置默认的应用程序策略(例如,允许 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 网段的连接?

  1. 限制默认连接次数。编辑 /etc/ufw/ufw.conf​ 文件,设置参数 LIMIT = "5/minute"​,保存。执行 sudo ufw reload​ 重载 ufw 配置。
  2. 允许特例。

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

环境&#xff1a;Spring Cloud Gateway 需求&#xff1a;防止用户绕过网关直接访问服务器&#xff0c;用户只需引入依赖即可。 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炮)(持续更新迭代)

目录 目录 目录 &#xff08;第一炮&#xff09;一、Redis&#xff1f;常用数据结构&#xff1f; 1. 项目里面到了Redis&#xff0c;为什么选用Redis&#xff1f; 2. Redis 是什么&#xff1f; 3. Redis和关系型数据库的本质区别有哪些&#xff1f; 4. Redis 的线程模型…...

selenium元素定位

find_element和find_elements 元素定位有两个表达式&#xff0c;分别为find_element()和find_elements()&#xff0c;它们的不同点如下&#xff1a; find_element()&#xff1a;找出的为单个元素&#xff0c;若有多个元素为同一表达式&#xff0c;则默认定位第一个元素&#…...

美畅物联丨视频汇聚从“设”开始:海康威视摄像机设置详解

在运用畅联云平台进行视频汇聚与监控管理时&#xff0c;海康威视的安防摄像机凭借其卓越的性能与广泛的应用兼容性&#xff0c;成为了众多用户的首选产品。海康威视摄像机参数设置与调试对于实现高效的安防监控至关重要。今天&#xff0c;让我们一同深入学习海康摄像机的参数设…...

聊天机器人羲和的代码04

进一步完善和优化聊天机器人GUI,使其更加丰富和美观,采取了以下措施: 添加图标:为应用程序添加一个图标。 调整布局:进一步优化布局,使其更加美观。 增加样式:使用更多的样式和主题来提升视觉效果。 添加动画:增加加载动画以提高用户体验。 优化控件:使用更现代的控件…...

Linux安装配置Jupyter Lab并开机自启

文章目录 1、安装配置jupyter lab首先需要使用pip3安装&#xff1a;生成配置文件和密码&#xff1a; 2、设置开机自启首先通过which jupyter查询到可执行文件路径&#xff1a;设置自启服务&#xff1a; 1、安装配置jupyter lab 首先需要使用pip3安装&#xff1a; pip3 instal…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...