将Ubuntu设置为VPN服务器的最简单方法
我知道网上有很多教程可以设置VPN客户端和服务器。
我找到一个简单/简短的 ,我只对服务器部分感兴趣。
对于客户端,我将使用OS X,因此我更喜欢使用L2TP over IPsec
或PPTP
的解决方案,因为我认为Cisco IPsec会花费一些成本。
我不想花太多时间来设置它。 你知道,也许某人已经制作了一个安装脚本:)
注意:我正在使用运行Ubuntu 12.04的EC2微实例。
更新 :从Sierra开始,macOS不再支持PPTP vpn。 此答案对于Sierra和更高版本的macOS客户端无效。
通过PoPToP的PPTP很容易
-
apt-get install pptpd
- 编辑
/etc/pptpd.conf
并将remoteip选项设置为网络上不由DHCP服务器提供服务的范围。 - 编辑
/etc/ppp/chap-secrets
并添加用户名和密码
例如
vpnuser pptpd vpnpassword *
这就是设置pptp所需的全部内容。 现在用您的OS X客户端测试它。
警告:PPTP是一个不遵守协议! 不仅加密被破坏,而且它以明文forms发送您的身份validation并且很容易被截获。 据估计,暴力破解密码所需的时间大致相当于强制使用单个DES密钥所需的时间。 考虑使用OpenVPN或其他VPN架构而不是PPTP!
我使用本指南在我的Ubuntu 12.04服务器上设置PPTP VPN服务器。
总结一下链接中的要点:
1:安装pptpd
和ufw
。 iptables
可以代替ufw使用,但为了方便起见,如果你不懂iptables
, ufw
会更好。
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_POLICY
从DROP
更改为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文件,您可以使用它来设置客户端。 似乎工作得很好。