关于 UFW 日志你需要知道的一切

UFW 防火墙预装在 Ubuntu 中,顾名思义,UFW 日志可以提供有关防火墙如何处理传入和传出请求的内部信息。

但在此之前,您需要验证 UFW 日志记录是否已启用:

sudo ufw status verbose

如果你得到一个输出说 Logging: on (low),你很高兴,但如果它显示 Logging: off 如上图,使用以下命令开启UFW日志记录:

sudo ufw logging on

UFW 登录后,您可以使用 less 命令检查系统中的 UFW 防火墙日志:

sudo less /var/log/ufw.log

这么多复杂的术语,对吧? 好吧,您不必担心它们; 稍后我将分解 UFW 日志中使用的每个术语。

但在此之前,让我分享各种检查UFW日志的方法。

如何在 Linux 中检查 UFW 防火墙日志

有多种方法可以检查 UFW 防火墙日志; 我已经在本指南的开头分享了其中一个。

那么让我们看看剩下的那些。

使用 tail 命令检查防火墙日志

如果您正在寻找一种可以实时监控防火墙日志的方法,可以使用 tail 命令。

默认情况下,tail 命令将显示文件的最后 10 行,但与 -f 选项,您可以监控可以实时覆盖防火墙日志:

tail -f /var/log/ufw.log
在 Linux 中实时监控 UFW 防火墙日志

使用 grep 命令检查防火墙日志

除了 /var/log/ufw,还有另外两个地方可以找到 UFW 防火墙日志。 但是,这些位置不仅特定于防火墙日志。

也就是说,您也会在那里找到其他服务的日志。 在那些时候,您可以使用 grep 命令来过滤结果。

因此,您可以从中过滤 UFW 防火墙日志 syslog:

grep -i ufw /var/log/syslog

或者您可以过滤结果 kern.log:

grep -i ufw /var/log/kern.log

因为两者都会给你相同的结果:

在 Linux 中使用 grep 命令检查 ufw 防火墙日志

现在,让我们看看不同级别的 UFW 防火墙日志记录。

如何更改 UFW 防火墙日志级别

默认情况下,日志记录将在低级别计时:

UFW 防火墙的默认日志记录级别

但在我跳到如何更改默认规则之前,让我解释一下您可以使用的不同级别的日志记录。

不同级别的 UFW 防火墙日志记录

UFW 日志记录有 5 个级别。

  • off:表示禁用日志记录。
  • low:将存储与不符合当前防火墙规则的被阻止数据包相关的日志,并将显示与记录规则相关的日志条目。
    是的,您也可以指定记录的规则,并将在本指南的后面部分向您展示如何操作。
  • medium:除了低级别提供的所有日志之外,您还可以获得无效数据包、新连接和通过速率限制完成的日志记录的日志。
  • high:将包括有速率限制和没有速率限制的数据包的日志。
  • full:此级别与高级别类似,但不包括速率限制。

现在,如果你想改变你的默认或当前日志记录级别,你只需要遵循给定的命令结构:

sudo ufw logging logging_level

因此,如果我想将当前的日志记录级别更改为 medium它可以使用给定的命令来完成:

sudo ufw logging medium
更改 UFW 防火墙中的日志记录级别

如何添加 UFW 日志记录规则

正如我之前提到的,您可以添加日志记录规则,尤其是当您想要监控特定服务时。

我会建议你把你的日志记录级别 low 减少日志中的混乱,您可以更具体地了解有意监控。

要添加日志记录规则,您只需遵循以下命令语法:

sudo ufw allow log service_name

为了 example,我为端口号添加了一条日志规则。 22(SSH):

sudo ufw allow log 22/tcp
添加 UFW 日志规则

解读 UFW 防火墙日志

一旦你使用任何显示的方法来获取 UFW 防火墙日志,你最终会得到这样的东西(对于默认设置):

ufw防火墙日志的含义

如果你像我之前展示的那样添加了 UFW 日志记录规则,你会发现一些额外的:

ufw 防火墙日志,包括日志记录规则

如您所见,两张图片略有不同,我将在此处介绍它们。

  • Dec  2 05:48:09 LHB kernel: [  180.759805]:显示自启动以来的日期、时间、主机名和内核时间。
  • [UFW BLOCK]:如果您在默认设置下使用 UFW 日志,则日志记录级别锁定在低级别。 这意味着它只会显示不符合 UFW 规则的被拒绝的数据包。
    UFW BLOCK 只是表明数据包被阻止。
  • [UFW ALLOW]:尽管有默认的日志记录级别,但如果您添加了日志记录规则,它将记录与该服务相关的所有详细信息,并且 UFW ALLOW 表示允许数据包。
  • IN=ens33:显示数据包到达的接口。
  • OUT=:对于大多数用户来说,这将没有任何价值,如果它指示任何价值,则意味着有一个传出事件。
  • MAC=00:0c:29:71:06:82:8c:b8:7e:b7:f7:46:08:00: 整串数字和字母只不过是源MAC地址和目标MAC地址的组合。
  • SRC=192.168.1.7:报文源IP地址。
  • DST=192.168.1.5: 显示数据包目的地的 IP 地址,它将是您系统的 IP。
  • LEN=60: 显示数据包的长度(在我的例子中是 60 字节)。
  • TOS=0x10:表示服务类型。
  • PREC=0x00:显示“优先”服务类型。
  • TTL=64:显示包的 TTL(生存时间)。 简而言之,它会告诉您如果未指定目的地,数据包将反弹多长时间直到过期。
  • ID=4444: 将为您提供 IP 数据报的唯一 ID,并将由相同数据包的片段共享。
  • DF: TCP 的“不分段”标志。
  • PROTO=TCP:显示用于传输数据包的协议。
  • SPT=55656:获取数据包的源端口。
  • DPT=22:表示数据包的目的端口。
  • WINDOW=64240: 显示 TCP 窗口大小。
  • RES=0x00:表示保留位。
  • SYN URGP=0: 在这里, SYN 标志表示建立新连接的请求,并且 URGP=0 表示未建立连接。
  • ACK: 确认标志 用于指示数据包被主机成功接收。
  • PSH: 推送标志 表示传入的数据需要传递给应用程序而不是被抛光。

包起来

在本指南中,我介绍了 UFW 防火墙日志的一些基本方面,包括如何启用它们、更改级别和防火墙日志的内容。

您可以在下面的本指南中了解有关 UFW 的更多信息。

我希望你会发现这对你有帮助,如果你有任何疑问或建议,请在评论中告诉我。