UFW防火墙详解

news2025/10/23 3:21:41

简介

UFW 是一个简化了 iptables 防火墙配置的前端工具。它的设计目标是让配置防火墙变得更加简单,同时保持足够的灵活性以满足一般用户和管理员的需求。UFW 在底层仍然使用 iptables,但通过提供更简单的语法和默认配置,使得配置过程更加友好。

UFW工作原理

UFW 的核心原理是基于 iptables,即 Linux 内核中用于配置防火墙规则的工具。它通过定义规则集,来控制网络数据包的流动。规则集包括允许或拒绝特定源、目标、端口和协议的数据包。UFW 提供了简单的命令行接口,使用户能够轻松地添加、删除和管理这些规则。
用户友好性: ufw 的目标之一是提供用户友好的界面,使非专业用户也能够轻松地配置防火墙规则。它通过使用易于理解的语法来简化iptables的复杂性。
默认策略: ufw 具有默认的防火墙策略,允许所有出站流量,但拒绝所有入站流量。这意味着未经配置的情况下,所有传入连接都会被拒绝,而所有传出连接都会被允许。
应用程序配置: ufw 允许你通过应用程序名称或端口号配置规则,而无需直接操作iptables规则。这样,用户可以轻松地允许或阻止特定应用程序的网络访问。
简化规则管理: ufw 提供了一系列命令,使用户可以轻松地添加、删除、启用或禁用防火墙规则,而无需深入了解iptables的细节。

常用的ufw命令

安装ufw

sudo apt-get install ufw

启用/禁用ufw

sudo ufw enable
sudo ufw disable

查看防火墙状态

sudo ufw status

原理:显示当前防火墙的状态和规则。
允许特定端口

sudo ufw allow 22

原理:允许来自任何源的 TCP 端口 22 的连接。
允许特定协议和端口

sudo ufw allow 80/tcp

原理:允许来自任何源的 TCP 端口 80 的连接。
允许特定IP地址访问特定端口

sudo ufw allow from 192.168.1.2 to any port 3306

原理:允许来自 IP 地址 192.168.1.2 的连接访问 TCP 端口 3306。
拒绝特定端口

sudo ufw deny 25

原理:拒绝来自任何源的 TCP 端口 25 的连接。
删除规则

sudo ufw delete allow 22

原理:删除先前添加的允许 TCP 端口 22 的规则。
允许特定应用程序的流量

sudo ufw allow OpenSSH

原理:允许 OpenSSH 的流量,UFW 会查找已知应用程序对应的端口并允许其流量。
允许指定网段的流量

sudo ufw allow from 192.168.1.0/24

原理:允许来自 IP 地址段 192.168.1.0/24 的所有流量。
允许特定网段和端口的流量

sudo ufw allow from 192.168.1.0/24 to any port 80

原理:允许来自 IP 地址段 192.168.1.0/24 的流量访问 TCP 端口 80。
限制连接次数

sudo ufw limit 22

原理:对于 TCP 端口 22,限制连接的尝试次数,防止暴力破解。
允许所有本地流量

sudo ufw allow in on lo

原理:允许所有本地回环接口的流量。
拒绝所有流入流量

sudo ufw default deny incoming

原理:将默认的流入流量策略设置为拒绝。
允许所有流出流量

sudo ufw default allow outgoing

原理:将默认的流出流量策略设置为允许。
查看规则编号

sudo ufw status numbered

原理:显示带有编号的规则列表,以便更容易地删除或修改规则。
重置防火墙规则

sudo ufw reset

原理:删除所有已配置的规则并将默认策略重置为拒绝所有。
查看支持的应用程序列表

sudo ufw app list

原理: 显示系统上已知的应用程序列表,这些应用程序的规则可以通过应用程序名添加。
启用日志记录

sudo ufw logging on

原理: 启用 UFW 的日志记录功能,将流量日志记录到系统日志中。
禁用日志记录

sudo ufw logging off

原理: 禁用 UFW 的日志记录功能,停止将流量日志记录到系统日志中。
查看日志

sudo ufw show raw

原理: 显示防火墙的原始日志信息。
启用对 IPv6 的支持

sudo ufw ipv6 enable

原理: 启用对 IPv6 的支持,允许配置 IPv6 规则。
禁用对 IPv6 的支持

sudo ufw ipv6 disable

原理: 禁用对 IPv6 的支持,停止处理 IPv6 规则。
查看帮助信息

sudo ufw --help

原理: 显示 UFW 的命令行帮助信息。
查看版本信息

sudo ufw version

原理: 显示 UFW 的版本信息。
允许所有流入流量,除了指定端口

sudo ufw allow in on eth0 to any port 22

原理: 允许流入 eth0 接口的所有流量,但拒绝 TCP 端口 22 之外的所有流量。
拒绝特定应用程序的流量

sudo ufw reject Apache

原理: 拒绝 Apache 应用程序的流量。
使用应用程序配置文件添加规则

sudo ufw allow 'Nginx Full'

原理:使用应用程序配置文件添加 Nginx Full 模式的规则,包括 HTTP(80)和 HTTPS(443)端口。
查看活动的防火墙规则

sudo ufw show added

原理:显示当前活动的防火墙规则。
在规则之前插入规则

sudo ufw insert 1 allow 8080

原理:在规则列表的顶部插入一条允许端口 8080 的规则。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1394108.html

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

相关文章

Docker之安装Nginx

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《Docker之Dockerfile构建镜像》。🎯&…

软件测试|深入了解Python中的super()函数用法

