一部の IP ブロックを除き、CentOS 7 ファイアウォールで ICMP 応答を無効にする

一部の IP ブロックを除き、CentOS 7 ファイアウォールで ICMP 応答を無効にする

FirewallD を搭載した Centos 7 マシンがあり、net.ipv4.conf.icmp_echo_ignore_all は 0 に設定されています。外部 IP アドレスへの ping 応答を無効にしながら、一部の IP ブロック (192.168.1.0/24、10.0.0.0/8 など) が ping 応答を取得できるようにするファイアウォール構成を探しています。

どうやってやるの?

答え1

解決策はこれですiptables

[root@ttucker ~]# iptables -A INPUT -m iprange --src-range 192.168.0.0-192.168.255.255 -p ICMP --icmp-type 8 -j ACCEPT
[root@ttucker ~]# iptables -A INPUT -m iprange --src-range 10.0.0.0-10.255.255.255 -p ICMP --icmp-type 8 -j ACCEPT
[root@ttucker ~]# iptables -A INPUT -p ICMP --icmp-type 8 -j DROP

後は以下のようになるはずです:

[root@ttucker ~]# iptables -v -n -L INPUT | grep icmp
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            source IP range 192.168.0.0-192.168.255.255 icmptype 8
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            source IP range 10.0.0.0-10.255.255.255 icmptype 8
    0     0 DROP       icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8

Iptables は、指定されたチェーンの上から下へ順にルールを評価することで動作します。この例では、INPUT チェーンです。iptables が条件に一致するルールを見つけると、 で指定されたアクションを実行します-j

したがって、この例では、ソースが 10.0.0.0/8 または 192.168.0.0/16 の場合、アクションは であることを示していますACCEPT。ソース アドレスがその範囲外の場合は、 と指定されている 3 番目のルールにヒットしますDROP

注: これらのルールより前のすべての ICMP トラフィックを受け入れる現在のルールが現在存在しないことも確認する必要があります。

-A INPUTチェーンに追加する手段です。INPUTまず、入力チェーン全体をリストし、そこに存在する他の ICMP ルールを削除します。

INPUT チェーンのルールをリストする方法は次のとおりです。

iptables -v -n -L INPUT

この方法がご都合に合うかどうか、または追加の質問がある場合はお知らせください。

関連情報