1. 选择你的技术

1. 选择你的技术

我需要能够通过互联网上的 VPN 将我的 Windows 用户连接到我的 Ubuntu 服务器,以便他们一旦连接到服务器就可以浏览共享文件夹。我基本上已经安装了 2 个 NIC。这是我的 etc/network/Interface 配置供您参考。我有 2 个在 Ubuntu 上运行的虚拟服务器,并且有第二个 HDD 共享我的文件。

auto lo
iface lo inet loopback

#The Primary network interface
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.2.100
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
dns-nameservers 208.67.222.222 208.67.220.220
dns-search google.com

bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_hello 2
bridge_maxwait 0
post-up ip link set br0 address 00:10:18:77:5e:46

#Secondary network interface
# auto eth1
# iface eth1 inet static
# address 192.168.2.150
# netmask 255.255.255.0
# network 192.168.2.0
# broadcast 192.168.2.255
# gateway 192.168.2.1
# dns-nameserver 192.168.2.1 8.8.8.8

任何帮助都非常感谢。还请注意,我不是专家,而是新手。

答案1

您可以使用 OpenVPN 软件来创建 VPN 服务器。

在 Ubuntu 上,sudo apt-get install openvpn

您必须/etc/openvpn为服务器创建一个配置文件:

port 1194
proto tcp
dev tun
pkcs12 openvpn.p12
dh dh1024.pem
server 192.168.10.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun

只需将此文件命名server.conf为实例并启动您的 OpenVPN 实例:

sudo service openvpn start

这将使用在 TCP 端口 1194 上的所有服务器 IP 上运行的 TUN 设备启动 VPN 服务器。VPN 隧道将位于子网 192.168.10.0/24 中,服务器将接收 192.168.10.1 地址。LZO
压缩已激活,并且ipp.txt将使用一个文件来保留提供给客户端的 IP,以便始终为它们提供相同的 IP。

指出参数是一个您必须使用以下命令自行生成的文件:

openssl dhparam -out dh1024.pem 1024

棘手的此配置的一部分是证书的使用。这里我使用一个 PKCS12 文件,其中包含私钥及其证书以及 CA 的证书。

为了管理密钥和证书并轻松导出它们,我找到了tinyca2可以在 Ubuntu 上安装的GUI 工具sudo apt-get install tinyca2。此工具将创建一个本地独立 CA,您可以使用它来生成和导出私钥和公钥以及 X.509 证书。

配置中提到的所有没有绝对路径名的文件都位于/etc/openvpn目录中。

一旦您的 OpenVPN 服务器运行,您将必须下载适用于 Windows 的 OpenVPN 版本(免费)并将其安装到您的 Windows 客户端上。

这些信息和软件可在OpenVPN 网站

答案2

你需要完成几点:

1. 选择你的技术

选择要使用哪些协议来实现 VPN。

主要选项有:PPTP、L2TP/IPsec 和 OpenVPN。

点对点隧道协议

点对点隧道协议已经存在 15 年多了(Windows 95 已经有客户端了!)。它是微软对 PPP 的翻版。身份验证和加密依赖于 PPP 本身,因此它可以支持多种方法。长话短说,不要使用它. 安全性可以考虑破碎的如今。

L2TP/IPsec

第 2 层隧道协议 (L2TP) 本身也不提供加密。它由 IPsec 提供。这是 Windows 环境中受良好支持的配置。在 Linux 上配置它有时可能会很麻烦,但它可能是您的最好的选择因为您的客户端正在运行 Windows。

OpenVPN

摘录自维基百科

它使用自定义安全协议,利用 SSL/TLS 进行密钥交换。它能够穿越网络地址转换器 (NAT) 和防火墙。

在配置 OpenVPN 时,您可以选择创建一个适配器或轻敲适配器。

  • 适配器在第 3 层工作,这意味着您可以为其分配一个 IP,并将其视为隧道后面 VPN 网络的下一跳路由器。
  • 轻敲适配器在第 2 层工作,因此您可以合并两端都在同一网络中。如果您需要 ARP 请求/回复(或任何第 2 层广播)到达 VPN 隧道的另一端,那么这非常有用。缺点:占用更多带宽。

这是最简单的配置,应该可以满足大多数需求在 GNU/Linux 环境中

2.配置服务器

这当然取决于你之前的选择。我不会发布完整的指南,而是给你一些有用的指南:

此外,您还面临另一个挑战:客户端如何进行自我验证,PSK 还是 PKI?

  • 预共享密钥(PSK):如果您的客户端有动态 IP,或者您希望它们能够自由漫游并且仍能连接到您的服务器,则所有客户端都必须共享相同的 PSK。这意味着(至少在使用 IPsec 解决方案时)服务器将无法区分谁是谁(在配置隧道时)。
  • 公钥基础设施(PKI):这是复杂的配置,每个客户端一个证书,一个根 CA 来管理所有证书(或子 CA)。如果您选择证书,请让我向您指出另一个资源

3.配置客户端

仅仅因为 PPTP 和 L2TP/IPsec 是 Windows 原生的,并不意味着您不会遇到麻烦。

  • 点对点隧道协议是一种遗留问题,你不应该遇到这方面的问题。
  • L2TP/IPsec:您需要复制根证书并配置连接以使用它或配置 IPsec PSK
  • OpenVPN:Windows 安装应该非常简单,但“必须”以管理员身份运行。如果您不想这样做,或者没有这个选项,可以以非管理员身份运行

结论

  1. 不要使用 PPTP。
  2. 即使L2TP/IPsec可能是 Windows 环境的最佳选择,过度配置和设置可能会阻止您考虑它的可行性。更不用说本机 Windows 协议的双刃剑:客户端并不总是 Linux 友好的。
  3. OpenVPN不是一个标准解决方案,但它是易于安装和配置,它在 Linux 世界中得到了相当广泛的扩展,并且在 Linux 和 Windows 社区中都得到了大量的支持。

相关内容