使用 Linux 连接多个网络

使用 Linux 连接多个网络

我的家庭办公室里有一台 Debian 服务器。我有两个客户端,我想通过互联网将我的网络连接到他们的网络。我在每个位置也有两个类似的 Debian 服务器。我们所有的网络都使用单独的网络块。我家里的网络是 172.16.120.x,另外两个是 192.168.0.x 和 192.168.1.x。我想使用我的 Linux 服务器将这三个网络连接在一起。这可能吗?如果可以,我会使用什么程序/协议?我在这三台服务器上都安装了 webmin,如果有内置程序,事情会变得容易得多。

顺便说一句,这些网络中都没有 Debian 盒作为 DHCP 服务器。它们都使用外部硬件路由器。

补充一下,我的所有服务器都在路由器/防火墙后面,没有外部 IP 地址。

答案1

有可能的。

你需要:

  • 打开端口以将 VPN 流量传递到 Debian 设备
  • 每台机器上的 IPSEC 配置
  • 安装了 IPSEC 用户空间工具(ipsec-tools(以及支持它的内核,因此 > 2.5.7))
  • http://lartc.org/howto/lartc.ipsec.html
  • 大量修改配置文件

然后,在您的路由器/默认网关上,为指向 Debian 盒的远程子网添加静态路由。

配置不是那么不好,但如果你以前从未处理过 IPSEC VPN,这可能会令人困惑(不过,这是 Linux,所以一切都是 ;) )

在最后一个(也是唯一的)服务器上,我让它运行起来,涉及六个文件,我以经过审查的方式将它们包含在下面。我把本地 IP是本地服务器的 IP 地址,我把远程 IP是远程服务器的 IP 地址,并且此配置用于同一网络上两台机器之间的安全通信,因此对于涉及 NAT 和多台机器的情况,该配置并不适合您。

您将需要在任一侧镜像配置(因此,在一台服务器上交换 local_ip 和 remote_ip 位),同时找到需要放置公共 IP 的位置以使其在互联网上工作。

无论如何,如果你想让它工作,准备好花几个小时来捣鼓它,因为它可能需要这么长时间。除非你购买昂贵的防火墙套件,否则 VPN 并不是真正意义上的点击和拖动。

/etc/sysconfig/网络脚本/ifcfg-ipsec0

DST=remote_ip
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK

/etc/sysconfig/network-scripts/keys-ipsec0

IKE_PSK="passphrase"

/etc/racoon/psk

remote_ip  passphrase

/etc/racoon/racoon.conf

path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk";
path certificate "/etc/racoon/certs";

# log debug2;

listen
{
    isakmp local_ip;
}

include "/etc/racoon/remote_ip.conf";

/etc/racoon/setkey.conf

#!/sbin/setkey -f
flush;
spdflush;

#Add the policy
#This policy applies to inbound traffic from remote
spdadd remote_ip/32 local_ip/32 any -P in ipsec esp/transport//require;
spdadd remote_ip/32 local_ip/32 any -P in ipsec ah/transport//require;

#This policy applies to outbound traffic to remote
spdadd local_ip/32 remote_ip/32 any -P out ipsec esp/transport//require;
spdadd local_ip/32 remote_ip/32 any -P out ipsec ah/transport//require;

/etc/racoon/remote_ip.conf

remote remote_ip
{
    exchange_mode main;
    my_identifier address local_ip;
    proposal {
        encryption_algorithm 3des;
        hash_algorithm sha1;
        authentication_method pre_shared_key;
        dh_group 2;
        lifetime time 8 hours;    
    }
}

sainfo address local_ip any address remote_ip any
{
    authentication_algorithm hmac_sha1;
    encryption_algorithm 3des;
    compression_algorithm deflate;
}

sainfo address remote_ip any address local_ip any
{
    authentication_algorithm hmac_sha1;
    encryption_algorithm 3des;
    compression_algorithm deflate;
}

答案2

听起来您想要一个站点到站点的 VPN,从每个客户端到您。您可能希望或不希望两个客户端相互连接。

这不是“桥接”,但我想我明白你的意思。阅读三个站点的边界设备文档,并弄清楚如何从他们的站点到你的站点建立 VPN。

这完全独立于每个网络内的服务器。一旦网关或其他边界设备创建了 VPN 隧道,您就可以做您需要做的事情。

相关内容