将Ubuntu设置为VPN服务器的最简单方法

我知道网上有很多教程可以设置VPN客户端和服务器。

我找到一个简单/简短的 ,我只对服务器部分感兴趣。

对于客户端,我将使用OS X,因此我更喜欢使用L2TP over IPsecPPTP的解决方案,因为我认为Cisco IPsec会花费一些成本。

我不想花太多时间来设置它。 你知道,也许某人已经制作了一个安装脚本:)

注意:我正在使用运行Ubuntu 12.04的EC2微实例。

更新 :从Sierra开始,macOS不再支持PPTP vpn。 此答案对于Sierra和更高版本的macOS客户端无效。

通过PoPToP的PPTP很容易

  1. apt-get install pptpd
  2. 编辑/etc/pptpd.conf并将remoteip选项设置为网络上不由DHCP服务器提供服务的范围。
  3. 编辑/etc/ppp/chap-secrets并添加用户名和密码

例如

 vpnuser pptpd vpnpassword * 

这就是设置pptp所需的全部内容。 现在用您的OS X客户端测试它。

警告:PPTP是一个不遵守协议! 不仅加密被破坏,而且它以明文forms发送您的身份validation并且很容易被截获。 据估计,暴力破解密码所需的时间大致相当于强制使用单个DES密钥所需的时间。 考虑使用OpenVPN或其他VPN架构而不是PPTP!

我使用本指南在我的Ubuntu 12.04服务器上设置PPTP VPN服务器。


总结一下链接中的要点:

1:安装pptpdufwiptables可以代替ufw使用,但为了方便起见,如果你不懂iptablesufw会更好。

sudo apt-get install pptpd ufw

2:打开所需的端口。 指南建议22(SSH)和pptp vpn的1723。

  sudo ufw允许22
 sudo ufw允许1723
 sudo ufw enable 

3:编辑/etc/ppp/pptpd-options 。 用你最喜欢的编辑器打开文件(我的纳米,所以我的命令是sudo nano /etc/ppp/pptpd-options ),如果你想让它在所有的普遍工作,请在它们之前添加#注释掉这些行。操作系统:

 拒绝-PAP
拒绝-CHAP
拒绝-MSCHAP 

如果要禁用加密,可以对此行进行注释: require-mppe-128

4:在编辑/etc/ppp/pptpd-options ,为VPN添加DNS服务器。 此示例使用OpenDNS服务器:

  ms-dns 208.67.222.222
 ms-dns 208.67.220.220 

5:编辑/etc/pptpd.conf 。 用你最喜欢的编辑器打开文件(我的纳米,所以命令对我来说是sudo nano /etc/pptpd.conf )。 您需要为系统添加本地VPN IP,因此请添加:

  localip 10.99.99.99
 remoteip 10.99.99.100-199 

如果您的系统是VPS,请使用公共IP“localip”。 如果不是并且在本地网络上,请使用计算机的网络IP。 如果您的子网上存在这些IP,请使用不同的IP和范围! 如果您不知道您的VPS的公共IP,请通过运行dig +short myip.opendns.com @resolver1.opendns.com找到它。

6:编辑/etc/ppp/chap-secrets 。 用你喜欢的编辑器打开文件(我的纳米,所以命令对我来说是sudo nano /etc/ppp/chap-secrets ),然后添加auth数据。
/etc/ppp/chap-secrets的格式是:

  [用户名] [服务] [密码] [允许的IP地址] 

一个例子是: sampleuser pptpd samplepassword *

7:重启pptpd。 在终端运行此命令: sudo /etc/init.d/pptpd restart

