Debian「無視」/etc/network/if-pre-up.d/iptables


12

iptablesルールが起動時に自動的にロードされるようにします。DebianのWikiによると、これはiptablesという名前のスクリプトを/etc/network/if-pre-up.d/に配置することで実行できます。

cat /etc/network/if-pre-up.d/iptables 
#!/bin/sh
/sbin/iptables-restore < /etc/firewall/iptables.rules
/sbin/ip6tables-restore < /etc/firewall/ip6tables.rules

このスクリプトは機能します。ルートとして実行すると、ファイアウォールルールが適用されます。ただし、再起動時にはファイアウォールルールはありません。私は何を間違えていますか?

リクエストに応じて:/ etc / network / interfaces(このファイルには触れませんでした)

user@DebianVPS:~$ cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

インターフェイスをどのように構成しますか?/ etc / network / interfacesファイルを追加できますか?
bayindirh

注意してください/etc/network/if-pre-up.d/参照して、Ubuntuの18.04でもう動作しませんserverfault.com/questions/914493/...
BurninLeo

回答:


6

iptables-persistentこのタスクにパッケージを使用します。

であなたのルールを定義/etc/iptables/rules.4し、/etc/iptables/rules.6そして使用して(サービスを有効にすることを忘れないでくださいupdate-rc.dchkconfigまたはあなたのお気に入りのツール。


パッケージのインストール時に、現在のルールを保存するかどうかを尋ねます。したがって、ルールが既に定義されている場合は、パッケージを簡単にインストールできます。後で変更したい場合は、単にdpkg-reconfigure iptables-persistent
Braiam

10

この問題は、スクリプトの許可ビットに関連している可能性があります。このコマンドの出力は何ですか?ファイルが含まれていますか?

run-parts --test /etc/network/if-pre-up.d

run-parts --test /etc/network/if-pre-up.dは、/ etc / network / if-pre-up.d / iptablesを提供します。
-Cheiron

1
わかりましたので、スクリプトを実行するタイミングを確認する必要があります。このような最初の行を追加すると、(date; set; echo) >> /tmp/iptables-cmd.logいつ呼び出されるかがわかります。また、渡された引数をチェックするために、常に環境を印刷します。インターフェースが追加されるたびに実行するのではなく、最後のeth *インターフェースが起動した後にのみiptablesを実行することを決定するかもしれません。
エプスイグ

3
投稿したのでinterfaces、ifupdownではなくnetwork-managerを使用していることがわかります。これが、スクリプトが呼び出されない理由です。このドキュメントを確認してください:ubuntuforums.org/showthread.php
t=

よくそれは多くを説明します。私は今、dawudの答えで行くだけだと思います。それはどちらの方法でもうまくいくようです。
-Cheiron

3
run-partsはスクリプトの名前について少しうるさく、ファイル名にドットが含まれていると、私の場合、起動時にスクリプトが無視されていました。
alexm

0

簡単にやってみませんか?

1-iptablesルールを作成します

2-「sudo apt-get install iptables-persistent」を実行します。ルールを保存し、ブート後にそれらを復元するかどうかを尋ねられます。

3-完了しました


1
受け入れられた回答の重複
-Cheiron
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.