简介 Python中的super()函数是一种强大的工具,用于在子类中调用父类的方法。它在面向对象编程中非常有用,可以让你轻松地扩展和重用现有的类。本文将详细介绍super()函数的用法,并提供一些示例来帮助你更好地理解它的功能。 什么是super()函…

C#中的文件操作

为什么要对文件进行操作? 在计算机当中,数据是二进制的形式存在的,文件则是用于存储这些数据的单位,因此在需要操作计算机中的数据时,需要对文件进行操作。 在程序开发过程中,操作变量和常量的时候&#…

Kotlin学习最快速的方式

引言: 前段时间在一个技术交流群看到一句话:"在我面试的过程中,遇到一位面试者,做ios开发的,Swift 语言出来4-5年了,30多岁的人,连这个都不会";今天再次回想了这句话,说的不正我这样的人吗?一个之前做Anroid应用开发的,现在连Kotlin都不会;做技术的,还是要紧跟时代…

基于YOLOv8深度学习的智能肺炎诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

数组中第K个最大元素(算法村第十关白银挑战)

215. 数组中的第K个最大元素 - 力扣(LeetCode) 给定整数数组 nums 和整数 k,请返回数组中第 **k** 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现…

Leetcode刷题-(1~5)-Java+Python+JavaScript

算法题是程序员的基本功,也是各个大厂必考察的重点,让我们一起坚持写算法题吧 遇事不决,可问春风,春风不语,即是本心。 我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就…

【AI接口】语音版、文心一言大模型和AI绘图、图片检测API

文章目录 一、语音版大模型AI1、接口2、请求参数3、请求参数示例4、接口返回示例 二、AI图片鉴黄合规检测API1、接口2、请求参数3、请求参数示例4、接口返回示例5、报错说明6、代码开源 三、人工智能AI绘画API1、接口2、请求参数3、请求参数示例4、接口返回示例5、AI绘画成果展…

rabbitmq-java基础详解

一、rabbitmq是什么? 1、MQ定义 MQ(Message Queue)消息队列 主要解决:异步处理、应用解耦、流量削峰等问题,是分布式系统的重要组件,从而实现高性能,高可用,可伸缩和最终一致性的架…

LabVIEW精确测量产品中按键力和行程

项目背景 传统的按键测试方法涉及手工操作,导致不一致和效率低下。在汽车行业中,带有实体按键的控制面板非常常见,确保一致的按键质量至关重要。制造商经常在这些组件的大规模、准确测试中遇到困难。显然,需要一个更自动化、精确…

Unity3D和three.js的比较

一、Unity3D和three.js简介 Unity3D是一款跨平台的游戏引擎,可以用于开发2D和3D游戏。它提供了一个可视化的开发环境,包含了强大的编辑器和工具,使开发者可以方便地创建游戏场景、添加物体、设置物理效果、编写脚本等。Unity3D支持多种平台,包括PC、移动设备、主机等,可以…

uniapp uni.chooseLocation调用走失败那里,错误码:112

问题:我配置了百度上所有能配置的,一直调用不成功,如下图配置的 1:第一个 配置 代码: "permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}…

华为设备NAT的配置

实现内网外网地址转换 静态转换 AR1: sys int g0/0/0 ip add 192.168.10.254 24 int g0/0/1 ip add 22.33.44.55 24 //静态转换 nat static global 22.33.44.56 inside 192.168.10.1 动态转换 最多有两台主机同时访问外网 AR1: sys int g0/0/0 ip add…

【前沿技术杂谈:人工智能与种族主义 】谷歌在其视觉人工智能产生种族主义结果后道歉

【前沿技术杂谈:人工智能与种族主义 】谷歌在其视觉人工智能产生种族主义结果后道歉 背景调查现实世界的后果渐进式改变 一项自动标记图像的谷歌服务会根据给定图像的肤色产生截然不同的结果。该公司解决了这个问题,但问题可能更广泛。 为抗击新冠病毒&…

KubeSphere 开源社区 2023 年度回顾与致谢

2023 年结束了,让我们再一次一起回顾一下 KubeSphere 开源社区在过去一年的变化。更重要的是,本篇文章将会对 2023 年所有参与过 KubeSphere 社区贡献的成员致以最诚挚的感谢,快来看看有没有你! 开源项目发展情况 2023 年&#…

C语言:数据在内存中的存储形式

一、整数在内存中的存储 关于整数在内存中的存储形式,在博主之前写的文章里已经介绍了!友友们可以去点下面链接去看,这里就不过多介绍。 C语言:进制的转换以及原码、反码、补码 我们以整型在内存中的存储形式为基础&#xff0c…

k8s---ingress对外服务(ingress-controller)

ingress 概念 k8s的对外服务,ingress service作用现在两个方面: 1、集群内部:不断跟踪的变化,更新endpoint中的pod对象,基于pod的ip地址不断变化的一种服务发现机制。 2、集群外部:类似于负载均衡器&a…

群晖nas内网穿透

目录 一、前言 二、操作步骤 (一)查看群晖是否有ipv6地址 (二)下载安装docker (三)docker里面安装ddns-go (四)阿里云官网购买域名 (五)域名解析 阿里…

如何实现无公网ip远程访问内网本地BUG管理服务【内网穿透】

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

python数字图像处理基础(五)——Canny边缘检测、图像金字塔、图像分割

目录 Canny边缘检测原理步骤 图像金字塔1.高斯金字塔2.拉普拉斯金字塔 图像分割图像轮廓检测1.检测轮廓2.绘制轮廓3.补充 Canny边缘检测 梯度是什么? 梯度就是变化的最快的那个方向 edge cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]…