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

UFW防火墙详解

简介

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 的规则。

相关文章:

  • 学习JavaEE的日子 day13 封装 static private this 类加载机制
  • 超优秀的三维模型优化平台(轻量化、格式转换、可视化等)
  • 360勒索病毒:了解最新变种.360,以及如何保护您的数据
  • 白山云基于StarRocks数据库构建湖仓一体数仓的实践
  • Git将某个文件合并到指定分支
  • 【MySQL】权限控制
  • Bitcoin的Covenants——合同化管理UTXO的花费方式
  • MOJO语言的诞生
  • 【DFS】200.岛屿数量
  • 常用的git diff命令用法汇总和示例
  • 如何绘制出图像的色素分布直方图
  • 【python 的各种模块】(9) 在python使用PIL( 即pillow模块 ) 修改图片
  • Python 语法糖
  • Jmeter的文件参数化:CSV数据文件设置和_CSVRead函数
  • 基于python舆情分析可视化系统+情感分析+爬虫+机器学习(源码)✅
  • Git同步原始仓库到Fork仓库中
  • JavaScript实现分页效果
  • MaxCompute访问TableStore(OTS) 数据
  • nodejs:开发并发布一个nodejs包
  • php ci框架整合银盛支付
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Spring Boot快速入门(一):Hello Spring Boot
  • Vue2.0 实现互斥
  • 从PHP迁移至Golang - 基础篇
  • 微信公众号开发小记——5.python微信红包
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (补)B+树一些思想
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (十八)SpringBoot之发送QQ邮件
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (循环依赖问题)学习spring的第九天
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .net 4.0发布后不能正常显示图片问题
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Core 中的路径问题
  • .NET 设计一套高性能的弱事件机制
  • .net 托管代码与非托管代码
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • @EnableWebMvc介绍和使用详细demo
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [autojs]逍遥模拟器和vscode对接
  • [Deepin 15] 编译安装 MySQL-5.6.35
  • [JS]JavaScript 注释 输入输出语句