Linux Web 服务器也可以充当防火墙和路由器吗?

Linux Web 服务器也可以充当防火墙和路由器吗?

我有一个 Linux 网络服务器,由我的 ISP 分配了公共“动态”IPv4 和公共 IPv6。

我有一个小型路由器,但由于 CPU 限制,它的最大速度只能达到 500mb/s,并且没有强大的防火墙(基本上只是一些 DDOS 保护和 MAC 过滤)。

我的盒子有两个以太网接口,我想知道我是否可以将 ISP 调制解调器的电缆插入第二个接口,然后让盒子路由和防火墙拦截流量。防火墙将阻止所有传入流量并阻止传出流量上的已知恶意软件端口。

但是,我不希望我的 Web 服务器和其他接口在第二个接口上监听,也不想通过第一个接口路由 Web 流量。基本上,我希望设置看起来像这样

Internet <==> | Linux        |
Internet <==> | Server/Router | <==> Switch

这可能吗?如果可以,我该如何实现呢?

答案1

为了实现隔离,您将需要 VMware esxi 或类似软件。

每个接口都有自己的 IP 地址。您可以轻松进入配置文件,更改服务侦听的 IP 地址。

通常情况下,所有流量都会流经与 ISP 连接的 NIC。除了仅发往内部 IP 的流量。这不一定是坏事,因为您的服务将忽略不属于它们的流量,并且您使用 Linux 中的 IPTABLES 来阻止每个端口上的所有不良流量。

iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp -m multiport -m state --state NEW -j ACCEPT --dports 80,443
iptables -A INPUT -j DROP

iptables -A OUTPUT -j DROP  -m multiport -m state --state NEW --dports 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

使用多端口时每个命令只能阻止 15 个条目。

流量仍将不得不像这样流动,除非您使用 VMWare esxi,否则您可以进一步隔离每个虚拟机。即便如此,如果 NIC B 上的计算机想要访问互联网,它必须通过 NIC A(连接到 ISP)

您甚至可以创建 NIC 物理连接到的第三个防火墙虚拟机,但它只会将您指定的流量转发到正确的虚拟机。

您可以使用 FORWARDING 组来控制从 NIC 1 传递到 NIC 2 的内容,反之亦然。

相关内容