我如何允许从第一台 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 不工作。