使用 12.04 LTS 设置沙盒网络的 /etc/network/interfaces

使用 12.04 LTS 设置沙盒网络的 /etc/network/interfaces

我正在尝试将 Ubuntu 12.04 设置为路由器,以便可以隔离 IP 子网。对于隔离的子网,仅允许通过端口转发进行连接。除此之外,不允许入站或出站连接。(如果重要的话,我打算使用 Shorewall,而不是自己处理 netfilter 和 iptables。)

昨天我在 /etc/network/interfaces 中尝试了多种可能性,甚至无法让机器在启动过程中不暂停,更不用说工作了。我承认我确实在内核中启用了转发,但我并不认为这会破坏这一点。

以下是我尝试过的:

auto lo
iface lo inet loopback

#net - Internet and normal CS network
#netmask 255.255.0.0
#explicitly listing this slowed down boot?
auto eth0
iface eth0 inet

#loc - this is the security class network (sandbox)
#For simplicity we set it up as full 172.16.0.0/12
#Took out auto because might be causing delay on boot;  restore when fast.
#iface eth1 static
#      address 172.16.1.1
#      netmask 255.240.0.0
#      broadcast 172.31.255.255

注释行显示了我最初尝试的选项,但当机器在没有整整一分钟的网络暂停的情况下仍然无法启动时,我放弃了这些选项。我检查了 kern.log,它基本上说网络进程以状态 1 终止,这没什么帮助。

我应该禁用网络管理器吗?我的文件中应该包含什么?除了默认文件之外,我还需要这个文件中的其他内容吗?还是它仅适用于 ifup/ifdown?

附上了我的网络图。抱歉,图有些乱;它本来是供我自己使用的,随着时间的推移而发展起来的。我的 Ubuntu 机器是网络之间的“fw”(防火墙)机器,它在每个网络上都有一个单独的 NIC。我现在正在从头开始设置一台新机器,以防万一。 我的网络图

答案1

好的,我认为我的主要错误是遗漏了第二个适配器上的“inet”。新机器重新启动得很顺利。我认为原来的机器肯定还有另一个问题,它不喜欢上面的缩减文件。

此外,用于测试此文件的一个非常有用的命令(目前?)是:

sudo bash /etc/init.d/networking restart

这已被弃用;从技术上讲,我认为您现在应该对每个接口执行 ifdown 和 ifup。

这是我的 /etc/network/interfaces:

auto lo
iface lo inet loopback

#net
auto eth0
iface eth0 inet dhcp

#loc
auto eth1
iface eth1 inet static
  address 172.16.1.1
  netmask 255.240.0.0
  broadcast 172.31.255.255
  network 172.16.1.1

我仍然不知道这个文件是否真的需要,特别是在我设置了shorewall之后。

相关内容