使用 MikroTik Bridge 作为公共托管服务器的公共 IP 防火墙

使用 MikroTik Bridge 作为公共托管服务器的公共 IP 防火墙

我们想要这样做:

互联网<->MikroTik 处于桥接模式并带有防火墙过滤器<->托管服务器

  1. 主要目标是允许 RDP 和 FTP 从外部进入,但阻止从外部进入的所有其他内容。从内部,所有内容都必须传出。

  2. 我们遇到的问题是,我们添加了这些规则,并且阻止从外部到内部的工作正常,但现在托管服务器无法访问外部的任何内容。从外部返回的 TCP/IP 不是端口 3389 或端口 80,而是随机的。

/接口桥接过滤器> pr

标志:X - 禁用,I - 无效,D - 动态 0 ;;; 接受 ICMP 进行 PING 链=转发操作=接受 mac-protocol=ip dst-address=196.xxx/32 ip-protocol=icmp

1 ;;; 接受 FTP 传输端口 chain=forward action=accept mac-protocol=ip dst-address=196.xxx/32 dst-port=20 ip-protocol=tcp

2 ;;; 接受 FTP 控制端口 chain=forward action=accept mac-protocol=ip dst-address=196.xxx/32 dst-port=21 ip-protocol=tcp

3 ;;; 接受 RDP 链=转发操作=接受 mac 协议=ip dst 地址=196.xxx/32 dst 端口=3389 ip 协议=tcp

4 ;;; 记录即将被丢弃的所有内容 chain=forward action=log mac-protocol=ip dst-address=196.xxx/32 ip-protocol=tcp log-prefix="firewall_drop"

5 ;;; 丢弃所有内容 chain=forward action=drop mac-protocol=ip dst-address=196.xxx/32 ip-protocol=tcp

仅供参考,桥接器设置为使用防火墙,并且连接跟踪已开启。

答案1

我建议为您的服务器使用本地 IP 子网,并在 mikrotik(路由器)和服务器之间建立专用 LAN。还可以直接在公共 IP 上使用 mikrotik。然后对传出流量(从服务器到互联网)执行 ip src-nat。所有传入流量都应进行端口转发(dst-nat)。您还可以使用普通的三层 IP 防火墙,并为二层/桥接网络禁用三层防火墙。

答案2

这与连接跟踪有关,但我不知道它在网桥中的具体工作原理。我只需添加另一条规则,以允许来自内部的所有内容(具有源地址或接口):

add chain=forward action=accept mac-protocol=ip src-address=196.x.x.x/32 ip-protocol=tcp place-before=4 

答案3

我同意@Matt的观点,桥接是个愚蠢的想法,我们应该从一开始就进行路由。我们之所以桥接,是因为我们的边界路由器是传统的 Cisco VXR 7206,有两个接口,一个 WAN(ATM)和一个 LAN(用于公共)接口。我们希望在公共网络上设置防火墙,而无需重新划分网络子网。此外,虽然@DJ_Kukky 使用 DST-NAT 的建议是可行的,但这会导致更多的配置,而且我们不能(或不会)向客户提供私有 IP,因为我们是面向公众的 ISP。

我们应该在 Cisco 上实施防火墙规则,或者更换技术 (ATM)。最后,我们用 MetroEthernet 替换了 ATM,并且能够在以太网接口上建立外部接口,这样就可以使用 MikroTik。它运行得非常好。

相关内容