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