
問題: 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
,這可能沒有太大幫助。然而它也記錄了ppid
父進程(以及明顯的pid
)。
如果父行程也立即退出...
您可以輕鬆地使用進程記帳(套件)來追蹤每個現有進程(命令)acct
的名稱。lastcomm
然而,這比您想像的要少。我在這裡想到“bash”。
最好運行fatrace
來追蹤打開的文件,其中包括程式執行。只是不要嘗試透過 grep 進行管道傳輸 - 它將無法產生任何輸出,我不知道為什麼。
還有一個頁上execsnoop
。如果您可以使用該程式或其建議的任何替代方案,那麼這將是最容易解釋的。
從技術上講,我不允許fork()
.但我想不出你為什麼fork()
不exec()
創建 netfilter 規則的充分理由。
答案2
長話短說當您遇到設定檔不斷更改的奇怪問題時,請檢查您的/etc/network/if-*.d
檔案(如果您已經檢查過systemd
配置)。
事實證明,可以更改iptables
命令(或實際上任何內容)的另一個選項位於if-up.d
或if-down.d
資料夾中,這些資料夾根據網路連線進行變更。
裡面/etc/network/
有一個文件夾,用來存放if-pre-up.d
、if-up.d
等。
if-*
每個都包含一組在滿足條件時運行的腳本。因此,每當網路連線發生變化(這似乎是 中的任何變更iptables
)時,它都會執行一個腳本,該腳本會使用中的/sbin/iptables-restore < /etc/network/iptables
檔案重設 iptables 。iptables
/etc/network/