ufw(Uncomplicated Firewall)是Ubuntu系统上默认的防火墙组件,它为轻量化配置iptables而开发,提供了一个非常友好的界面用于创建基于IPv4和IPv6的防火墙规则
ufw在Ubuntu 8.04 LTS后的所有发行版中默认可用,它通过命令行使用,目的是使防火墙配置简单(即不复杂)。
ufw的主要特点包括:
简化管理:ufw提供了一个简化的界面,使得用户可以更容易地管理网络规则,无需深入了解iptables的复杂性。
默认规则:ufw允许设置默认的入站和出站流量策略,例如,默认可以设置为拒绝所有入站流量,允许所有出站流量。
规则添加:用户可以添加规则来允许或拒绝特定的端口、服务或IP地址。
高级规则:ufw支持基于IP地址、子网和IP地址/子网/端口组合的高级规则。
用户规则文件:ufw允许用户在/etc/ufw/user.rules文件中直接配置防火墙规则,修改后需要重新载入ufw以使新规则生效。
状态检查:用户可以使用sudo ufw status命令来检查ufw的状态,包括当前的防火墙规则。
启用和禁用:ufw可以通过sudo ufw enable和sudo ufw disable命令来启用和禁用防火墙。
ufw的设计哲学是提供一个不复杂的防火墙管理工具,使得即使是没有深入网络知识的用户也能够轻松配置防火墙规则,保护系统免受未授权访问。
通过ufw,用户可以根据自己的需要,快速地设置防火墙规则,从而提高系统的安全性。
安装
如何在 Ubuntu/Debian 上安装
sudo apt update
sudo apt install ufw
如何在 CentOS/Red Hat 上安装
sudo yum install epel-release
sudo yum install ufw
相关示例用法
如何查看当前 ufw 的状态
sudo ufw status
如何查看 ufw 的详细状态信息
sudo ufw status verbose
如何启用 ufw
代码:sudo ufw enable
如何禁用 ufw
代码:sudo ufw disable
允许指定的流量
代码:sudo ufw allow <port/service>
设置允许 http 80端口
代码:sudo ufw allow 80
设置允许 https 443端口
sudo ufw allow 443
允许 ssh 服务
sudo ufw allow ssh
ufw如何拒绝流量
sudo ufw deny <port/service>
如 sudo ufw deny from 192.168.1.1
拒绝来自特定IP地址的所有输入流量:
sudo ufw deny from 192.168.1.1 to any
拒绝指定的端口(例如,拒绝TCP的22端口):
sudo ufw deny 22/tcp
拒绝特定网络的流量(例如,拒绝192.168.1.0/24网络):
sudo ufw deny from 192.168.1.0/24
拒绝特定协议的流量(例如,拒绝UDP流量):
sudo ufw deny proto udp
确保在执行这些操作之前,您已经启用了UFW:
sudo ufw enable
如何拒绝 FTP 21端口
sudo ufw deny 21
ufw允许来自特定 IP 的流量
sudo ufw allow from <IP>
# 例如:
sudo ufw allow from 192.168.1.100
适用:允许从特定 IP 到特定端口的流量
sudo ufw allow from <IP> to any port <port>
# 例如:
sudo ufw allow from 192.168.1.100 to any port 22
适用:允许子网的流量
sudo ufw allow from <subnet>
# 例如:
sudo ufw allow from 192.168.1.0/24
适用:移除指定的规则
sudo ufw delete allow <port/service>
# 例如:
sudo ufw delete allow 80
适用:按编号删除规则
先用 sudo ufw status numbered 查看编号
再执行:
sudo ufw delete <rule_number>
# 例如:
sudo ufw delete 3
适用:启用 ufw 日志
日志记录在 /var/log/ufw.log 文件
sudo ufw logging on
如何设置日志级别
可用的日志级别有:low, medium, high, full
sudo ufw logging medium
禁用 ufw 日志
sudo ufw logging off
ufw限制 ssh 连接尝试次数
sudo ufw limit ssh
ufw向发送者发送拒绝响应
sudo ufw reject <port/service>
# 例如:
sudo ufw reject 8081
启用 IPv6 支持
编辑 ufw 配置文件:/etc/ufw/ufw.conf,添加如下行:
IPV6=yes
重置 ufw 为默认设置
将禁用 ufw,删除所有规则并重置为默认配置。
sudo ufw reset
列出可用的应用程序配置文件
sudo ufw app list
允许一个应用的流量
sudo ufw allow <app_name>
# 例如:
sudo ufw allow nginx
ufw显示应用流量配置详情
sudo ufw app info <app_name>
# 例如:
sudo ufw app info nginx
ufw允许 MySql 3306端口
sudo ufw allow from 192.168.1.0/24 to any port 3306
ufw允许某个范围端口
如果你想指定协议,可以替换 tcp
为 udp
sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp
以上确保在执行这些操作之前你有适当的权限,并且在进行任何重要的更改之前备份你的数据和防火墙规则。