ufw 使用教程

ufw 是 uncomplicated firewall 的缩写,使用起来比 iptables 容易多了,是 Ubuntu 上的默认防火墙,如果使用的 Debian,需要自己安装。

很多主机提供商都提供了额外的防火墙服务,如果有提供,建议使用这种防火墙,使用 ufw 或者 iptables 要格外小心,注意别把自己也锁在主机外面。

ufw 安装/卸载

apt-get install ufw
apt-get remove ufw

ufw 启用/关闭

启动:ufw enable

关闭:ufw disable

重新加载规则(增加或者删除规则后,需要重新加载规则):ufw reload

重置规则:ufw reset

查看状态:ufw status

查看状态(带规则编号,删除可用):ufw status numbered

开机启动:systemctl enable ufw

禁止开机启动:systemctl disable ufw

ufw 添加规则

通过端口添加(默认允许 TCP 和 UDP 协议):ufw allow 22

定义端口使用 TCP 或 UDP 协议:ufw allow 22/tcp

通过常见的协议,比如 ftp/ssh/http/https 等:ufw allow ssh

批量添加端口,也可以定义协议:ufw allow 3300:3310/tcp

如果多个端口不连续,可以使用英文的逗号隔开:ufw allow 3300,3333

添加特定的 IP:ufw allow from 192.168.1.1

可以通过子网掩码来定义 IP 段:ufw allow from 192.168.1.0/24

允许特定的 IP 访问特定的端口:ufw allow from 192.168.1.1 to any port 22 proto tcp (proto tcp 是定义 tcp 协议,也可以省略)

禁止访问,语法和 allow 相似,比如:

禁止 666 端口访问:ufw deny 666

禁止 IP 或 IP 段访问:ufw deny from 11.22.33.44/24

禁止 IP 或 IP 段访问某个端口:ufw deny from 11.22.33.44 to any port 443 proto tcp

ufw 删除规则

可以通过 ufw status numbered 查看规则的序号,直接按序号删除(一条一条删除,删除一条序号就变了),也可以通过安装命令,在 allow 前加 delete 即可。

ufw delete 3
ufw delete allow ftp
ufw delete allow from 192.168.1.1

ufw 默认规则

默认情况下,ufw 是允许所有的出流量,禁止所有的入流量,也可以对此进行修改,我们可以使用 ufw status verbose 查看默认规则。

ufw default allow outgoing
ufw default deny incoming

ufw 日志解析与设置

根据 ufw 日志设置情况,当出现阻拦的时候会有日志记录,下面是 ufw 日志各个参数的含义:

  • [UFW BLOCK]:记录的开始,说明这是一条 ufw block 记录。
  • IN:如果它包含一个值,那么代表该事件是传入事件。
  • OUT:如果它包含一个值,那么代表事件是传出事件。
  • MAC:记录的是目的地和源 MAC 地址的组合。
  • SRC:记录的是源 IP。
  • DST:记录的是目的地 IP。
  • LEN:数据包长度。
  • TTL:数据包的 time to live,初步可以判断对方服务器的系统。
  • PROTO:协议。
  • SPT:源端口。
  • DPT:目标端口。
  • WINDOW:发送方可以接收的数据包的大小。
  • SYN URGP:指示是否需要三次握手,0 表示不需要。

ufw 日志一共有 5 个级别,分别是 off / low / medium / high / full,我们可以使用 ufw logging LEVEL 去设置。

我们可以对每条规则设置日志,在 allow 或者 deny 后面 加 log 即可,比如我们要记录 192.168.1.1 的访问记录:

ufw allow log from 192.168.1.1

在规则中加了 log 参数之后,ufw status 显示规则的时候会看到后面有个 (log) 的标记。

ufw 的日志默认在 /var/log/ufw.log 文件中,如果发现没有这个文件,很有可能是没有安装 rsyslog 服务,使用 apt-get install rsyslog 即可安装。

ufw 使用注意事项

在开启 ufw 之前,需要仔细检查一下规则,如果没有打开 ssh 等端口,很容易把自己也锁在服务器外面。

注意,如果你这台服务器同时也在使用 docker 的话,通过 docker 映射的主机的端口是无法通过 ufw 来管理的,他们会绕过 ufw。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>