用 nftwatch 監控你的 Linux 防火墻
我創建了 Linux nftwatch 命令來觀察防火墻的流量統計。
Netfilter 表(nftables?)是現代 Linux 發行版中的默認防火墻。它在 Fedora 和 RHEL 8、最新的 Debian 和許多其他版本上都有。它取代了早期發行版中捆綁的舊版 iptables。它是一個強大的、值得的 iptables 替代品,作為一個廣泛使用它的人,我欣賞它的能力和功能。
nftables 的一個特點是能夠為許多元素添加計數器,例如規則。這些都是按需啟用的。你需要使用 counter 參數,在每一行明確地要求它。我為我的防火墻中的特定規則啟用了這些計數器,這使我能夠看到這些規則。
這讓我開始思考。我怎樣才能實時查看這些計數器?一開始我嘗試了 watch?,它允許諸如刷新率之類的東西,但我不喜歡默認格式,而且它不能滾動。我發現使用 head? 和 tail? 以及 awk 也不理想,并不存在一個用戶友好的解決方案。所以我自己寫了一個,我想與開源社區分享。
Linux 上的 nftwatch 介紹
我的解決方案,我稱之為 nftwatch,做了幾件事:
- 它對 nftables 的輸出進行重新排序和改寫,使其更具有可讀性。
- 它允許向上或向下滾動輸出。
- 可以由用戶定義的刷新率(可以實時改變)。
- 它可以暫停顯示。
你得到的不是一個表格的轉儲,而是顯示每個規則活動的輸出。
Image of nftwatch
你可以從它的 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,你可以看到你的防火墻在工作,并且可以更好地了解你的網絡每天需要處理的流量類型。