VPS搭建VPN笔记&在VPS(debian)上搭建L2TP笔记

2011年8月1日 | 分类: 翻墙相关 | 标签: , , , , , , , , ,

VPS搭建VPN笔记

昨天晚上答应了圈友,要将本次自己购买VPS搭建VPN的经过和细节写出来,供有同样爱好和同样需求的圈友参考,话既然说了,咱就不能食言!

但是要申明在先,写出来的东西没啥“自主产权”的成分,教材都是网上搜过来的,如果非说有的话,那也只是那些细节上面由于本人亲身经历过了,写出来算不得盗了别人的版。其他技术性的东西,圈友在阅读的时候只要别忘记前人的辛苦,我想,应该也不会有谁来追究版权的问题吧?

VPN,大家都知道,此乃圈友翻墙上基上推之必备良品(墙外人士可以飘过)!本人最早使用的VPN也是在推友送的免费午餐。一 直都在用它,开始感觉还不错,浏览个网页啥的都没有太大问题,上youtube看个视频啥的速度也还能接受,反正是免费的嘛,咱也没去计较那么多。可是慢 慢地那枚VPN的速度就越来越慢了,可能是上的人多了吧!后来干脆自己又去买了一枚一年的VPN专门用来翻墙!提起这事咱就气啊,这枚VPN是淘宝上买 的,卖家咱也不说是谁了,新买的这枚VPN白天速度还可以,到了晚上就不行了,甚至连都连不上去!把我气得啊,真想找这老板算账去,想想还是算了,估计淘 宝的店主也是受害着,现在卖VPN的鱼龙混杂、良莠不齐,也怪不得他!

这段时间上G+上了瘾,没速度不行啊,想想自己买个VPS搭建一个算了,速度自己掌控,以后还可以把独立博客挂上去,何乐而不为!反正现在VPS价格也不比VPN贵多少!这就是我购买VPS搭建VPN的想法,估计很多发烧友都有同我一样……

废话少说,言归正传!

  1. 购买VPS

购买VPS之前也在G+上征求了圈友们的意见,不知道再哪里买好,在网上搜了下评论,

也是各执一词,东说东的好,西说西的好,最后敲定了quickweb这家,注册!选套餐!结账…… NND 等到了绑定信用卡一步了,才发现自己的信用卡怎么也绑定不了paypal。提示是说该信用卡已经绑定了另外的账户,想来想去不知道自己的信用卡绑哪里去 了,一直都有在godaddy玩域名,也是用的这张信用卡,不知道是不是有关系——算了,不想了,找其他的吧!

后来搜到了这家 http://cp.onovps.com/page.aspx?c=referral&u=12234 ,服务器在美国凤凰城,中文版面,支持人民币付款,当时还有个30的套餐(现在貌似这款已经卖完了)——本来对国人的东西不太感冒,但想着反正自己买VPS主要也是用来搭建VPN,方便就行了吧!又是注册,选套餐,付款,搞定!

二,VPS系统

这步可是费了我几个小时的时间,不知道选啥系统好!本人是linux盲,多希望是windows系统啊!但是我买的套餐不支持windows!只有 centos 和 debian供选择。于是最先装了centos系统。

装好了,怎么连呢?说出来让大家见笑了,一开始我傻帽一样用本地windows的远程桌面去连,怎么也连不上!网上一查,原来 要SSH才行!后来听了圈友甲的意见,下载了一个 PUTTY,英文版的,虽然本人英文也是半拉子,但借助谷歌翻译总算把版面看懂了!其实也很简单:

  1. 填上地址;

  2. 点OPEN

两步就可以了,然后就是这样的界面了:

在login as:输入 root (root是linux默认具有管理员权限的用户)

在password后面输入密码,回车!如果密码没错的话就可以链接进去啦!

  1. 搭建VPN

  1. 先安装iptables

怎么安装呢?linux不是windows你双击就可以的,linux需要你输入命令

在~# 符号的后面输入 apt-get -y install iptables 回车即可安装

2、Debian自带了pptpd的软件包,直接安装,

apt-get install -y pptpd

