ソースで定義されたゾーンでICMPエコー応答を有効にしたい。
Mysqlやecho-replyなどのサービスを許可したいゾーンMONITORINGがあります。 mysqlのようなサービスを許可するのは簡単ですが、直接ルールを使用せずにエコー応答を有効にする方法を理解することはできません。出来ますか?
メインインターフェイスはBLOCKゾーンを使用するため、パケットがゾーンMONITORINGに分類されない場合、パケットはicmp-Host-prohibitedで拒否されます。
ありがとう
同じ問題を抱えている人を助けるために、私は次のコマンドを使用します。
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -s X.X.X.X -j ACCEPT
ソースがX.X.X.Xの場合にICMPプロトコルを許可するルールを追加します
all ICMPプロトコルを有効にしたくない場合があり、有効にする必要はありません。
追加 --icmp-type 8
ICMPエコー応答のみを有効にします。
完全なコマンドは次のようになります。
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -m icmp --icmp-type 8 -s X.X.X.X -j ACCEPT
これを行うには、MONITORINGゾーンでICMPエコー応答を許可します。
firewall-cmd --zone MONITORING --add-icmp-block echo-reply
firewall-cmd --zone MONITORING --add-icmp-block-inversion
これは、メインインターフェイスがICMPパケットを拒否するゾーンを使用している場合でも機能します。これは、パケットがインターフェイスに基づくゾーンの前にソースに基づくゾーンによって照合されるためです。 INPUT iptablesチェーンを見ると、次のことがわかります。
# iptables -nL INPUT
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
INPUT_direct all -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES_SOURCE all -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES all -- 0.0.0.0/0 0.0.0.0/0
DROP all -- 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-Host-prohibited