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