2011年9月10日星期六

精品博客

精品博客


如何在 VPS 上搭建 L2TP/IPSec 简易教程

Posted: 09 Sep 2011 06:45 PM PDT

如之前所说,PPTP 类的 VPN 可以在 iPhone 手机上使用,但是不能在 Mac OS X 电脑系统上使用,于是,我需要使用 L2TP/IPSec (L2TP over IPSec,即在 IPSec 上搭建 L2TP) 类的 VPN。

这篇文章将介绍如何在 VPS (Xen)上搭建 L2TP/IPSec 类的 VPN,而你只需要一个 VPS 和一台可以上网的电脑。和 PPTP 的一样,L2TP/IPSec 的操作步骤也是基于 Mac 电脑的终端应用程序,对 Linux 系统来讲,步骤几乎是一模一样的,而对 Windows 用户来讲,则需要先安装一个叫 Putty 的软件。

顺便提一下,Xen VPS 的 Ubuntu 系统最好使用 11.04 版本的,因为其他较低的版本(例如 10.04)很可能不行。

How To Set Up A L2TP/IPSec VPN In A VPS

I、连接 VPS

打开终端应用程序并输入以下命令:

ssh root@xxx.xxx.xxx.xxx

记得将 "xxx.xxx.xxx.xxx" 替换成 VPS 的 IP 地址,例如 "178.18.17.30",然后回车就可以了。

P.S.:

如果在连接的过程中遇到问题,可以参考之前的 PPTP 教程。

II、安装 OpenSwan

虽然你可以通过输入 "aptitude install openswan" 命令直接安装 OpenSwan,但根据我分别在两个不同的 VPS 上测试的结果,这种方法已经无效,所以,最好还是直接从 OpenSwan 官方网站下载再安装,具体方法如下:

1、输入以下命令:

aptitude install build-essential

回车,输入 "y",再回车。

2、输入以下命令:

aptitude install libgmp3-dev gawk flex bison

回车,输入 "y",再回车。

3、输入以下命令:

wget http://www.openswan.org/download/openswan-2.6.35.tar.gz

回车。

4、输入以下命令:

tar xzvf openswan-2.6.35.tar.gz

回车。

5、输入以下命令:

cd openswan-2.6.35

回车。

6、输入以下命令:

make programs

回车。

7、输入以下命令:

make install

回车。到此,OpenSwan 就安装成功了。

备注:

a、2.6.35 是目前最新的版本,将来你可以访问 OpenSwan 官方网站看看有没有更新的版本,如有,不妨尝试一下。

b、文章中的所有命令都可以直接复制粘贴到终端应用程序。

III、编辑 IPSec

OpenSwan 是用来建 IPSec 的,而 IPSec 是用来建 L2TP 的。

1、输入以下命令:

vi /etc/ipsec.conf

回车,输入 "dG" 删除所有内容,按 "i" 键,然后复制并粘贴以下内容:

 version 2.0 config setup     nat_traversal=yes     virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10     oe=off     protostack=netkey  conn %default     forceencaps=yes  conn L2TP-PSK-NAT     rightsubnet=vhost:%priv     also=L2TP-PSK-noNAT  conn L2TP-PSK-noNAT     authby=secret     pfs=no     auto=add     keyingtries=3     rekey=no     ikelifetime=8h     keylife=1h     type=transport     left=YOUR.VPS.IP.ADDRESS     leftprotoport=17/1701     right=%any     rightprotoport=17/%any 

记得将 YOUR.VPS.IP.ADDRESS 替换成自己 VPS 的 IP 地址,例如 178.18.17.30。替换方法如下:

按下"ESC" 键退出插入模式,将光标移到 "Y" 字母上,接着按下 "i" 键,输入 IP 地址,再按一下 "ESC" 键,并将光标移到 "YOUR.VPS.IP.ADDRESS" 上,然后按下 "x" 键把它们全部删除。或者你可以先把内容粘贴到记事本之类的编辑器上并修改好之后再复制粘贴到终端应用程序。