3、安装nano(如果你能够熟练的使用vi,可以省略这一步)
apt-get install nano

4、编辑置文件 /etc/ppp/pptpd-options,内容如下:

nano /etc/ppp/pptpd-options 回车!

然后就相当于在windows中用记事本打开了某个文件,你可以看到很多的代码在里面,其中前面有#的,表示该行被注释起来 了,不会执行的代码!把下面的代码复制进去(不会复制挨个输入也可以)。其实细心的人会发现,下面的东东有好几句原文件里面都有,咱不懂linux,为了 不乱,先整个把下面的东东输进去,把原文件里的全都在前面加#注释起来!

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 8.8.8.8
ms-dns 8.8.4.4

然后就是保存这个文件了,一开始我也不会保存,后来听了基友的指点,CTRL+X

即可!

然后出现一个对话框,大概就问你要不要保存修改过的文件,你输入 Y 回车即可!

然后再回车,就可以回到 ~# 这个让你输入命令的界面了!

5、编辑配置文件 /etc/pptpd.conf,方法如下:

输入 nano /etc/pptpd.conf 回车!

option /etc/ppp/pptpd-options
logwtmp
localip 192.168.92.1
remoteip 192.168.92.11-15

配置的方法和保存的方法参见第四条!

6、编辑配置文件 /etc/ppp/chap-secrets

输入 nano /etc/ppp/chap-secrets 回车!你就可以看到下面的界面。被我涂掉的分别是我的账户名称和设置的密码。

账户名称和密码数字字母都可以,后面的星号表示IP,即任何IP都可以连接!
配置好以后,ctrl+x保存!方法见第四条……

7、修改配置文件/etc/sysctl.conf,启用内容外发,方法如下:

输入 nano /etc/sysctl.conf 回车!

然后找到  #net.ipv4.ip_forward = 1这条,把前面的#去掉,即去掉注释!
然后是保存,参见第四条!

8、编辑/etc/rc.local,配置iptables,把下面内容写到 EXIT 0 前面,否则VPN能连接上但访问不了其他网页。

输入 nano /etc/rc.local 回车!

然后在EXIT 0 前面输入下面的代码

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.92.0/24 -j MASQUERADE
iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356

9、最后,reboot一下VPS,OK,VPN搭建成功。
四、总结

本人是linux盲,上面的方法都是参考和总结了多篇文章给到的方法,谢谢文章的原作者!在具体操作的时候,碰到了很多小细节不知道怎么办的时候,比如,不知道使用什么SSH工具、不知道怎么保存文件、不知道怎么退出等等!多谢圈友们的指点迷津!

这篇文章不能算是教程,只能算是本人亲身实践的一次书面总结,希望能给有同样爱好的圈友们带去一点点启发就OK了!

分享是快乐的!希望大家都能在网络里面找到分享的快乐……

在VPS(debian)上搭建L2TP笔记

因为头脑发热购买了好几个VPS,这段日子一直在向G+圈友提供免费VPN的服务。反正是自己搭建的,不送出去每个月几百G的流量也浪费掉了!

不过最近有些手机用户的圈友说PPTP在手机上无法连接,由于本人只在电脑上测试过,无法得知手机上的使用状况!接受圈友的建议另外在VPS上搭建了L2TP。现在讲具体的操作过程记录下来,供有同样爱好的朋友参考,也供自己今后不需要再到处查找资料之备!

第一步:如果你的debian系统是新安装的,请升级你的系统

# apt-get update

# apt-get upgrade

这一步很重要,否则可能期间会产生不可预知的错误!

如果你的debian没有安装sudo,你还需要执行以下的命令

# apt-get install sudo

如果你对 vi 命令掌握不好,建议安装nano

# apt-get install nano

第二步:安装 IPSec

IPSec 会对 IP 数据包进行加密和验证。这意味着你的电脑 / 移动设备与服务器之间传输的数据无法被解密、也不能被伪造。可以用 openswan 来跑 IPSec。

# sudo aptitude install openswan

第三步:用文字编辑器打开 /etc/ipsec.conf

# nano /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
按ctrl+x键保存数据

