防火墙配置工具 UFW

在被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

增加规则需要注意几点:

  1. 默认不指定TCP或UDP协议的话,则是包含两者
  2. 当规则内容无法判定IPv4或IPv6的时候,会添加两条规则,分别应用于IPv4和IPv6,它们会分别扎堆显示,IPv4排在前面,IPv6的规则会在后面且使用(v6)标识
  3. 添加时尤其注意顺序,注意冲突

本文是 居家服务器折腾笔记 的一部分

4 thoughts on “防火墙配置工具 UFW”

    1. 之前一些出站规则导致后台无法连服务端,然后WP后台卡死进不去,这才换成UFW

Leave a Reply

Your email address will not be published. Required fields are marked *