web-dev-qa-db-ja.com

CentOS 6.2での再起動後にiptablesが持続しない

Iptablesにいくつかのルールを追加してみましたが、節約されていないようです。それらを保存するために、iptables-saveおよびservice iptables saveを実行してみました。これらのコマンドのいずれかを実行するたびに、正常に保存されたと表示されます。ここに私が挿入しようとしているルールがあります:

iptables -A INPUT -j REJECT -p tcp --destination-port 3306
iptables -A INPUT -j REJECT -p tcp --destination-port 25

これらのルールは機能し、入力した後もそのまま残りますが、システムを再起動すると、iptables -Lの実行時にリストから削除され、ポートが再び開きます(nmapを使用してチェックされます)。

/ etc/sysconfig/iptablesファイルを見ると、ルールが(一番下に)あり、「完了した」タイムスタンプはすべて、ルールを保存したときのもので、正しいように見えます。また、私の/ etc/sysconfig/iptables-configファイルでは、すべての設定がデフォルトであり、別の場所などからiptableルールをロードする限り、何も変更しないようです。

7
Aaron

再起動後にiptables -Lで変更が表示されない場合は、次のいずれかが示唆されています。

  • ルールは保存されていません

    • あなたはそれらがそうであることを提案しますが、同時に「完了したタイムスタンプ」と言います-複数形。これは、同じファイルにルールのコピーが複数あり、最初のセットのみが適用されていることを意味している可能性があります。
      • 出力をiptables-saveから上記のファイルに追加します(追加しないでください):
        iptables-save>/etc/sysconfig/iptables
      • または、既存のファイルを別の場所に移動して保存します。
  • ルールは間違ったファイルに保存されています

    • 保存しているファイルとは異なるファイルをロードするように構成が設定されている可能性があります-ロードするファイルが保存先のファイルと一致していることを確認してください。
      • ファイルは通常/ etc/sysconfig/iptablesです
      • /etc/init.d/iptablesを見ると、ロードされるファイルを決定する次の行が見つかります。
        IPTABLES = iptables 
         IPTABLES_DATA =/etc/sysconfig/$ IPTABLES
  • ルールにエラーがあります

    • これは通常問題ではありません-iptablesは通常、誤ったルールを無視します。そして、あなたはそれらを手で書いていません(おそらく動作しているルールセットを保存しています)。
  • 起動時にiptablesが開始されない

    • 実行
      chkconfig --list iptables
      どのランレベルiptablesがロードされているかをチェックします。が正しいランレベルで有効になっていない場合は、で追加します。
      chkconfig --level 2345 iptables on

(マシンを再起動するのではなく)iptablesを再起動するだけで設定をテストできるはずです。

service iptables restart

  • 既存のルールセットをバックアップします:
    cp/etc/sysconfig/iptables /etc/sysconfig/iptables.bak
  • 数分後にiptablesをフラッシュするcronジョブをセットアップします(もちろん、すべてが機能したら、これを削除します)。
9
cyberx86

Iptables-saveが「正常に実行された」ことを確信していますか?現在のルールセット保存ファイルをテキストに吐き出すだけです。これを機能させるには、/ etc/sysconfig/iptablesを指定する必要があります。

iptables-save > /etc/sysconfig/iptables

一般的に言えば、iptables-saveからの出力が表示された場合、出力をディスプレイに出力するだけで、何の効果もありません。

3
Magellan

私は最良の解決策は次のとおりだと思います:最初に次のコマンドを入力してiptables-servicesをインストールします

yum install iptables-services

次に、次のコマンドを入力してiptableルールを保存します

service iptables save
1
HosseinGBI