第四步:修改 /etc/ipsec.secrets文件

# nano /etc/ipsec.secrets
修改成如下内容:
YOUR.SERVER.IP.ADDRESS %any: PSK “YourSharedSecret”
注意把your.server.ip.address 替换成你的服务器的IP;把yoursharesecret替换成你自己设定的公共密匙!
按ctrl+x键保存数据

第五步:运行以下的命令

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

第六步:检查一下 IPSec 能否正常工作

# sudo ipsec verify
结果中你会看到「Opportunistic Encryption Support」被禁用了,其他项 OK 就代表检测通过了!

第七步:重启 openswan

# sudo /etc/init.d/ipsec restart

第八步:安装 L2TP(常用的 L2TP 后台软件包是 xl2tpd

# sudo aptitude install xl2tpd

第九步:修改/etc/xl2tpd/xl2tpd.conf 文件

# nano /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
按ctrl+x键保存数据

第十步:安装 ppp (这是用来管理 VPN 用户的)

# apt-get install ppp

第十一步:检查一下 /etc/ppp 看下ppp目录下面有没有options.xl2tpd这个文件

# ls /etc/ppp
如果没有options.xl2tpd 这个文件,建一个
# nano /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),请自行更换。
按ctrl+x键保存数据

第十二步:添加一个VPN 用户。用文字编辑器打开 /etc/ppp/chap-secrets

# nano /etc/ppp/chap-secrets
打开文件之后你会看到如下代码
# user server password ip
这段代码是被#注释起来了的,意思就是按着这个顺序设置账号的相关信息.
user是账户名称;server是l2tpd;password是设置你想要的密码;ip可以设置成*,表示任何IP都可以连接。
设置完成后保存退出

第十三步:重启 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 文件

# nano /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
保存退出!

到这里一切都OK了,我在电脑上试了下,连接没有任何问题!又在G+里面找了几位圈友在手机上试了下,也都反映可以连接!你也试试吧!

 

关于linux搭建L2TP的修正方案

上个星期在圈友们的要求下,用VPS搭建了一枚供手机链接使用的VPN(L2TP)。因为当时参与测试的网友数量比较少,而本人的手机又不支持VPN网路,只是在电脑上测试成功了!

 

大面积发放之后,很多网友反映手机上无法连接,经过一天的摸索和修正,今天才是真正把这枚用在手机上的VPN配置出来了!

为了方便今后查找资料,特地把今天用到的资料保存下来,把过程也记录下来……

(L2TP的理论介绍: L2TP/IPSec 是指 L2TP over IPSec,这种 VPN 分两个部分,IPSec 和 L2TP。IPSec 使用预共享密钥(PSK)进行加密和验证,L2TP 负责封包,PPP 负责具体的用户验证。)

我们今天是使用 Openswan 来实现 IPSec。同样,今天我们还是在Debian系统下面来实现这个功能!
第一步: 安装编译工具
初次编译程序,您需要安装一些编译所必须的包。一次运行:
# apt-getinstall build-essential
请注意,如果您编译过其它软件,您很可能已经装过这个包了,不必重复安装。
第二步:安装一些 Openswan 所依赖的包:
# apt-get install libgmp3-dev gawk flex bison
第三步:下载、解压缩、编译并安装 Openswan 2.6.27
# wget http://www.openswan.org/download/openswan-2.6.27.tar.gz
第四步:解压下载的openswan
# tar xzvf openswan-2.6.27.tar.gz
第五步:切入 openswan-2.6.27/ 目录:
# cd openswan-2.6.27/
第六步:编译程序
# make programs
第七步:安装程序
# make install
第八步: 编辑 IPSec 配置文件 /etc/ipsec.conf
# nano /etc/ipsec.conf
找到 protostack 一行,将其值改为 netkey使之变成protostack=netkey
然后将下面的代码复制粘贴到文件的最后面
conn %default
        forceencaps=yes
conn L2TP-PSK-NAT
        rightsubnet=vhost:%no,%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=您服务器的公网IPv4地址
        leftprotoport=17/1701
        right=%any
        rightprotoport=17/%any
保存退出
第九步:IPSec 部分快完成了,现在需要配置 PSK 预共享密钥,用编辑器打开(没有就创建) /etc/ipsec.secrets 文件。
# nano /etc/ipsec.secrets
在文件里面输入下面的内容
您服务器的公网IPv4地址 %any: PSK “您的预共享密钥”
第十步:对系统的网络策略进行一些调整,请按顺序输入下面的代码
# for each in /proc/sys/net/ipv4/conf/*
# do
# > echo 0 > $each/accept_redirects
# > echo 0 > $each/send_redirects
# > done
同时,将上面这段代码完整地复制一次,加入到 /etc/rc.local 中,使其在每次系统启动时都生效。
# nano /etc/rc.local
将前面复制的代码粘贴到exit 0 之前的行
保存退出
第十一步:重启一次 IPSec 服务
# service ipsec restart
第十二步:运行下面的命令
# cat /var/log/auth.log | grep pluto
查看最后一行是否包含类似 IPsec SA established transport mode
的行。如果有,则说明一切OK!(如果没有请运行 ipsec verify 查看发生了何种问题)
第十三步:安装 xl2tpd
# apt-get install xl2tpd
第十三步:编辑 L2TP 配置文件
# nano /etc/xl2tpd/xl2tpd.conf
将文件里面没有注释的部分替换成下面的代码
[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
保存退出。
第十四步:安装 ppp
# apt-get install ppp
第十五步:从 xl2tpd 文档中复制一个配置文件样例到我们的配置文件目录:
# cp /usr/share/doc/xl2tpd/examples/ppp-options.xl2tpd /etc/ppp/options.xl2tpd
第十六步:编辑复制过来的 /etc/ppp/options.xl2tpd文件
# nano /etc/ppp/options.xl2tpd
删除两行 ms-wins开头的代码,将 ms-dns项调整为 Google Public DNS:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
其它的都保持原状,然后保存退出!
第十七步:在 /etc/ppp/chap-secrets文件中添加账户
# nano /etc/ppp/chap-secrets
打开文件后你会看到下面的东东
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
你要做的就是在下面按顺序输入你要设置的用户名、服务器设置为星号、密码、IP地址也设置为星号,就像下面的格式一样
用户名           *       “密码”                   *
userA           *       “password”              *
保存退出!
第十八步:重启 xl2tpd服务
# service xl2tpd restart
(到了这里IPSec、L2TP、PPP 都配置好了。您可以测试连接,xl2tpd 的日志文件应该包含在 /var/log/daemon.log 中。这时虽然可以连接上 VPN,但是只能访问内网。需要说明的是,VPN 的功能就是这些。至于我们所说的“上网”,那就是下面数据转发的事情了,和 VPN 已经无关了。)
第十九步:启用 net.ipv4.ip_forward,具体方法是:
# nano /etc/sysctl.conf
找到 net.ipv4.ip_forward 一行,将 #删除掉取消注释,让它变成下面的样子
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
保存退出!
第二十步:运行IPV4转发
# sysctl -p
第二十一步:我们使用发行版中通常包含了的 iptables 来配置更具体的转发。为避免繁琐的 iptables “永久”规则设定,我们让服务器每次启动时都设置一次,还需要用到 /etc/rc.local
# nano /etc/rc.local
将下面内容复制进来,复制之前这里应该已经有 5 行我们之前添加的代码,现在可以将下面这行添加在它的上面或下面(不要将其加在 5 行中间)
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE
(这将应用我们刚刚设置的子网 10.1.1.0/24 的数据包可以从 eth0 接口被转发。)
第二十二步:重启服务器(或在终端运行一次上述 iptables 命令,即可令转发立即生效。)
#  reboot
我的L2TP到这里就可以在手机上连接上网了!边操作边学习,其乐融融!当网友用我分享给他们的帐号能连接上网的时候,这个消息真的让我有无比的幸福和成就感……

原文http://www.viful.com/index.php/vps-set-up-vpn-notes/

http://www.viful.com/index.php/in-the-vps-debian-build-on-the-l2tp-notes/

目前还没有任何评论.