以下所有内容均来自《如何在Ubuntu 20.04配置防火墙ufw》

安装

apt install ufw
ufw enable #安装服务并启动防火墙
ufw disable #禁用服务并关闭防火墙
ufw reset
ufw reload #重新载入配置文件

添加规则

ufw allow ssh #ssh 是app名字
ufw allow 7722/tcp
ufw allow 80,443/tcp # 允许80 和 443 端口入站
ufw allow 40000:41000/tcp # 允许40000~41000 端口入站
ufw deny 21/tcp # 禁止21端口入站

ufw allow http #如果http服务存在
ufw allow 'Nginx HTTP' #如果Nginx服务存在
ufw allow 80 #tcp和udp 80
ufw allow 80/tcp #仅tcp 80
ufw allow proto tcp to any port 80 #仅tcp 80 的另一种形式

ufw allow from 192.168.1.100 #仅允许单IP地址
ufw allow from 192.168.1.100 to any port 3306 #仅允许单IP地址连接3306
ufw allow from 192.168.1.0/24 to any port 3306 
ufw allow in on eth2 to any port 3306

ufw deny from 23.24.25.100 #拒绝指定的IP连接
ufw deny from 23.24.25.0/24  #整个网段
ufw deny proto tcp from 23.24.25.0/24 to any port 80,443

默认规则:

  1. Allow any outgoing connections
  2. Deny any incoming connections

配置NAT转发

  1. 在sysctl.conf 中设置: net.ipv4.ip_forward=1
  2. 修改/etc/default/ufw,设置: DEFAULT_FORWARD_POLICY=”ACCEPT”
  3. 编辑/etc/ufw/before.rules,在末位添加nat表如下
#NAT table rules 启用nat 表
*nat
# 允许POSTROUTING 链
:POSTROUTING ACCEPT [0:0]

# 转发eth0接口的数据包,请将eth0更改为你对应的接口
-A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE

# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

ufw的配置文件默认存放在 /etc/ufw 路径下。