我的家庭办公室里有一台 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 隧道,您就可以做您需要做的事情。