UFW,或称Uncomplicated Firewall,是iptables的一个接口,为不熟悉防火墙概念的初学者提供了易于使用的界面,同时支持IPv4和IPv6,广受欢迎。

使用UFW来管理防火墙规则,十分方便好用。

安装UFW

# Ubuntu & Debian使用以下命令
apt-get install ufw -y

# CentOS使用以下命令
yum install epel-release -y
yum install --enablerepo="epel" ufw -y

UFW安装后,可以通过以下命令来启动UFW服务并使其在启动时启动(一般在完成默认配置后再重启):

ufw enable

使用以下命令检查UFW的状态:

ufw status 

禁用UFW防火墙:

ufw disable

如果你决定要重新开始,则可以使用reset命令:

ufw reset

这将禁用UFW并删除之前定义的任何规则。

UFW配置文件目录:

  • /etc/default/ufw

UFW常用命令

默认情况下,UFW默认策略设置为阻止所有传入流量并允许所有传出流量。

一般的,我们先设置放行的端口和IP,最后设置入、出规则。

ufw reset
ufw allow 22 # SSH 端口
ufw allow 80
ufw allow 443
ufw allow 15566
ufw allow from 123.123.123.123  # 放行的白名单IP
ufw allow from 106.106.106.0/24  # 放行的白名单IP段
# 阻止所有传入流量并允许所有传出流量
ufw default deny incoming
ufw default allow outgoing
ufw enable

UFW可以基于TCP或UDP协议来过滤数据包,命令如下:

ufw allow 80/tcp
ufw allow 21/udp

最后,使用以下命令查看已添加规则的状态:

ufw status verbose

应该可以看到如下输出:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
To                         Action      From
80/tcp                     ALLOW IN    Anywhere
21/udp                     ALLOW IN    Anywhere
80/tcp (v6)                ALLOW IN    Anywhere (v6)
21/udp (v6)                ALLOW IN    Anywhere (v6)

还可以使用以下命令随时拒绝指定端口任何传入和传出的流量:

ufw deny 80
ufw deny 21

如果要删除规则,只需在原始规则前加上delete即可,如下所示:

ufw delete deny 80
ufw delete deny 21

也可以按编号删除规则,使用以下命令查看规则及其编号:

ufw status numbered

输出:

OutputStatus: active
     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 443/tcp                    ALLOW IN    Anywhere
[ 3] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 4] 443/tcp (v6)               ALLOW IN    Anywhere (v6)

删除编号为3的规则:

ufw delete 3

要允许某个IP地址连接特定的某个端口,可以运行以下命令:

ufw allow from 62.13.209.36 to any port 8080

进一步的,可以指定特定的IP段和TCP/UDP协议:

ufw deny from 62.13.209.33 to any port 22
ufw allow from 62.13.209.0/24 to any port 8080 proto tcp

查看UFW防火墙的日志:

tail -f /var/log/ufw.log

更多姿势请查看UFW官方文档:

https://wiki.ubuntu.org.cn/Ufw%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97