8:编辑/etc/sysctl.conf 。 用你最喜欢的编辑器打开文件(我的nano,所以命令对我来说是sudo nano /etc/sysctl.conf )。 在/etc/sysctl.conf取消注释以下行(通过删除它开头的# ): net.ipv4.ip_forward=1
重新加载配置: sudo sysctl -p

9: 这一步假设你有ufw。
编辑/etc/default/ufw并将选项DEFAULT_FORWARD_POLICYDROP更改为ACCEPT

10: 这一步假设你有ufw。
编辑/etc/ufw/before.rules ,并在/etc/ufw/before.rules的开头或*filter规则之前添加以下内容(推荐):

  #NAT表规则
 * NAT

 :POSTROUTING ACCEPT [0:0]
 #允许将流量转发到eth0
 -A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE

 #处理NAT表规则
承诺 

如果您有内核版本3.18及更新版本(您可以通过运行uname -r来检查),还要在# drop INVALID packets ...之前添加以下行# drop INVALID packets ...行:

 -A ufw-before-input -p 47 -j ACCEPT 

11:重新启动防火墙,刷新规则集并应用我们添加到/etc/ufw/*.rules文件中的规则: sudo ufw disable && sudo ufw enable

警告:如果您有其他端口需要打开,例如对于HTTPS,如果您的服务器托管网站,则需要使用sudo ufw allow 将这些端口单独添加到允许的列表中

Ubuntu 12.04上的PPTP VPN示例

这是在Ubuntu 12.04上设置基本PPTP VPN服务器的快速教程。

安装必要的软件包

  sudo apt-get install ppp pptpd 

在服务器上配置PPTP IP范围

  sudo nano /etc/pptpd.conf 

最后添加以下行

  localip 10.89.64.1 remoteip 10.89.64.100-150 

这将PPTP服务器设置为使用IP 10.89.64.1,同时将IP范围10.89.64.100分发到10.89.64.150到PPTP客户端。 只要它们是私有IP地址,并且不与服务器已使用的IP地址冲突,请根据需要更改它们。

配置客户端连接到此PPTP服务器时使用的DNS服务器

  sudo nano /etc/ppp/pptpd-options 

修改OR在末尾添加以下行

  ms-dns 8.8.8.8 ms-dns 8.8.4.4 

创建PPTP用户

  sudo nano /etc/ppp/chap-secrets 

在底部附加一行,以便您的文件看起来像:

  # client server secret IP addresses test pptpd abcd1234 * 

为PPTP连接配置NAT

如果没有此步骤,您将能够连接,但您的连接将无法从此服务器加载任何Web连接。

  sudo nano /etc/rc.local 

在“退出0”行之前的右下角添加以下内容:

  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 

假设eth0,您可以使用ifconfig检查网络名称。

启用IPv4转发:

  sudo nano /etc/sysctl.conf 

取消注释以下行:

  net.ipv4.ip_forward=1 

然后重新加载配置:

  sudo sysctl -p 

重新启动您的VPS,一切都应该从任何PPTP客户端游泳。


客户端配置

对于Mac,请确保添加了PPTP VPN连接。 除此之外,您只需在身份validation设置中设置服务器地址,帐户名和密码。 这里没有痛苦。

对于Linux,NetworkManager添加VPN连接。 确保添加了PPTP VPN连接。 我使用的配置在这里:

如何调试和修复PPTP / VPN客户端连接

在此处输入图像描述

而对于Windows

在此处输入图像描述

在我的案例中,这个post的其他答案只是部分答案。 这是在Ubuntu 12.04.3上对我有用的东西

 sudo apt-get install pptpd 

将以下内容附加到/etc/pptpd.conf(IP地址无关紧要,这只是ppp0接口的IP地址。)

 localip 10.0.0.1 remoteip 10.0.0.100-200 

将DNS服务器添加到/ etc / ppp / pptpd-options

 ms-dns 8.8.8.8 ms-dns 8.8.4.4 

启用IP转发

 sudo vim /etc/sysctl.conf 

取消注释这一行

 net.ipv4.ip_forward=1 

保存更改

 sudo sysctl -p /etc/sysctl.conf 

编辑/ etc / ppp / chap-secrets,以这种格式添加VPN用户:

 # Secrets for authentication using CHAP # client server secret IP addresses username pptpd supersecretpassword * 

重启PPTP

 service pptpd restart 

运行ifconfig并找到你的默认界面,在我的例子中它是br0 (我改变它以允许我的物理机器上的虚拟机共享界面。你的可能是en0

在此处输入图像描述

备份iptables

 iptables-save > ~/iptables.save 

现在让你的iptables更改使用ifconfig显示的默认界面。

 iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT iptables --append FORWARD --in-interface br0 -j ACCEPT 

在系统重新启动时保持持久性;

 sudo apt-get install iptables-persistent 

在客户端计算机上添加VPN(Mac)

系统偏好设置>网络> [+]> VPN

在此处输入图像描述

在此处输入图像描述

然后选择validation设置>密码,然后在此处填写您的密码

在此处输入图像描述

这是一个非常甜蜜的项目,它描述了OpenVPN的痛苦:

https://github.com/Nyr/openvpn-install

只需运行它,它将安装打开的VPN并配置它。 最后,它会弹出一个client.ovpn文件,您可以使用它来设置客户端。 似乎工作得很好。