UFW 是 Ubuntu 默认的一款防火墙工具,它提供了一套管理网络过滤器的框架,又提供了控制防火墙的命令行界面接口。它给那些不熟悉防火墙概念的 Linux 新用户提供了友好、易使用的用户界面,用来设置复杂的防火墙规则。
我相信有很多很多 iptables 前端应用,但 UFW 绝对是那些想要快速、简单的就建立自己的防火墙,而且还很安全的用户的最佳替代品之一。推荐 Debian、Ubuntu 和 Linux Mint 这些发布版本的新用户使用 UFW 防火墙工具。
安装 UFW
检查下系统上是否已经安装了 UFW
sudo dpkg --get-selections | grep ufw
如还没有安装,通过 apt-get install
命令来安装
sudo apt-get updatesudo apt-get install ufw
开启 IPv6 支持
若不启用 IPv6 支持,默认情况 ufw 防火墙只针对 IPv4。若要启用 IPv6 支持,请使用 nano
、vim
或者其他您喜欢的编辑器打开 UFW 配置:
sudo nano /etc/default/ufw
然后确定 IPV6 的值为 yes。它应该如下所示:
IPV6=yes
保存并关闭文件。
默认策略
刚开始使用 UFW 防火墙,则要定义的第一个规则是您的默认策略
sudo ufw default deny incomingsudo ufw default allow outgoing
默认策略为拒绝传入并允许传出连接。
启用/禁用
在使用前,你应该检查下 UFW 是否已经在运行。
sudo ufw status
如果你发现状态是 inactive
,意思是没有被激活或不起作用。
sudo ufw enable #启用sudo ufw disable #禁用sudo ufw reset #重置
启用 ufw
前,请添加允许 ssh
连接的相关规则,如下:
sudo ufw allow ssh
使用与配置
列出当前UFW规则
sudo ufw status verbose
添加规则
允许入站(allow)
默认情况,没有允许就是拒绝(入站),使用 ufw allow <端口>
来添加允许访问的端口或协议。规则中未明确指定 tcp
或 udp
协议,默认将对 tcp
或 udp
协议同时生效。
示例如下:
#添加22端口sudo ufw allow ssh#添加80端口sudo ufw allow http#添加443端口sudo ufw allow https#添加2333端口,仅TCP协议sudo ufw allow 2333/tcp#添加6666端口,仅UDP协议sudo ufw allow 6666/udp#添加8888到9999之间的端口sudo ufw allow 8888:9999# 允许来自特定 IP 地址的连接sudo ufw allow from 203.0.113.4# 允许特定ip连接特定的端口sudo ufw allow from 203.0.113.4 to any port 22# 允许 203.0.113.1 到 203.0.113.254 连接sudo ufw allow from 203.0.113.0/24# 允许 203.0.113.1 到 203.0.113.254 连接指定端口sudo ufw allow from 203.0.113.0/24 to any port 22
拒绝访问(deny)
使用 sudo ufw deny <端口>
来添加拒绝入站的端和协议,与添加允许的类似,差别只是 allow
换成了 deny
。
删除规则
普通删除
先使用 sudo ufw status
查看规则,再使用 sudo ufw delete [规则] <端口>
来删除规则。此方法将删除 IPv4 和 IPv6 规则(如果存在)。
sudo ufw delete allow 2333/tcp
通过编号删除
如果你有很多条规则,则在运行 sudo ufw status
命令查看规则时通过追加 numbered
参数,来给每条规则显示编号。
To Action From-- ----------- ------[1] 22/tcp ALLOW 192.168.0.104[2] 21/tcp ALLOW Anywhere[3] 21/tcp ALLOW Anywhere (v6)
然后使用 sudo ufw delete <编号>
来删除规则会是更方便的选择。但需要注意的是,如果启用了 IPv6,则还需要删除相应的 IPv6 规则。