Debian 8 - IPTables 恢復每個資料包的狀態

Debian 8 - IPTables 恢復每個資料包的狀態

問題: iptables無法更改。在我的電腦上,我可以運作iptables -F.iptables -L顯示它已被沖洗。

當任何資料包進出機器時,所有規則都會恢復!如果我執行 . 操作,也會發生同樣的行為iptables-restore < new_settings。它們會在那裡停留一秒鐘,但一旦有資料包通過,iptables它就會恢復原樣。

我在用著德班8該作業系統是從Debian 7。原來是別人的電腦。

我檢查過,認為這將是以下事情之一:

  • iptables-persistent不存在
  • /etc/iptables/不存在
  • 當我查看進程時,它的名稱中systemctl甚至沒有任何內容ip

/# systemctl --all | grep ip run-rpc_pipefs.mount loaded active mounted /run/rpc_pipefs systemd-initctl.socket loaded active listening /dev/initctl Compatibility Named Pipe

  • # firewalld系統上沒有。

我們在哪裡可以找到服務或正在更改系統配置的東西?

答案1

也許你可以使用audit. Fedora 預設啟用它,並且它會用 NETFILTER_CFG 行淹沒日誌。

看這個問題:

審核正在運行的 iptables 配置的更改

在所示的範例中,相關過程是iptables,這可能沒有太大幫助。然而它也記錄了ppid父進程(以及明顯的pid)。

如果父行程立即退出...

您可以輕鬆地使用進程記帳(套件)來追蹤每個現有進程(命令)acct的名稱。lastcomm然而,這比您想像的要少。我在這裡想到“bash”。

最好運行fatrace來追蹤打開的文件,其中包括程式執行。只是不要嘗試透過 grep 進行管道傳輸 - 它將無法產生任何輸出,我不知道為什麼。

還有一個頁上execsnoop。如果您可以使用該程式或其建議的任何替代方案,那麼這將是最容易解釋的。

從技術上講,我不允許fork().但我想不出你為什麼fork()exec()創建 netfilter 規則的充分理由。

答案2

長話短說當您遇到設定檔不斷更改的奇怪問題時,請檢查您的/etc/network/if-*.d檔案(如果您已經檢查過systemd配置)。

事實證明,可以更改iptables命令(或實際上任何內容)的另一個選項位於if-up.dif-down.d資料夾中,這些資料夾根據網路連線進行變更。

裡面/etc/network/有一個文件夾,用來存放if-pre-up.dif-up.d等。

if-*每個都包含一組在滿足條件時運行的腳本。因此,每當網路連線發生變化(這似乎是 中的任何變更iptables)時,它都會執行一個腳本,該腳本會使用中的/sbin/iptables-restore < /etc/network/iptables檔案重設 iptables 。iptables/etc/network/

相關內容