这篇是 UFW(Uncomplicated Firewall)速查。目标:简单、够用、好记。

防火墙简述

防火墙用于监控和过滤进出网络流量,通过规则决定放行或阻止。

Linux 原生防火墙是 iptables,配置强大但繁琐。Ubuntu 提供了基于 iptablesufw,语法更易读。

安装 ufw

sudo apt update
sudo apt install ufw

启用 ufw(先放行 SSH)

远程机器启用前,先允许 SSH,避免把自己锁在门外。

sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw default deny

说明:这会开启防火墙、开机自启,并默认拒绝外部访问。

常用规则

按服务或端口放行/拒绝

sudo ufw allow <service>

sudo ufw deny <service>

示例:

  • sudo ufw allow smtp 允许所有外部 IP 访问 25/tcp
  • sudo ufw allow 22/tcp 允许 SSH
  • sudo ufw allow 53 允许 53/tcp 与 53/udp
  • sudo ufw allow from 192.168.1.1 允许该 IP 访问本机所有端口
  • sudo ufw allow proto udp from 192.168.0.1 port 53 to 192.168.0.2 port 53
  • sudo ufw deny smtp 禁止外部访问 smtp

删除规则

sudo ufw status numbered
sudo ufw delete <num>

查看状态

sudo ufw status

一台常见的 Web 服务器只需开放 22/80/443/53:

sudo ufw status

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
53                         ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)
53 (v6)                    ALLOW       Anywhere (v6)
  • 22:SSH 登录
  • 80/443:Web 服务
  • 53:DNS 服务

日志与重载

sudo ufw logging on
sudo ufw reload

重置(谨慎)

sudo ufw reset

小结(最小安全配置)

sudo apt update
sudo apt install ufw
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw default deny

先保 SSH,再开防火墙;其余端口按需放行即可。