2013年2月28日星期四

RaspberryPi配置L2TP VPN过程(2)

这是第二章,介绍L2TP VPN的搭建方法

安装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
按英文提示,选择no,就可以把dash切换成bash。再执行ipsec verify就不会出现WARNING的提示了。
六、重启 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。

RaspberryPi配置L2TP VPN过程(1)

全文分为两章,第一章主要介绍树莓派的安装和静态IP设置

前几天买的树莓派到货了,按捺不住兴奋的心情,立刻完成了系统的安装和VPN的搭建。具体的安装过程参考了数篇网络上的教程,将会在文章中一一列出。

首先是雷锋网的一篇上手报告:

硬件的安装就不多说了。我购买PI的同时还附加了一个透明的外壳,以及散热片3块。从后来使用时的温度状况来看,散热片是有必要的。

安装Raspbian系统
系统的安装过程和雷锋网的上手报告一样,由于树莓派没有板载的外部存储器,因此需要依靠SD卡作为存储介质。根据使用情况,建议使用4G或更大的SD卡。
然后下载以下文件:
Raspbain系统镜像:即debian(linux的一个发行版本)的raspberry pi版本。事实证明它和普通PC上使用的debian没有太大差异。
Win32DiskImager:用于把系统镜像写入SD卡的软件,和我们装机时常用的ghost原理类似,只不过磁盘分区变成了SD卡而已
根据文章中的方法对SD卡进行写入,注意设备不要选错了:

然后将SD卡插入树莓派的卡槽中,插上电源,树莓派便根据SD卡的引导进行启动了。
树莓派的启动速度很慢,通常需要1分钟以上,因此在启动过程遇到没有响应的情况,请耐心等待。(如果超过5分钟,那应该是有问题了...)
首次启动将出现系统初始配置的界面:

 
具体设置的细节依照教程中的设置即可,不多说了。我按照教程更改了2,4,5,6,7项,ssdh server和图形界面是默认打开的。由于网络环境的原因(静态IP),没有进行最后一项。配置完成后重启进入X-window界面。大家可以根据自己的需要选择是否安装中文语言和输入法。
别忘了设置root用户的密码,打开terminal,输入: 
    sudo passwd
然后设置密码即可。

静态IP的设置
在网络上查找了各种linux下静态IP设置的方法。最为常见的是修改 /etc/sysconfig/network-script/ifcfg-eth0 文件,在其中添加静态IP信息。但Raspbian中没有sysconfig文件夹(囧),此法不可行。
解决的办法是修改/etc/network/interfaces文件,打开LX terminal,输入:
    sudo vi /etc/network/interfaces
把其中的
    iface eth0 inet dhcp
改为
    iface eth0 inet static
并在其下加入以下信息:
    address YOUR.IP.ADD.RESS
    netmask YOUR.IP.NET.MASK
    gateway YOUR.IP.GATE.WAY
其中的大写英文字母改成对应的IP地址信息即可。
保存文件后重启树莓派。
重启之后先检查一下网络连通性:
    ping www.baidu.com
如果已经连通,更新一下系统:
    sudo apt-get update
更新过程比较慢,需要二十分钟的过程。

至此,树莓派系统安装配置完毕。

繁重的工作,闲适的生活,还有口水歌

原先定下的论文目标,眼看就要截止,碍于思维混乱,冲刺无望,多少有些失落。十月不得不说是遇到了低潮,内心彷徨却又要故作镇定,细细地安排着各种琐事,全然没有向前的动力。既然这样,到不如索性放任,让生活更加悠闲一些。
虽是周末,楼下的篮球场一早便有些热闹,此起彼伏的闷响,伴随着人群的嘈杂与喧闹。稍稍起身,望见阳台仍是一片光亮,便知时间尚早。再稍稍清醒了会儿,起身下床,八点三十。简单洗漱过后,便奔往实验室,打发一日的生活。
一罐混合奶,一个小蛋糕,早餐的内容并不丰富。打开豆瓣fm,来些轻松的音乐,更能让人平静。说到豆瓣电台,似乎我给红心的大多都是些口水歌。记得毕业前,曾有人装模做样地说着各种口水歌如何没有品位,自己如何讨厌之类的,当时我也只是呵呵了一下,既可以掩饰自己令人讨厌的品味,又能让对方虚伪的优雅之心获得满足,何乐而不为?
说到这里,又不禁想到前天好友邀请我同往观看昆曲的事。她是个文学迷,兼爱古代文化,于是戏曲什么的自然也不可救药地迷上了,每一见面便滔滔不绝。虽然我多少对于文学和文化感兴趣,但远未达到她那般境界,况且本人对于戏曲并不感冒,于是每当她谈到戏曲之类的,为了不扫她的好兴致,便呵呵过去了。不想敷衍也会带来困扰,只得找些理由搪塞,最后不得已还是说破了,恐怕之后得费一番功夫解释了吧。
昨天室友组团参加迎新晚会,节目便是演唱,不用说,也是口水歌一首,因为太过文艺清新的歌,大多数人是玩不来的。人们常说曲高和寡,可当今却总有伪雅之士愿意附和,正如我叶公好龙之举,不知究竟如何。记得初中时学过丰子恺的《山中喜雨》,其中乐以教和的道理甚是深刻,而如今却将音乐分得三六九等,不得不唏嘘一番。
或许,从明天开始,不再纠结这些或优雅或庸俗的事,率性而为。可是,明天又是哪一天呢?无解的问题总会越积越多,不如重新回到工作中,将这份闲适淡忘过去吧。