通过一台机器转发所有流量但仍允许 SSH 连接

通过一台机器转发所有流量但仍允许 SSH 连接

我目前有多台机器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。

感谢您的任何想法!

相关内容