CentOS 6.xシステムにipsetを追加しましたが、iptables
システムが再起動したときにルールが失われました。
見つけました。この回答再起動後にUbuntuシステムのリロードルールを作成する方法を示しますが、iptables
このディレクトリはCentOSには存在しません。
再起動後にCentOSシステムにファイアウォールルールをロードさせる方法は?
メモ:はい、保存ルールを使用してiptables save
おり、ファイルが保存されています。
内部内容は次のとおりです/etc/sysconfig/iptables
。
# Generated by iptables-save v1.4.7 on Mon Apr 8 09:52:59 2013
*filter
:INPUT ACCEPT [2713:308071]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1649:1766437]
-A INPUT -p tcp -m multiport --dports 25,587,465,110,143,993,995 -m state --state INVALID,NEW,RELATED,ESTABLISHED -m set
--match-set blocking src -j DROP
COMMIT
# Completed on Mon Apr 8 09:52:59 2013
コマンドが表示されますが、-A INPUT
作成時に既に-I INPUT
。
このルールの作成に使用されるルールは次のとおりです。
iptables -I INPUT -p tcp -m multiport --dports 25,587,465,110,143,993,995 -m state --state NEW,ESTABLISHED,RELATED,INVALID -m set --set blocking src -j DROP
答え1
次の理由でルールが失われます。
ルールを追加した後、サービスまたはサーバーを再起動する前に保存する必要があります。ルールを追加するとメモリに保存されますが、保存後はファイルに保存され、起動時にそのファイルから復元されるためです。
したがって、まず、次のように追加されたルールを保存する必要があります。
$ /etc/init.d/iptables save
これにより、すべてのルールが保存され、/etc/sysconfig/iptables
起動時にiptablesサービスが有効になります。
$ chkconfig --level 53 iptables on
方法2
ルールを保存:
$ /sbin/iptables-save > /etc/iptables.rules
ルールを復元するには、[次の項目を追加/etc/rc.local
]:
$ /sbin/iptables-restore < /etc/iptables.rule
答え2
私も同じ問題に直面しました。
"block"というipsetを作成しましたが、どこに保存されているのかset
わからないので、set
再起動後にスクリプトで再生成する必要があるようです。
答え3
Centos 6.4でも同じ問題が発見されました。
@reboot /etc/init.d/iptables restart
ちょうどcrontabを入れたときに動作します。
答え4
Host Gatorに電子メールを送信し、最後にHost GatorのLinux管理者から次の応答を受け取りました。
こんにちは!
HostGatorは、すべてのVPSおよび専用サーバー計画にデフォルトでインストールされるカスタムファイアウォールを構築しました。
幸いなことに、ファイアウォール設定にはiptables設定を保存するファイルがあります。
ファイルは次のようになります。
/etc/firewall/INCLUDE
ファイルにiptables行を追加し、サービスファイアウォールを再起動してファイアウォールを再起動します。 iptablesルールは存在し続けます。
実際にこの行をファイルに追加したので、今度はiptablesルールをロードして維持する必要があります。
他の質問や懸念がある場合は、いつでもお問い合わせください。