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

sor*_*rin 68 vpn

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

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

对于客户端,我将使用 OS X,所以我更喜欢使用的解决方案,L2TP over IPsec或者PPTP因为我认为 Cisco IPsec 需要一些费用。

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

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

Tho*_*ard 85

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

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


不过,总结一下链接中的要点:

1:安装pptpdufwiptables可以用来代替ufw,但为了方便起见,ufw如果你不知道更好iptables

sudo apt-get install pptpd ufw

2:打开需要的端口。该指南建议为 pptp vpn 使用 22 (SSH) 和 1723。

须藤 ufw 允许 22
须藤 ufw 允许 1723
须藤 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,请使用公共 IP 作为“localip”。如果不是并且在本地网络上,请使用您计算机的网络 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.confnet.ipv4.ip_forward=1
重新加载配置: sudo sysctl -p

9:这一步假设你有 ufw。
编辑/etc/default/ufw并将选项DEFAULT_FORWARD_POLICY从更改DROPACCEPT

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

# NAT 表规则
*nat

:POSTROUTING 接受 [0:0]
# 允许转发流量到 eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j 伪装

# 处理NAT表规则
犯罪

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

-A ufw-before-input -p 47 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

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

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

  • 现在我到底在做什么 :D 我已经在服务器上工作了,不知道如何连接到它哈哈 (4认同)

Jay*_*ren 23

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

通过 PoPToP 的 PPTP 很容易

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

例如

vpnuser pptpd vpnpassword *
Run Code Online (Sandbox Code Playgroud)

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


Qas*_*sim 18

Ubuntu 12.04 上的 PPTP VPN 示例

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

安装必要的软件包

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

在服务器上配置 PPTP IP 范围

                          sudo nano /etc/pptpd.conf
Run Code Online (Sandbox Code Playgroud)

在最后添加以下几行

                          localip 10.89.64.1
                          remoteip 10.89.64.100-150
Run Code Online (Sandbox Code Playgroud)

这会将 PPTP 服务器设置为使用 IP 10.89.64.1,同时将 IP 范围 10.89.64.100 到 10.89.64.150 分发给 PPTP 客户端。只要它们是私有 IP 地址并且不与您的服务器已经使用的 IP 地址冲突,就可以随意更改这些地址。

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

                          sudo nano /etc/ppp/pptpd-options
Run Code Online (Sandbox Code Playgroud)

修改在最后添加以下几行

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4
Run Code Online (Sandbox Code Playgroud)

创建 PPTP 用户

                          sudo nano /etc/ppp/chap-secrets
Run Code Online (Sandbox Code Playgroud)

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

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *
Run Code Online (Sandbox Code Playgroud)

为 PPTP 连接配置 NAT

如果没有这一步,您将能够连接,但您的连接将无法从该服务器加载任何网络连接。

                          sudo nano /etc/rc.local
Run Code Online (Sandbox Code Playgroud)

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

                          iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

假设eth0,你可以ifconfig用来检查网络名称。

启用 IPv4 转发:

                          sudo nano /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)

取消注释以下行:

                          net.ipv4.ip_forward=1
Run Code Online (Sandbox Code Playgroud)

然后重新加载配置:

                          sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)

重新启动您的 VPS,一切都应该从任何 PPTP 客户端顺利运行。


客户端配置

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

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

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

在此处输入图片说明

对于 Windows

在此处输入图片说明


Nic*_*ams 8

这个线程上的其他答案在我的情况下只是部分答案。这是在 Ubuntu 12.04.3 上对我有用的东西

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

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

localip 10.0.0.1
remoteip 10.0.0.100-200
Run Code Online (Sandbox Code Playgroud)

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

ms-dns 8.8.8.8
ms-dns 8.8.4.4
Run Code Online (Sandbox Code Playgroud)

启用 IP 转发

sudo vim /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)

取消注释此行

net.ipv4.ip_forward=1
Run Code Online (Sandbox Code Playgroud)

保存更改

sudo sysctl -p /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)

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

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
username pptpd supersecretpassword *
Run Code Online (Sandbox Code Playgroud)

重启PPTP

service pptpd restart
Run Code Online (Sandbox Code Playgroud)

运行ifconfig并找到您的默认界面,在我的情况下它是br0(我将其更改为允许物理机上的虚拟机共享该界面。您的可能是en0

在此处输入图片说明

备份 iptables

iptables-save > ~/iptables.save
Run Code Online (Sandbox Code Playgroud)

现在让您的 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
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

在此处输入图片说明

在此处输入图片说明

然后选择Authentication settings > Password,然后在此处填写您的密码

在此处输入图片说明


小智 7

这是一个非常棒的项目,它可以消除 OpenVPN 的痛苦:

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

只需运行它,它就会安装 open vpn 并进行配置。最后它会弹出一个 client.ovpn 文件,你可以用它来设置你的客户端。似乎工作得很好。