使用 nftwatch 监控您的 Linux 防火墙
我创建了 Linux nftwatch 命令来监视防火墙流量统计信息。
Netfilter 表 (nftables) 是现代 Linux 发行版附带的默认防火墙。它可以在 Fedora 和 RHEL 8、最新的 Debian 以及许多其他操作系统上使用。它取代了早期发行版中捆绑的旧 iptables。它是 iptables 的强大且有价值的替代品,作为广泛使用它的人,我很欣赏它的强大功能。
nftables 的功能之一是能够向许多元素(例如规则)添加计数器。这些是按需启用的。您需要使用“counter”参数在每行基础上明确请求它。我在防火墙中为特定规则启用了它们,这使我可以了解这些规则。
这让我思考。我怎样才能实时查看这些计数器?起初我尝试了“watch”,它允许诸如刷新率之类的东西,但我不喜欢默认格式,而且它不可滚动。我发现使用 head
和 tail
以及 awk
不太理想。用户友好的解决方案并不存在。所以我写了自己的,我想与开源社区分享。
Linux 上的 nftwatch 简介
我的解决方案(我称之为 nftwatch)做了一些事情:
- 它对 nftables 输出进行重新排序和重新格式化,以使其更具可读性。
- 它允许向上或向下滚动输出。
- 其用户定义的刷新率(可以实时更改)。
- 它可以暂停显示。
您获得的输出不是表的转储,而是显示每个规则的活动:
(肯尼思·亚伦,CC BY-SA 4.0)
您可以在此处从其 Git 存储库下载它。
它是 100% python、100% 开源、100% 免费。它满足了免费、优质节目的所有要求。
在 Linux 上安装 nftwatch
以下是手动安装说明:
- 从 git 存储库克隆或下载项目。
- 将
nftwatch.yml
复制到/etc/nftwatch.yml
。 - 将
nftwatch
复制到/usr/local/bin/nftwatch
并使用chmod a+x
授予其可执行权限。 - 使用不带参数的 nftwatch 来运行它。
- 请参阅
nftwatch -m
获取手册页。
您还可以在没有 YAML 配置文件的情况下运行 nftwatch,在这种情况下它使用内置默认值。
用法
nftwatch 命令显示 nftables 规则。大多数控件都是为此目的而设计的。
箭头键和等效的 Vim 按键控制滚动。使用F或S键更改刷新速度。使用P键暂停显示。
运行 nftwatch -m 以获得完整说明以及交互式按键控件列表。
防火墙的新视图
即使您花时间配置防火墙,它们也会显得迟钝和模糊。除了从日志条目推断指标之外,很难判断您的防火墙实际上看到了什么类型的活动。通过 nftwatch,您可以看到防火墙的工作情况,并且最好更好地了解您的网络每天必须处理的流量类型。