安装VPN
VPN的安装过程主要参考了这一教程:
配置的VPN类型为L2TP/IPSec,之所以不使用更为简单的OpenVPN,是因为windows系统连接OpenVPN不太方便。
主要的安装步骤和配置文件按照教程中的设置没有问题。但在树莓派上,由于库文件有缺失,有几个步骤可以作为先导过程。
首先是库文件的更新,在终端中输入:
sudo apt-get install libpcap0.8-dev libpcap0.8 libcap-dev
等待完成库的更新。
然后安装lsof。openswan的运行脚本中使用了lsof命令,因此需要安装,输入:
sudo apt-get install lsof
下面给出VPN安装的具体步骤:
一、安装 IPSec
用以下命令安装 openswan:
sudo apt-get install openswan
二、用文字编辑器打开 /etc/ipsec.conf:
sudo leafpad /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
注意缩进和格式。
三、用文字编辑器打开 /etc/ipsec.secrets,改成这样:
YOUR.SERVER.IP.ADDRESS %any: PSK "YourSharedSecret"
(别忘了把「YOUR.SERVER.IP.ADDRESS」这部分换成你的服务器的 IP 地址,把「YourSharedSecret」部分换成随便一个字串,例如你喜欢的一句话,等等。)
四、运行以下命令:
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 即可。
如果看到Checking /bin/sh is not /bin/dash显示[Warning],没有关系,因为ubtuntu和debian系统已经使用dash来代替bash脚本执行器。虽然dash更快更方便,但在某些脚本兼容性上还是不太稳定。我们可以将ubuntu默认的脚本执行方式改回bash来执行,执行以下命令
sudo dpkg-reconfigure dash
六、重启 openswan:
sudo /etc/init.d/ipsec restart
七、安装 L2TP。常用的 L2TP 后台软件包是 xl2tpd,它和 openswan 是同一帮人写的。
运行以下命令:
sudo apt-get install xl2tpd
也可以从官方网站下载最新的安装包编译安装。
八、用文字编辑器打开 /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 apt-get install ppp
十、检查一下 /etc/ppp 目录里有没有 options.xl2tpd 这个文件,没有的话就建一个,文件内容如下:
require-mschap-v2 ms-dns 8.8.8.8 ms-dns 222.201.130.30 asyncmap 0 auth crtscts lock hide-password modem debug name l2tpd proxyarp lcp-echo-interval 30 lcp-echo-failure 4
注意 ms-dns 两行填的是谷歌的公共 DNS和教育网的DNS,请自行更换。
十一、现在可以添加一个 VPN 用户了。用文字编辑器打开 /etc/ppp/chap-secrets:
# user server password ip test l2tpd testpassword *
如果你之前设置过 PPTP VPN,chap-secrets 文件里可能已经有了其他用户的列表。你只要把 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 文件里写入如下语句:
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
这样启动时就会自动启动了。
然后在Windows客户端上新建连接到工作区的连接,再进行设置,如果可以连接到服务器,
则说明配置成功,如果出现789错误,说明需要修改注册表来允许通过NAT建立VPN。