我已将 2 台 PC(PC-1 和 PC-2)连接到我的 MikroTik hEX(RB750Gr3)。
我想要禁止互联网访问仅适用于 PC-2(PC-1 和其他连接的设备应该可以访问互联网)。
但我希望能够从 PC-1 连接到 PC-2 或反之亦然(例如:PC-2 上运行着某个服务器,我希望 PC-1 可以访问该服务器)。换句话说:对于 PC-2,仅允许 LAN 访问。如何做到这一点?
谢谢您的回答。
答案1
这几乎可以直接转化为防火墙规则:
/ip firewall filter {
允许从 PC-2 到 LAN:
add chain=forward src-address=<PC2_IP> dst-address=<LAN_SUBNET> action=accept
拒绝从 PC-2 到其他地方:
add chain=forward src-address=<PC2_IP> action=reject
还可以组合:
拒绝从 PC 到不是-局域网:
add chain=forward src-address=<PC2_IP> dst-address=!<LAN_SUBNET> action=reject
}
此处 <LAN_SUBNET> 应该是您想要允许的前缀,例如192.168.88.0/24
IPv4 规则或2001:db8:abcd:0::/64
IPv6。
规则检查从上到下进行,直到第一次匹配,因此请确保规则在“允许建立”之后但在任何可能拥有的“允许一切”规则之前。
笔记:在同一个子网内,访问将始终被允许,因为通信仅通过内置交换机,而不会到达操作系统。(尽管 RouterOS 允许在必要时覆盖该功能 - 在 下/interface ethernet switch rule
,您也可以找到将数据包从 PC-2 重定向到操作系统的选项。但是,通常最好假设子网内流量未经过滤。)
答案2
除了@grawity所说的,请确保将PC-2的DHCP租约设为静态。您还必须确定威胁级别。如果PC-2由技术熟练的人使用,那么您将需要阻止路由器自动添加来自广播的ARP,并将DHCP服务器设置为Add ARP for leases
。这将阻止他们使用静态IP进行绕过。
现在我想起来,更简单的解决方案就是仅根据 MAC 地址进行过滤:
/ip firewall filter add chain=forward src-mac-address=XX:XX:XX:XX:XX:XX dst-address=!X.X.X.X/XX action=reject