仅允许单向 ping

仅允许单向 ping

我如何允许从第一台 PC ping 第二台 PC 但阻止从第二台 PC ping 第一台 PC?

我在两个 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

如果我关闭第一条或第二条规则,则 ping 都不起作用。如果我同时允许两条规则,则两台 PC 都可以 ping 通。

答案1

两个 ping 请求响应是 ICMP。因此,一条规则允许请求,另一条规则允许响应,无论在哪个方向。

您可以使用 匹配单个 ICMP 数据包类型icmp-options=Type[:Code]。根据本网站,回显请求为类型 8,响应为类型 0。

请注意,ICMP多一点而不仅仅是“ping”。丢弃 ICMP 错误指示确实不明智。

答案2

对于那些需要答案的人:

在两个路由器上,我都将 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 不工作。

相关内容