在被iptables教训一顿之后,让ChatGTP给解释了一下iptables和UFW之间的关系 ChatGPT 解答 iptables 和 UFW的纠缠关系,然后决定就靠UFW来解决防火墙的问题了,这让我想起宝塔,是真方便。。。
记录一下UFW的基本用法,备忘
系统环境:Ubuntu 22.04 LTS
一般情况下我们也就管理一下 filter 表做些包过滤罢了,所以这里只记录 INPUT ,其它规则链表不研究
需要知道并注意的前置信息
在使用UFW之前,得先了解几点iptables的基本信息,主要是防止在在配置过程中把自己给ban了,我在改SSH端口的时候曾把自己给挡在门外。。。
iptables 设定配置是直接生效,而UFW比较混沌,有时直接生效,但建议重载一下
iptables 的配置是直接加入的 INPUT 的 (一般加配置都是这个规则链吧) ,而 UFW 则是有专门的规则列表,然后 INPUT 引用它,可以看ChatGPT的回答,在我实际使用中,iptables 加入的INPUT的规则会优先会高于 UFW 的规则
如下图,从第7行规则开始,就是引用UFW配置的规则,可以明显看到 iptables 命令配置的规则是高于UFW的,所以建议将SSH的端口用iptables添加一次,以防UFW崩了导致连不上
还有一个需要注意的是 iptables 的默认动作,我在VPS中碰到 INPUT 默认动作为 ALLOW 的情况,这导致门户大开,我使用了 VPS 商家默认自动安装的镜像,我怀疑是为避免用户弄好应用无法访问的情况,当然也可以UFW中使用 default 修改
我的做法是直接配置 iptables 的配置文件 /etc/iptables/rules.v4
( IPv6对应 rules.v6 文件 ),主要配置下面标出的两项,分别是默认 INPUT 动作为 DROP 和放行SSH端口
UFW 的基本使用
最后才是主角,Ubuntu官方介绍 https://help.ubuntu.com/community/UFW
UFW 基本命令
- 启用,并开机启动:
sudo ufw enable
- 禁用:
sudo ufw disable
- 重置:
sudo ufw reset
- 重载配置:
sudo ufw reload
如果碰到了 Firewall not enabled (skipping reload) 的情况,而UFW状态是active,可以尝试重启一下系统试试,或者重启一下iptables >>>sudo systemctl restart iptables
(https://superuser.com/questions/590600/ufw-is-active-but-not-enabled-why)
UFW 的增、删、改、查
以这四个操作来总结,并不比图形界面难,先从最简单的查开始
查
- 查看UFW规则 ,并显示行号
sudo ufw status numbered
- 查看防火墙规则
sudo ufw show raw
这个和 iptables -L -n –line-numbers 类似,出来完整的信息,但是多了IPV6的信息,iptables 查IPV6的规则需要使用 ip6tables 命令 - 查看状态
sudo ufw status verbose
Status: active 表示服务启用中
Status: inactive 表示服务关闭中
注意 incoming /outgoing 的默认规则
删
先按上面的查看并显示行号,然后直接删除该行:sudo ufw delete [Line Number]
改
少记些命令,要改?我都是直接删除再添加。。。。
增
- 默认允许出站:
ufw default allow outgoing
- 默认拒绝入站:
ufw default deny incoming
- 拒绝指定端口:
sudo ufw deny 21 [ 21/tcp | 21/udp ]
- 开放指定端口:
sudo ufw allow 22 [ 22/tcp | 22/udp ]
- 给特定地址开放指定端口:
sudo ufw allow from 192.168.0.0/24 to any port 80
- 给特定地址开放指定端口的指定协议:
sudo ufw allow from 192.168.0.0/24 to any port 443 proto tcp
- 添加到指定位置:
sudo ufw insert 1 allow 8080
增加规则需要注意几点:
- 默认不指定TCP或UDP协议的话,则是包含两者
- 当规则内容无法判定IPv4或IPv6的时候,会添加两条规则,分别应用于IPv4和IPv6,它们会分别扎堆显示,IPv4排在前面,IPv6的规则会在后面且使用(v6)标识
- 添加时尤其注意顺序,注意冲突
本文是 居家服务器折腾笔记 的一部分
以前自己手动安装网站环境时折腾过iptables,然后被iptables搞到没法访问,噗~
之前一些出站规则导致后台无法连服务端,然后WP后台卡死进不去,这才换成UFW