web-dev-qa-db-ja.com

再起動後にiptablesが空白になる

RHEL 6.3システムのiptablesで問題が発生し始めました。再起動後、サービスの開始時にルールが読み込まれません。空のルールセットを取得します。

[msnyder@matt-test ~]$ Sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

これは、ルールが定義されており、サービスが実際に実行されているにもかかわらずです。 service iptables startを実行すると、プロンプトに戻るだけなので、私は知っています。 service iptables restartを実行すると、実際に停止してからサービスを再開します。そしてもちろん、service iptables stopを実行すると、iptablesが実際に停止していることを示します。

サービスを再起動する必要があることを知っているので、再起動すると、ルールが正しく読み込まれます。再起動後にロードされないだけです。再起動中に異なる方法でロードされない限り、ルールがどのように間違っているかはわかりません。もしそうなら、それらはサービスの再起動中にもロードされませんでした。

他の誰かがこれに遭遇したことがありますか?

編集:ルールはすでに/ etc/sysconfig/iptablesに保存されています。これらはコマンドラインからオンザフライで追加されないため、service iptables saveは不要です。

2
theillien

最初のiptablesは、chkconfigをオンにして起動時に有効にする必要がありますが、空のテーブルを取得するため、これはすでに当てはまると思います。

Bootime中にiptablesがロードされない理由は、ホスト名を使用する構成にルールがある場合、それらをIPに置き換えて、再試行するためである可能性があります。 iptables構成でホスト名がどうしても必要な場合は、必ず最初にホストからのDNSクエリを有効(およびコミット)にしてください。ただし、これがどのような状況でも機能するかどうかはわかりません。

0
Marius Mueller

再起動後にルールを適用するには、前述のように「serviceiptablessave」を実行する必要があると思います。ただし、/ etc/sysconfig/iptables-configにある以下のパラメーターもチェックして、実行中の構成が保存されていることを確認します。これにより、実行時に挿入されたものが失われることはありません。

IPTABLES_SAVE_ON_STOP="no"
IPTABLES_SAVE_ON_RESTART="no"
3
Jerry

問題はiptables自体にあるのではないことがわかりました。これらのサーバーでTrendMicroのDeepSecurityエージェントが実行されており、iptablesが壊れています。彼らは、dsagentスクリプトをデフォルトのiptablesの後に開始させるのではなく、dsagentとiptablesの両方の開始スクリプトを同じ開始シーケンス番号(S08)に設定するという問題と回避策を認めています。

0
theillien