web-dev-qa-db-ja.com

Firewalld-カスタムゾーンでICMPを許可する(centos 7 / redhat 7)

ソースで定義されたゾーンでICMPエコー応答を有効にしたい。

Mysqlやecho-r​​eplyなどのサービスを許可したいゾーンMONITORINGがあります。 mysqlのようなサービスを許可するのは簡単ですが、直接ルールを使用せずにエコー応答を有効にする方法を理解することはできません。出来ますか?

メインインターフェイスはBLOCKゾーンを使用するため、パケットがゾーンMONITORINGに分類されない場合、パケットはicmp-Host-prohibitedで拒否されます。

ありがとう

4
ludek michera

同じ問題を抱えている人を助けるために、私は次のコマンドを使用します。

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -s X.X.X.X -j ACCEPT

ソースがX.X.X.Xの場合にICMPプロトコルを許可するルールを追加します

7
Morgan

all ICMPプロトコルを有効にしたくない場合があり、有効にする必要はありません。

追加 --icmp-type 8ICMPエコー応答のみを有効にします。

完全なコマンドは次のようになります。

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -m icmp --icmp-type 8 -s X.X.X.X -j ACCEPT
2
Nash

これを行うには、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
1
Harold