我目前有多台机器M0
,...,Mn
通过交换机连接。另外,一台指定的管理机器M0
有一个额外的 NIC,连接到外部网络(和互联网)。它看起来像这样:
+----+ +----+ +----+ +----+
outside ------------| M0 | | M1 | | M2 | | Mn |
network +----+ +----+ +----+ +----+
| | | |
| | | |
\ /========\ /
\-----| switch |-----/
\========/
我可以在它们自己的内部网络上的机器之间进行工作通信,并且我还可以从机器访问外部网络M0
,我可以从 SSH 到其他机器M0
。
现在我正在尝试让其他机器也能正常工作M1
,...,Mn
。我不需要这个永久的,最好是一个临时的交换机,这样我就可以随时在其他机器上进行更新或安装一些东西。
我的问题是,每当我设置 IP 转发时,从(我正在工作的地方)到其他机器的 SSH 连接M0
就会中断。因此,我需要转发所有流量,M0
但仍允许M0
和之间的 SSH 连接Mn
。
我当前的方法是,每当需要互联网时,我都会M0
在该特定机器上将其设置为默认网关并进行更新/etc/resolv.conf
。
在 上M0
,以下 iptables 规则被激活:
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.2.0/24 anywhere
ACCEPT all -- anywhere 192.168.2.0/24
# NAT table
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.2.0/24 anywhere
仅使用 iptables 是否可以转发所有内容但保持 SSH 处于活动状态?当我尝试在接受转发之前拒绝 SSH 连接时,它们会被拒绝,而不是在机器上进行处理。
所有机器都是Ubuntu 16.04.3。
感谢您的任何想法!