用 nftwatch 監(jiān)控你的 Linux 防火墻
我創(chuàng)建了 Linux nftwatch 命令來觀察防火墻的流量統(tǒng)計(jì)。
Netfilter 表(nftables?)是現(xiàn)代 Linux 發(fā)行版中的默認(rèn)防火墻。它在 Fedora 和 RHEL 8、最新的 Debian 和許多其他版本上都有。它取代了早期發(fā)行版中捆綁的舊版 iptables。它是一個(gè)強(qiáng)大的、值得的 iptables 替代品,作為一個(gè)廣泛使用它的人,我欣賞它的能力和功能。
nftables 的一個(gè)特點(diǎn)是能夠?yàn)樵S多元素添加計(jì)數(shù)器,例如規(guī)則。這些都是按需啟用的。你需要使用 counter 參數(shù),在每一行明確地要求它。我為我的防火墻中的特定規(guī)則啟用了這些計(jì)數(shù)器,這使我能夠看到這些規(guī)則。
這讓我開始思考。我怎樣才能實(shí)時(shí)查看這些計(jì)數(shù)器?一開始我嘗試了 watch?,它允許諸如刷新率之類的東西,但我不喜歡默認(rèn)格式,而且它不能滾動(dòng)。我發(fā)現(xiàn)使用 head? 和 tail? 以及 awk 也不理想,并不存在一個(gè)用戶友好的解決方案。所以我自己寫了一個(gè),我想與開源社區(qū)分享。
Linux 上的 nftwatch 介紹
我的解決方案,我稱之為 nftwatch,做了幾件事:
- 它對(duì) nftables 的輸出進(jìn)行重新排序和改寫,使其更具有可讀性。
- 它允許向上或向下滾動(dòng)輸出。
- 可以由用戶定義的刷新率(可以實(shí)時(shí)改變)。
- 它可以暫停顯示。
你得到的不是一個(gè)表格的轉(zhuǎn)儲(chǔ),而是顯示每個(gè)規(guī)則活動(dòng)的輸出。
Image of nftwatch
你可以從它的 Git 倉(cāng)庫(kù)下載它。
它是 100% 的 Python 代碼,100% 的開源,100% 的免費(fèi)。它滿足了所有免費(fèi)的高質(zhì)量程序的要求。
在 Linux 上安裝 nftwatch
以下是手動(dòng)安裝說明:
- 克隆或從 git 倉(cāng)庫(kù)下載該項(xiàng)目。
- 將nftwatch.yml? 復(fù)制到/etc/nftwatch.yml。
- 將nftwatch? 復(fù)制到/usr/local/bin/nftwatch? 并使用chmod a+x 授予其可執(zhí)行權(quán)限。
- 使用nftwatch,不帶任何參數(shù)來運(yùn)行它。
- 參見nftwatch -m 的手冊(cè)。
你也可以在沒有 YAML 配置文件的情況下運(yùn)行 nftwatch,在這種情況下它使用內(nèi)置的默認(rèn)值。
使用
nftwatch 命令顯示 nftables 規(guī)則。大多數(shù)控制都是為此目的而設(shè)計(jì)的。
箭頭鍵和等效的 Vim 的按鍵控制滾動(dòng)。使用 F? 或 S? 鍵來改變刷新速度。使用 P 鍵來暫停顯示。
運(yùn)行 nftwatch -m 以獲得完整的說明,以及交互式按鍵控制的列表。
防火墻的新觀點(diǎn)
即使你花費(fèi)了時(shí)間去配置防火墻,它也會(huì)顯得晦澀難懂和模糊不清。除了從日志條目中推斷指標(biāo)外,很難判斷你的防火墻實(shí)際看到的活動(dòng)類型。 使用 nftwatch,你可以看到你的防火墻在工作,并且可以更好地了解你的網(wǎng)絡(luò)每天需要處理的流量類型。