周曙光:如何在 Debian / Ubuntu 服务器上架设PPTP / L2TP / IPSec VPN
作者:周曙光 来源: https://www.zuola.com/weblog/?p=1658 第一部分:如何用 Debian / Ubuntu 服务器上架设 PPTP VPN服务器 如果你有一台linux主机,通过 putty.exe 或苹果电脑的teminal用SSH登录到主机后要用文本编辑器,若是上传下载编辑好的配置文件就太麻烦了。 我先简单介绍一下VI编辑器的用法,学会VI了就不且上传下载编辑好的配置文件了: vi /etc/ilovezola.conf 这是进入编辑ilovezola.conf的模式,然后hjkl四个键是方向键,分别是左下上右,按字母x可删除一个字符。按a进入插入模式,hjkl就 不能当方向键用了。退出插入模式按ESC键,保存文件输入命令冒号加字母:w 退出输入命令:q 退出并保存就是 :wq 有了这些基础就可以安装PPTP VPN服务器了。下面绿色的字就是可以复制到命令行里执行的,蓝色的字是需要你对比或复制到文件中的,懒人办事效率高,复制吧,不会错的。 先登录你的主机: ssh root@fuckgfw.zuola.com vi /etc/apt/sources.list 然后删除所有deb前面的#号 ,你按照 这里 操作就行,我直接引用,这不算抄袭: 接着用下面的命令更新你的软件包数据库 apt-get update 现在我们可以正式安装VPN server了。这里我们选择pptp(vpn 协议的一种),因为简单,一条命令搞定。剩下的无非是一些配置。 apt-get install pptpd pptpd安装完成后,编辑这个文件, vi /etc/pptpd.conf 去掉下面两行的注释或者直接添加这两行(在文件的最后).这一步是配置ip地址的范围。 localip 192.168.0.1 remoteip 192.168.0.234-238,192.168.0.245 然后在编辑这个文件, vi /etc/ppp/chap-secrets 在这个文件中添加vpn用户,按照下面的格式,每个用户一行。 username pptpd password * fuck * gfw * zhoushuguang pptpd fuckgfw * 为了让你的用户连上VPN后能够正常地解析域名,我们需要手动设置DNS. vi /etc/ppp/options,找到ms-dns这一项,设置你的DNS.这里我推荐的是Google 最近发布的Public DNS,原因是因为好记。 ms-dns 8.8.8.8 ms-dns 8.8.4.4 vi /etc/sysctl.conf文件,找到”net.ipv4.ip_forward=1″这一行,去掉前面的注释。 net.ipv4.ip_forward=1 运行下面的命令让配置生效。 sysctl -p 重启pptpd服务 /etc/init.d/pptpd restart 最后开启iptables转发 /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE ok,安装完毕。 附:使用PPTP VPN的方法: 如何在 Windows XP 中配置虚拟专用网络 (VPN) 连接 http://support.microsoft.com/kb/314076/zh-cn How to configure a connection to a virtual private network (VPN) in Windows XP http://support.microsoft.com/kb/314076/en iOS:设置 VPN http://support.apple.com/kb/HT1424?viewlocale=zh_CN iOS: Setting up VPN http://support.apple.com/kb/HT1424?viewlocale=en_US Mac OS X 10.6 Help 建立一个到虚拟专用网络的连接 http://docs.info.apple.com/article.html?path=Mac/10.6/zh/9010.html 设定高级 VPN 选项 http://docs.info.apple.com/article.html?path=Mac/10.6/zh/11941.html Ubuntu下使用VPN http://wiki.ubuntu.org.cn/如何使用UbuntuVPN Installing personalVPN-PPTP on Android Mobile Phone http://wiki.witopia.net/wiki/Installing_personalVPN-PPTP_on_Android_Mobile_Phone 第二部分:如何用 Debian / Ubuntu 服务器安装成L2TP / IPSec VPN 服务器 Ubuntu 10.04 LTS(Lucid)自带的OpenSwan有NAT的BUG。10.10 openswan无此问题(但是10.10的xl2tpd有问题,不分配IP,需要手动指定,解决方案见下文,本文都是指使用Ubuntu 10.04 LTS)可以从OpenSWAN下载最新版本(2.6.24+)才可以。也可以使用非官方PPA源 sudo apt-get install python-software-properties sudo add-apt-repository ppa:openswan/ppa sudo apt-get update 然后查查看是否是已经跟更新到最新 apt-cache policy openswan openswan: Installed: 1:2.6.23+dfsg-1ubuntu1 Candidate: 1:2.6.31-1xelerance1 Version table: 1:2.6.31-1xelerance1 0 500 http://ppa.launchpad.net/openswan/ppa/ubuntu/ lucid/main Packages *** 1:2.6.23+dfsg-1ubuntu1 0 500 http://us.archive.ubuntu.com/ubuntu/ lucid/universe Packages 100 /var/lib/dpkg/status 可见源里面已经获得2.6.31+的版本 apt-get install openswan就可以可以开始配置了 安装的时候一律回车即可 vi /etc/ipsec.conf,改成这样: 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 oe=off protostack=netkey 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.SERVER.IP.ADDRESS leftprotoport=17/1701 right=%any rightprotoport=17/%any vi /etc/ipsec.secrets,改成这样: YOUR.SERVER.IP.ADDRESS %any: PSK “zhimakaimen” (别忘了把红色的「YOUR.SERVER.IP.ADDRESS」这部分换成你的服务器的 IP 地址,把「zhimakaimen」部分换成随便一个字串,例如你喜欢的一句话如 ilovemoney,等等。) 运行以下命令,这下有点复杂了,前面的知识不够用了,继续补课,先 vi run.sh 然后复制下面的内容到run.sh并保存 for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done 然后 ./run.sh 这样就执行上面的循环命令了。 检查一下 IPSec 能否正常工作: sudo ipsec verify 如果在结果中看到「Opportunistic Encryption Support」被禁用(disable)了,没关系,其他项 OK 即可。 重启 openswan: sudo /etc/init.d/ipsec restart 安装 L2TP。常用的 L2TP 后台软件包是 xl2tpd,它和 openswan 是同一帮人写的。 运行以下命令: sudo aptitude install xl2tpd vi /etc/xl2tpd/xl2tpd.conf,改成下面这样,或复制进去就好了 [global] ipsec saref = yes [lns default] ip range = 10.1.2.2-10.1.2.255 local ip = 10.1.2.1 ;require chap = yes refuse chap = yes refuse pap = yes require authentication = yes ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes 这里要注意的是 ip range 一项里的 IP 地址不能和你正在用的 IP 地址重合,也不可与网络上的其他 IP 地址冲突。你照抄就不会错了。 安装 ppp。这是用来管理 VPN 用户的。 sudo aptitude install ppp 检查一下 /etc/ppp 目录里有没有 options.xl2tpd 这个文件,没有的话就建一个 vi /etc/ppp/options.xl2tpd 文件内容如下,把下面的内容复制进来 : require-mschap-v2 ms-dns 208.67.222.222 ms-dns 208.67.220.220 asyncmap 0 auth crtscts lock hide-password modem debug name l2tpd proxyarp lcp-echo-interval 30 lcp-echo-failure 4 注意 ms-dns 两行我填的是 OpenDNS。如果你想用其他的 DNS 服务器(例如谷歌的公共 DNS 8.8.8.8 8.8.4.4 ),请自行更换。 现在可以添加一个 VPN 用户了。用文字编辑器打开chap-secrets 文件 vi /etc/ppp/chap-secrets # user server password ip test l2tpd testpassword * fuck * gfw * 如果你之前设置过 PPTP VPN,chap-secrets 文件里可能已经有了其他用户的列表,如上面那个密码为gfw的fuck用户,就既可登录PPTP VPN,也可以登录l2tp的VPN,因为他的server没有指定为l2tp,而是用星号代替了。你只要把 test l2tpd testpassword * 这样加到后面即可。记得要有空格。 重启 xl2tpd sudo /etc/init.d/xl2tpd restart 设置 iptables 的数据包转发,下面是两行命令哦: iptables –table nat –append POSTROUTING –jump MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward 因为某种原因,openswan 在服务器重启后无法正常自动,所以我们可以在 /etc/rc.local 文件里写入如下语句: vi /etc/rc.local iptables –table nat –append POSTROUTING –jump MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done /etc/init.d/ipsec restart 到这里,设置工作已经基本完成。你可以用 iPhone 或 iPad 试着连一下。记得在「Secret」中填入你在上述第三步里填的 zhimakaimen。 如果连接成功,上网也没问题的话,恭喜你,大功告成。我就是这么在linode的Ubuntu 10.04 LTS上搞定VPN的,我之前走了些弯路是因为openswan没安装到最新版,Apple4.us的文章提供的安装方法失败,还好有 另一篇文章 提供了安装openswan到最新版的方法。所以合并经验,让其他人少走弯路,可以节约学习的时间哦。 L2TP的VPN的使用方法: 苹果电脑上使用l2tp VPN http://support.apple.com/kb/HT1288?viewlocale=zh_CN 我参考了以下文献,综合了一下,写出以上修正版,由于 Apple4.us 保留一切权利,所以我等他们通知我删除这篇派生的文章吧,因为他们仍然保留让我派生的权利,也保留不让我基于他们的文章派生作品的权利。 在Linode VPS上安装pptp VPN http://blog.cuoluo.net/2009/12/install-pptp-vpn-in-linode-vps/ 如何在 Debian / Ubuntu 服务器上架设 L2TP / IPSec VPN https://apple4.us/2010/05/setting-up-l2tp-vpn-on-debian-ubuntu.html L2TP Over IPSec On Ubuntu(Debian,CentOS) With OpenSwan http://ihipop.info/2010/12/1906.html 敬请订阅中国数字时代中文版(http://chinadigitaltimes.net/chinese/feed),阅读最有价值的中文信息。下载TOR等翻墙软件,请访问Sesawe(http://fanqianggongju.info/)。需翻墙?请发电邮(最好用Gmail)到:CDTcaonima@gmail.com。GFW Blog订阅地址:http://feeds2.feedburner.com/chinagfwblog
阅读更多