(/ etc / sysconfig / iptables)「このファイルを手動でカスタマイズすることはお勧めしません。」なぜですか?


20

このファイルを直接編集する

/etc/sysconfig/iptables 

頭痛や時間の節約になります...

それでも、ファイルの一番上には、

Manual customization of this file is not recommended.

これは、新しいcentos 6.4クラウドサーバーに付属した「/ etc / sysconfig / iptables」です。

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

ポート80を開くには、ラインを単純に複製できます。

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

そして、「22」を「80」に変更し、このファイルを保存してからシステム全体を再起動します。

これにより、ポート80が開かれます。

これは非常に簡単な操作です。それでもファイルには、手動編集は推奨されていないと書かれています。

なぜ私はアドバイスに従うべきですか?

回答:


18

呼び出されたツールsystem-config-firewall(またはncursesベースの兄弟system-config-firewall-tui)がこのファイルを管理するためです。このツールを使用して新しいiptablesルールを作成するたびに、が上書きされます/etc/sysconfig/iptables

関連マンページ28.1.16。/ etc / sysconfig / iptables-config

これが推奨されていないが、禁止されていない理由です。CentOSまたはその他のELバージョン6を使用してルールを保存する最良の方法は、メモリにいくつかのルールを追加した後にiptablesサービスを使用することです。

# service iptables save

関連質問:なぜiptablesはcentOsの/ etc / sysconfig / iptablesから情報を取得しないのですか?

このファイルを/etc/sysconfig/iptables直接編集しない理由():

  • それは自動生成されたファイルだからです。その内容はscript / daemonから取得されます/etc/init.d/iptables
  • iptablesデーモンのリセットや停止などの一部のアクションは、ファイルを上書きするため、データが失われる可能性があります。このテーマに関する興味深い変数:IPTABLES_SAVE_ON_STOP=""およびIPTABLES_SAVE_ON_RESTART=""内部/etc/sysconfig/iptables-configファイル。たぶん、それらを調整すると、内部の変更が/etc/init.d/iptables永続的になります。
  • ドキュメントがあるのでそう言った .Red Hatは、これが彼らのファイアウォールインフラストラクチャを使用するための最良の方法であることをお勧めします。

この「ファイアウォールルールを上書きする」mindf ***の代替ソリューションは、これらのスクリプトを完全に無効にし、goldilocksで公開されているようなカスタマイズされたファイアウォール管理方法に依存することです


これは、ファイルを直接編集し、system-config-firewallツールを使用してルールを追加するミックスとマッチングに対する議論に似ています。ツールを使用する代わりにファイルを編集するのがなぜ悪いのかを説明できますか?
ミシェル14

追加情報を追加しました。ヒントをありがとう@Michelle

8

それでも、ファイルの一番上には、

うーん、それは奇妙です。私の一番上で言う:

# Manual customization of this file is strongly encouraged.

誰かがそれを変更したにちがいありません;)そして実際、それを外に移動した/etc/sysconfigので、パッケージマネージャまたは他のものによって "auto uncustomized"にならないでしょう;);)

ここでの一般的な設定ファイルのポイントは、何をしているのかわからない場合はやらないことだと思います。時々、ファイルがシステムによって時々上書きされるという警告もあります。これは、アップグレード時にパッケージマネージャーが行う場合があります-PMがファイルを手動で変更したことに気づき、上書きしたり、コピーを保存したりしない場合があります。また、この設定を担当する他のツールが特に(nwildnerの答えを参照)。

「あなたが何をしているかを知る」ことの一部は、このような角度を認識することです。また、iptablesのinitサービスをカスタマイズして、構成ファイルに別の場所を使用しました。最も重要なことは、このコンピューターを使用しているのは私だけだということです。

rootアクセスを持つ他の人がいると仮定すると、混乱を招き、他の誰かに頭痛を与える可能性があるため、「この方法を好む」よりも正当な理由がない限り、私が担当するサーバーではこれを行いませんある時点で。しかし、あなたが唯一のユーザーであり、システムに依存する人が他にいない場合は、自由にやりたいことができます。ファイアウォールを設定するための私の「推奨される方法」は次のようになります。

#!/bin/bash

if [[ ! -n "$IPTSET_FILE" ]]; then
        IPTSET_FILE=/etc/iptables.current
fi

if [[ ! -e $IPTSET_FILE ]]; then
        echo "$IPTSET_FILE does not exist!"
        exit 1
fi

vim $IPTSET_FILE
iptables-restore < $IPTSET_FILE

/etc/iptables.currentブート時にコピーによって作成されます/etc/iptables(iptablesサービスは最初にロードするように構成されています)。このようにして、システムが開始する参照ポイントを維持しながら、その場で物事を変更できます。

この種の警告が含まれる構成にだまされたい場合、重要なポイントに私たちを連れて来ます:常に最初に元のバックアップコピーを作成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.