完了之后,输入 ":wq" 并回车保存所做的修改。

备注:

在 Vi 编辑模式下,你需要按 "i" 才能插入内容,完了之后,要按 "ESC" 退出插入模式和保存。

2、输入以下命令:

vi /etc/ipsec.secrets

回车,按 "i" 键并输入以下内容:

YOUR.VPS.IP.ADDRESS %any: PSK "YourSharedSecret"

例如:

178.18.17.30 %any: PSK "123456abcdef"

(小技巧:你需要按 Tab 键创建不同数值之间的空格。)

按 "ESC" 键,输入 ":wq",再回车保存。

3、一行一行地输入以下命令:

for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done

每一行都要回车。

4、输入以下命令:

service ipsec restart

回车。

备注:

输入 "ipsec verify",回车,如果一切正确,你将会看到如下图所示的结果:

Ipsec verify

如果不是,则需要重新检查之前的操作步骤,特别是 "ipsec.conf" 的内容。

IV、安装 L2TP

基于 IPSec 的 L2TP 就是 VPN 了。

1、输入以下命令:

cd ..

回车以便进入 VPS 根目录。

2、输入以下命令:

aptitude install xl2tpd

回车,输入 "y",再回车。

3、输入以下命令:

vi /etc/xl2tpd/xl2tpd.conf

回车,输入 "dG" 删除所有的内容,按下 "i" 键,然后粘贴以下内容:

[global]
; listen-addr = 192.168.1.98

[lns default]
ip range = 10.1.1.2-10.1.1.255
local ip = 10.1.1.1
require chap = yes
refuse pap = yes
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

按下 "ESC" 键,输入 ":wq",并回车保存。

V、创建 xl2tpd

这里假设你的 VPS 已经支持 PPP,如果没有,先输入 "aptitude install ppp" 命令安装 PPP。

1、输入以下命令:

vi /etc/ppp/options.xl2tpd

回车,按下 "i" 键,然后粘贴以下内容:

require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

按下 "ESC" 键,输入 ":wq",并回车保存。

备注:

你可以将 8.8.8.8 和 8.8.4.4 替换成 208.67.222.222 和 208.67.220.220。

2、输入以下命令:

vi /etc/ppp/chap-secrets

回车,按下 "i" 键,并输入如下内容:

username l2tpd password *

例如:

freenuts l2tpd 123456 *

记得用 "tab" 键输入空格,用 ":wq" 保存文件。

3、输入以下命令:

service xl2tpd restart

回车。

VI、IP 转发

这个步骤将使你的 VPN 连接整个互联网。

1、输入以下命令:

vi /etc/sysctl.conf

回车,找到 "#net.ipv4.ip_forward=1" 这一行,接着按 "x" 键删除 "#" 号,然后输入 ":wq" 保存。

2、使转发生效:

sysctl -p

回车,如果一切正常,你将会只看到以下结果:

3、输入以下命令:

iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE

回车之后,你就可以连接自己的 L2TP/IPSec VPN 翻墙了,但是如果你重启 VPS 的话,就需要重新执行一次 iptables 命令,并重启 ipsec,为了避免这些,你只需要输入以下命令:

vi /etc/rc.local

并在 "exit 0" 这一行之前粘贴以下内容就可以了:

for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE
/etc/init.d/ipsec restart

完了之后,你就可以尽情地享用自己搭建的 L2TP/IPSec VPN 了。

额外收获:

以下是根据上面的教程在 2host 的 Xen VPS 上搭建的 L2TP/IPSec VPN:

Server Address: 178.18.17.30
Account Name: freenuts
Password: 123456
Shared Secret: 123456abcdef

这个 VPN 帐号会免费大概半个月,你可以参考这篇文章 在电脑或者手机上试用。

相关博文:

  1. 如何在 VPS 上搭建 PPTP 简易教程
  2. GAppProxy 升级到 2.0 之后的使用方法
  3. 把A网站的一个页面转到B网站

没有评论:

发表评论