我知道网上有很多关于设置 VPN 客户端和服务器的教程。
我发现一个简单/简短,我只对服务器部分感兴趣。
L2TP over IPsec
对于客户端,我将使用 OS X,因此我更喜欢使用或的解决方案,PPTP
因为我认为 Cisco IPsec 会花费一些钱。
我不想花太多时间进行设置。你知道,也许有人已经制作了安装脚本 :)
注意:我正在使用运行 Ubuntu 12.04 的 EC2 微实例。
答案1
警告:PPTP 是一种不安全的协议!不仅加密已被破解,而且它以明文形式发送您的身份验证,很容易被拦截。据估计,暴力破解密码所需的时间大致相当于暴力破解单个 DES 密钥所需的时间。考虑使用 OpenVPN 或其他 VPN 架构代替 PPTP!
我用了本指南在我的 Ubuntu 12.04 服务器上设置 PPTP VPN 服务器。
总结一下链接中的要点:
1:安装pptpd
并ufw
。 iptables
可以代替ufw,但为了方便起见,ufw
如果您不知道,最好使用iptables
。sudo apt-get install pptpd ufw
2:打开所需的端口。指南建议 22 (SSH) 和 1723 用于 pptp vpn。
sudo ufw 允许 22 sudo ufw 允许 1723 sudo ufw 启用
3:编辑/etc/ppp/pptpd-options
。用你最喜欢的编辑器打开文件(我用的是 nano,所以命令是),如果你希望这个命令在所有操作系统上都能通用,sudo nano /etc/ppp/pptpd-options
可以在这些行前面加上一个来注释掉它们:#
拒绝 拒绝 拒绝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
。使用您最喜欢的编辑器打开文件(我的是 nano,所以对我来说命令是sudo nano /etc/pptpd.conf
)。您需要为系统添加本地 VPN IP,因此添加:
本地IP 10.99.99.99 远程 IP 10.99.99.100-199
如果您的系统是 VPS,请使用“localip”的公共 IP。如果不是,并且位于本地网络上,请使用您的计算机的网络 IP。如果这些 IP 存在于您的子网中,请使用不同的 IP 和范围!如果您不知道 VPS 的公共 IP,请通过运行来查找dig +short myip.opendns.com @resolver1.opendns.com
6:编辑/etc/ppp/chap-secrets
。使用您最喜欢的编辑器(我的是 nano,因此对我来说命令是)打开文件sudo nano /etc/ppp/chap-secrets
,然后添加身份验证数据。
格式为/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 表规则 *自然 :后路由接受 [0:0] # 允许转发流量到 eth0 -A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE # 处理 NAT 表规则 犯罪
如果您的内核版本为 3.18 及更新版本(您可以通过运行来检查),还请在该行uname -r
前添加以下几行:# drop INVALID packets ...
-A ufw-before-input -p 47 -j ACCEPT
11:重新启动防火墙,刷新规则集并将我们添加的规则应用到文件中/etc/ufw/*.rules
: sudo ufw disable && sudo ufw enable
警告:如果你需要打开其他端口,例如,如果你的服务器托管网站,则需要将这些端口单独添加到允许列表中sudo ufw allow <PORT>
答案2
更新:从 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 客户端进行测试。
答案3
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 地址并且不与服务器已使用的 IP 地址冲突即可。
配置客户端连接到此 PPTP 服务器时要使用的 DNS 服务器
sudo nano /etc/ppp/pptpd-options
调整或者在最后添加以下几行
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
如果没有这一步,您仍然能够连接,但您的连接将无法从该服务器加载任何网络连接。
sudo nano /etc/rc.local
在“exit 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 连接。除此之外,您只需要在身份验证设置中设置服务器地址、帐户名和密码。这里没什么麻烦。
对于 Linux,使用 NetworkManager 添加 VPN 连接。请确保您已添加 PPTP VPN 连接。我使用的配置如下:
对于 Windows
答案4
这是一个非常棒的项目,它可以通过脚本消除 OpenVPN 的痛苦:
https://github.com/Nyr/openvpn-install
只需运行它,它就会安装并配置 open vpn。最后它会弹出一个 client.ovpn 文件,您可以使用它来设置客户端。似乎运行得很好。