显示标签为“Network”的博文。显示所有博文
显示标签为“Network”的博文。显示所有博文

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
更新过程比较慢,需要二十分钟的过程。

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

2012年10月11日星期四

VMware中CRUX网络环境配置

VMware中CRUX网络环境配置


最近折腾CRUX花了不少时间,也走了不少弯路,把遇到的问题记录下来,希望能够给人以帮助。

在VMware中安装完成CRUX后,一般而言是上不了网的。这是因为我们没有配置好CRUX的网络环境,也可以说我们刚刚安装好的CRUX不能适应我们的VMware环境。因此需要通过修改网络配置文件来完成。

为了确保我们的网卡驱动没有问题,我们首先使用ifconfig命令检查一下网络接口,应该会有:

    # ifconfig
    eth0      Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
              inet addr:192.168.1.100   Bcast:192.168.1.255   Mask:255.255.255.0
     ......
    lo        Link encap:Local Loopback
     ......
这说明我们的网卡驱动已经成功安装了。如果没有eth0的选项,那么说明缺少网卡驱动,需要重新配置和编译CRUX内核以添加网卡驱动。网卡驱动的选项如下:
      Devices Drivers --->
        Network device support --->
          Ethernet (10 or 100Mbit) --->
            <*>AMD PCnet32 PCI SUPPORT

相应的步骤可以参考之前的blog

确认网卡驱动没有问题之后,就可以配置相应的设置了。首先要确保在VMware里:
      VM --> Settings... --> Network Adapter --> NAT:Used to share the host's IP 
是选中的,也就是说虚拟机通过NAT的方式连接到互联网。
首先停止网络服务:
      $ sh /etc/rc.d/net stop
然后,我们参照官网的配置教程来配置CRUX虚拟机中的/etc/rc.d/net文件:
      $ vi /etc/rc.d/net
修改为以下内容即可:
  #!/bin/sh
  #
  # /etc/rc.d/net: start/stop network
  #

  case $1 in
  start)
 # loopback
 /sbin/ip addr add 127.0.0.1/8 dev lo broadcast + scope host
 /sbin/ip link set lo up
 # ethernet
 /sbin/dhcpcd -t 10 -h $HOSTNAME eth0
 ;;
  stop)
 /usr/bin/killall -q /sbin/dhcpcd
 /sbin/ip link set lo down
 /sbin/ip addr del 127.0.0.1/8 dev lo
 ;;
  restart)
 $0 stop
 $0 start
 ;;
  *)
 echo "usage: $0 [start|stop|restart]"
 ;;
  esac

  # End of file
也就是说,以DHCP的方式连接到子网中。当然,你也可以按照教程配置为固定IP地址。
最后,执行start: 
      $ sh /etc/rc.d/net start 
以启动网络,等待DHCP服务启动完成,就可以连接到互联网了。你可以使用wget命令下载内容。
如果虚拟机仍然无法访问网络,则关闭VMware,尝试在系统服务中把VMware开头的所有服务重启一遍。
如果还不能够访问,可能问题出在其他地方,爱莫能助。