Ubuntu搭建PPTP/L2TP类型VPN服务器

在Ubuntu下搭建VPN服务器,我们分别搭建PPTP和L2TP两种类型。

首先我们搭建PPTP服务器。
下载安装pptpd:

接下来修改配置脚本,首先在/etc/ppp/options中配置DNS。
将以下两行的注释符号删除并改为你需要的外网DNS:

然后修改pptp配置文件/etc/ppp/pptpd-options,除注释行外的内容如下:

以及另一个用于pptp分配ip的配置文件/etc/pptpd.conf,在该文件结尾加入:

给pptp连接分配的内部ip地址段请根据需要填写。
接下来打开路由转发功能,在/etc/sysctl.conf中找到以下内容将数值改为1:
net.ipv4.ip_forward=1
保存后运行命令生效:
sysctl -p
修改iptable规则NAT转发以及设置MTU

以上两行重启后会失效,很多人的做法是将其保存为iptable rules添加到pre-up中
我的做法比较简单,直接将这两行写入/etc/rc.local结尾(exit之前)。
(注意:eth0是你的公网网卡名称,请通过ifconfig确认)
然后在/etc/ppp/chap-secrets中添加用户和密码。
格式为[用户名\t连接类型\t密码\t用户IP],例如:

使用/etc/init.d/pptpd restart重启pptpd服务。
至此pptp类型VPN搭建完毕。

接下来搭建L2TP类型VPN。
因为L2TP需要通过IPSec加密,同样我们下载安装需要的组建服务:

然后修改配置文件/etc/ipsec.conf,除注释行外的内容如下:

left处请填写您本服务器的IP位址!
接下来修改/etc/xl2tpd/xl2tpd.conf,除注释行外的内容如下:

ip range处请填写您需要给l2tp连接分配的内部ip网段。
再修改/etc/ppp/options.xl2tpd,如果没有可以新建,内容如下:

DNS处可设置您需要分配的DNS地址。
再修改/etc/ipsec.secrets文件设置默认共享密钥:

前面为本服务器IP地址,引号内的为您要设置的密钥
修改网络策略使ipsec能正常运行:

顺便也加入到/etc/rc.local中(exit之前)。
以上配置全部完毕后,可以通过ipsec verify命令检测ipsec运行是否正常。
如果出现Checking for IPsec support in kernel [FAILED],您可能未启动ipsec服务,通过/etc/init.d/ipsec start启动。
如果出现NETKEY: Testing XFRM related proc values [FAILED],您可能未修改网络策略。
如果出现Pluto listening for IKE on udp 500 [FAILED],您可能需要安装apt-get install lsof。
如果没有出现[FAILED]表示运行正常。
Ubuntu使用apt-get安装openswan一定会出现Two or more interfaces found, checking IP forwarding [FAILED]。
而且客户端无法连接,且在/var/log/auth日志中出现
ERROR: netlink XFRM_MSG_DELPOLICY response for flow eroute_connection delete included errno 2: No such file or directory
那么原因应该是apt-get到的openswan版本并不能在该Ubuntu上运行,建议去openswan的官网下载2.6.34版本手动编译安装。
或在此下载源码:ftp://ro:[email protected]/openswan_lilith.pro.tar.gz
(这实在非常恶心,因为源码编译安装不是谁都能完成的,注意必须把源码解压在/usr/src下并apt-get install libgmp3-dev,以及bison,flex等然后再编译安装)
L2TP将和PPTP一样使用/etc/ppp/chap-secrets作为帐户密码文件。
重启所有服务:

大功告成!

======
kujou_rin

2 thoughts on “Ubuntu搭建PPTP/L2TP类型VPN服务器

  1. 自动引用通知: vps-vpn-ss | MyWordPress

发布留言

发布留言必须填写的电子邮件地址不会公开。 必填字段标示为 *