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

你可能感兴趣的:(服务器,linux,运维)