web-dev-qa-db-ja.com

iptablesのデフォルトポリシーを `DROP`に設定することと、入力チェーンに個別のポリシーを挿入してすべての接続をDROPすることの違い

特定のネットワークからの場合を除いて、サーバーへのすべての着信接続をドロップしようとしています。同時に、サーバーから外部ネットワーク(任意のプロトコルを介した任意のネットワーク)へのすべての発信接続を開いたままにしておきたい。 INPUTチェーンに以下の2つの変更を加えることで機能しています。

注:テストは、192.168.0.0/24ネットワーク上のIPを持つ3台のサーバー(VM)で行われ、すべてのルールはserver3(IP:192.168.0.3)で定義されています

a. iptables -P INPUT DROP
b. iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
[root@server3 ~]# iptables -nvL

Chain INPUT (policy DROP 124 packets, 22308 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  265 34603 ACCEPT     all  --  *      *       192.168.0.0/24       0.0.0.0/0           

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 433 packets, 34693 bytes)
 pkts bytes target     prot opt in     out     source               destination         

しかし、私の最初の質問:

  1. 上記の最初のルールを定義したとき(INPUTチェーンのデフォルトポリシーを変更したとき)、サーバー(IP:192.168.0.3)からのすべての発信接続(ssh、ping)も停止しました。デフォルトのOUTPUTチェーンポリシーがまだ受け入れられていて、OUTPUTチェーンの下にルールが定義されていないのに、なぜこれが発生するのですか?

次のように、INPUTチェーンのデフォルトポリシーを変更しないことで同じことを実現したかったのです。

c. iptables -I INPUT -j DROP
d. iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT

ただし、サーバーとの間のすべての着信/発信接続はブロックされます3。これは私の2番目の質問に私をもたらします:

  1. ルールはどうですかc.およびa.動作が異なりますか?私はLinuxファイアウォールを初めて使用するので、理解に役立ててください。
2
dig_123

デフォルトのDROPINPUTポリシーがある場合、送信接続からのresponseパケットでさえドロップされます。

それらを受け入れるには、次の入力ルールを追加します。

iptables -I INPUT 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

最後の質問として、c and dの例(これらのコマンドの前に空のルールがあると仮定)では、最初のルールdrop everythingsecondルールを設定しています。特定のネットワーク。 IPTABLESはできるだけ早く一致を取得するため、最初のルールは常に一致し(条件が設定されていない)、それ以降のすべてのルールは実行されません。ルールの例外を定義する必要がありますルール。

最初の例-P INPUT DROPでは、以前に一致しなかったものをすべてキャッチするlastルールを設定しているため、追加された例外はすべて、そのデフォルトルール(-P)の前に実行されます。 。

-Iは特定の位置に挿入します(たとえば、前のコマンドでは、ESTABLISHED、RELATEDルールを最初に設定しているので、その後に何を設定しても一致します。

-Aがルールリストに追加されるため、デフォルトの直前に一致する場合。

明示的なルール(c and dなど)を使用して最初の例と同じことを実現したい場合は、それらの位置を交換する必要があります。

8
NuTTyX