Debian 8 - IPTables はパケットごとに状態を戻します

Debian 8 - IPTables はパケットごとに状態を戻します

問題: iptables変更できません。私のコンピューターでは、 を実行できますiptables -Fiptables -Lフラッシュされたことが示されます。

パケットがマシンに出入りすると、すべてのルールが元に戻ります。 を実行した場合も同じ動作が起こりますiptables-restore < new_settings。ルールは 1 秒間存在しますが、パケットが通過すると元にiptables戻ります。

私は使用していますデビアン8OSはデビアン 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そのプログラム、またはそれが提案する代替手段のいずれかを使用できる場合は、それが最も簡単に解釈できます。

技術的には を考慮していません。しかし、 netfilter ルールを作成するために を考慮しないfork()正当な理由は思いつきません。fork()exec()

答え2

要約設定ファイルが常に変更されるという奇妙な問題が発生している場合は/etc/network/if-*.d、設定をすでに確認している場合は、ファイルを確認してくださいsystemd

iptablesコマンド (または実際には何でも)を変更できる別のオプションは、インターネット接続に基づいて変更を行う または フォルダーif-up.d内にあります。if-down.d

には、、など/etc/network/のフォルダがありました。if-pre-up.dif-up.d

それぞれには、条件が満たされたときに実行される一連のスクリプトが含まれていますif-*。そのため、インターネット接続が変更されるたびに ( 内の変更のように見えます)、内のファイルを使用して iptables をリセットするiptablesスクリプトが実行されます。/sbin/iptables-restore < /etc/network/iptablesiptables/etc/network/

関連情報