CentOS 6.xでiptablesルールが再ロードされない

CentOS 6.xでiptablesルールが再ロードされない

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ルールをロードして維持する必要があります。

他の質問や懸念がある場合は、いつでもお問い合わせください。

関連情報