web-dev-qa-db-ja.com

iptablesルールが存在するかどうかを確認するために削除することの欠点は何ですか?

iptablesを使用してルールを追加したいのですが、それがまだ存在しない場合に限ります。

ルール仕様がすでに存在するかどうかを確認できるオプション-Cがあります。このオプションについては、 このQ&A でも説明されています。

そのQ&Aから、 この特定の回答 は、代わりに-D(削除)オプションを使用する方法を示しています。これにより、ルールが存在する場合は削除され、存在しない場合はコード1で終了します。 t。 (これは、ルールが存在しない場合に-Cが行うこととまったく同じなので、問題にはなりません)。

そして私にとっては、それを行う方が便利だと感じています

ip6tables -D OUTPUT -p icmpv6 --icmpv6-type destination-unreachable -j DROP
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type destination-unreachable -j DROP

存在するかどうかを確認するのではなく、存在する場合は削除してから、新しいルールを追加します。

しかし、コメントの誰かがファイアウォールに穴を開けると言っていたので、その方法がわかりません。

結論:削除して追加する前にチェックするのではなく、ルールを盲目的に削除して追加するべきではないのはなぜですか?

1
Adelin

このアプローチ(削除してから追加)の問題は、これら2つの操作が同時に発生せず、それらの間に時間があり、その間にシステムがDROPルールによって防止されている不要なトラフィックにさらされることです。これは、ipv6に到達できない場合は無害に見えるかもしれませんが、一部のアプリケーションまたはデバイスを応答不能にするトラフィックに悩まされていると考えてください。私の経験から、ファイアウォールルールを一瞬落としただけでも、長い時間がかかる可能性があります。永続的な結果。

3
Peter Zhabin

ブロッキングルールを削除して不要なトラフィックのために何かを開くことができるという事実は、実際に許可するルールを削除するよりも問題が少ない可能性があります。この場合、ルールを元に戻す機会がない可能性があります。

0
Tomek