如何在我自己的 Ubuntu 服务器上设置 PPTP VPN?

Ste*_*zzo 17 server vpn pptp

假设我有一个来自Linode 之类的运行 Ubuntu的虚拟专用服务器,我如何轻松设置 PPTP VPN 以便 Ubuntu 客户端可以连接到它?

默认情况下,Ubuntu 提供连接到这些 PPTP 网络。我想以一种非常容易连接的方式设置它(即无需在客户端安装任何软件包)。

Mic*_*pat 29

绝对的最低服务器设置

以下是在 Ubuntu 下运行基本 PPTP VPN 服务器所需的绝对最低指令。然后,客户端将能够通过 VPN 进入服务器并路由他们的互联网流量,以便它通过服务器到达互联网。与往常一样,请查阅完整文档以了解一切都在做什么。

首先,安装所需的软件:

sudo apt-get install pptpd
Run Code Online (Sandbox Code Playgroud)

其次,ip_forward通过取消注释/etc/sysctl.conf 中的相关行,在内核中启用IPv4 :

sudo sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf
# Reload the config file to have the change take effect immediately.
sudo -i sysctl -p
Run Code Online (Sandbox Code Playgroud)

第三,启用 NAT(如果尚未启用),以便私有 VPN 网络上的用户可以将他们的数据包路由到 Internet:

OUTIF=`/sbin/ip route show to exact 0/0 | sed -r 's/.*dev\s+(\S+).*/\1/'`
sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE
# Enable NAT on boot from the rc.local script.
CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
sudo sed -i "\$i$CMD\n" /etc/rc.local
Run Code Online (Sandbox Code Playgroud)

注意:本指南假设您没有在服务器上配置防火墙。如果服务器上有防火墙,例如UFW,请参阅相关文档

第四,对于每个 VPN 用户,在文件/etc/ppp/chap-secrets 中创建一个帐户。替换$USER为您要用于该 VPN 用户的实际用户名。

KEY=`head -c 20 /dev/urandom | sha1sum | nawk '{print $1}'`
echo "$USER pptpd $KEY *" | sudo tee -a /etc/ppp/chap-secrets
Run Code Online (Sandbox Code Playgroud)

最后,你准备好...

配置客户端

网络管理器小程序中,选择VPN 连接配置 VPN,然后单击添加。在下一个屏幕上,为 VPN 类型选择PPTP,然后单击创建

在此处输入图片说明

在此窗口中,输入您服务器的主机名或 IP 以及您添加到服务器上的/etc/ppp/chap-secrets文件的用户名和密钥。

现在点击高级

在此处输入图片说明

在此窗口中,启用“使用点对点加密 (MPPE)”并选择128 位安全性。禁用MSCHAP身份验证(启用MSCHAPv2)。

最后,单击“确定”,然后单击“保存”以关闭上一个窗口。

您现在可以通过转到网络管理器小程序来测试 VPN 连接吗?VPN 连接并选择您刚刚创建的连接。确保您收到一条消息说 VPN 连接成功,然后浏览到IP 检查网站以验证您的 IP 现在是否显示为服务器的 IP。

如果您收到一条消息说到服务器的 VPN 连接失败:首先验证您是否正确输入了客户端设置;其次,检查客户端是否具有到服务器上 TCP 端口 1723 的网络连接;最后,检查服务器上的日志文件/var/log/messages以获得进一步的线索。如果您的 VPN 连接成功,但随后您无法从客户端浏览到任何网站,请参阅pptpd 网站上非常有用的诊断指南

笔记

如果您连接的本地网络使用 192.168.0.0/24 和 192.168.1.0/24 子网,您将遇到问题,因为这是 PPTP 服务器默认使用的。您必须在pptpd.conf 中配置 PPTP 以使用不同的子网。

您可能还需要进行许多其他配置更改。例如,您的所有域名查找仍将使用您的本地 DNS 服务器而不是通过 PPTP 服务器进行查询。花点时间阅读完整的文档,了解如何更改此设置和其他许多设置。