起動時にiptablesルールが自動的に読み込まれるようにしたい。 Debianのwikiによると、これは/etc/network/if-pre-up.d/にiptablesという名前のスクリプトを配置することで実行できます。つまり、次のようになります。
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
このタスクにはiptables-persistent
パッケージを使用します。
/etc/iptables/rules.4
と/etc/iptables/rules.6
でルールを定義し、サービスをアクティブにすることを忘れないでください(update-rc.d
、chkconfig
またはお気に入りのツールを使用)。
この問題は、スクリプトの許可ビットに関連している可能性があります。このコマンドの出力は何ですか?ファイルが含まれていますか?
run-parts --test /etc/network/if-pre-up.d
簡単な方法でやってみませんか?
1-iptablesルールを作成する
2-「Sudo apt-get install iptables-persistent」を実行すると、ルールを保存してブート後に復元するかどうかを尋ねられます。
3-完了です