web-dev-qa-db-ja.com

一方向へのpingのみを許可する

最初のPCから2番目のPCへのpingを許可し、2番目のPCから最初のPCへのpingをブロックするにはどうすればよいですか?

両方のMikrotikルーターでこのファイアウォールルールを作成しました。

add action=accept chain=forward dst-address=192.168.100.17 protocol=icmp \
    src-address=192.168.11.252
add action=accept chain=forward dst-address=192.168.11.252 protocol=icmp \
    src-address=192.168.100.17
add action=drop chain=forward

最初または2番目のルールをオフにすると、どのpingも機能しません。両方を許可すると、pingは両方のPCで機能します。

1
Alex

'ping'要求応答はどちらもICMPです。したがって、いずれかの方向で、1つのルールが要求を許可し、別のルールが応答を許可します。

icmp-options=Type[:Code]を使用して、個々のICMPパケットタイプを照合できます。 このWebサイト によると、エコー要求はタイプ8で、応答はタイプ0です。

ICMPは単なる「ping」よりも少し多いことに注意してください。 ICMPエラー表示を破棄することは実際には賢明ではありません。

1
user1686

答えが必要な人のために:

両方のルーターで、ICMPタイプ0(エコー応答)をルールに一致させました。

add action=accept chain=forward dst-address=192.168.100.17 protocol=icmp \
    src-address=192.168.11.252

両方のルーターで、ICMPタイプ8(エコー要求)をルールに一致させました。

add action=accept chain=forward dst-address=192.168.11.252 protocol=icmp \
    src-address=192.168.100.17

両方のルーターの完全なルール:

add action=accept chain=forward dst-address=192.168.100.17 icmp-options=0:0-255 \
    protocol=icmp src-address=192.168.11.252
add action=accept chain=forward dst-address=192.168.11.252 icmp-options=8:0-255 \
    protocol=icmp src-address=192.168.100.17
add action=drop chain=forward

したがって、192.168.100.17から192.168.11.252まで-pingは機能しています。

192.168.11.252から192.168.100.17へ-pingが機能していません。

2
Alex