在RHEL5中建立L2TP服务

  不知道是什么原因,公司的一个VPN设备出问题了,那天,VPN用户掉线频繁,而且网速很慢,用ping试了一下,延时很长,基本都在800到1000毫秒左右,而且丢包很严重,占到40%左右,分支机构的业务基本无法正常开展。本以为是线路出了问题,可找来ISP的维护人员,人家把网线插到笔记本上,一切正常,返回基本在40毫秒左右,连ping了1个小时,一个包都没丢,于是撂了句话:“我们的线路好着呢,是你们的设备有问题了”,于是拍拍屁股就走了。

  我们的VPN设备是一个巴掌大的小盒子,什么牌什么型号的我就不想说了,反正是基于l2tp的。现在出问题了,想找厂家的人来怕是远水救不了近火,没办法,在网上找了资料后,打算用Linux自己做一个L2TP的VPN服务器。

  先安装了RHEL5,然后到http://www.xelerance.com/software/xl2tpd/上下载了xl2tpd-1.1.11.tar.gz,解压后,进入该解压目录,然后编译、安装:

make

make install

  安装完毕后,修改相关的配置文件:

1、修改/etc/xl2tpd/xl2tpd.conf,内容如下:

[lns default]
ip range = 192.168.191.2-192.168.191.254
local ip = 192.168.191.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpvpnserver
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

2、修改/etc/ppp/options.xl2tpd,内容如下:

ipcp-accept-local
ipcp-accept-remote
noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000

3、修改/etc/ppp/chap-secrets,内容如下

myvpntest    *    myvpntest    *

4、编辑/etc/init.d/xl2tpd文件,内容如下:

#!/bin/sh
#
# xl2tpd   This shell script takes care of starting and stopping l2tpd.
#
# chkconfig: - 80 30
# description: Layer 2 Tunnelling Protocol Daemon (RFC 2661)
#
# processname: xl2tpd
# config: /etc/xl2tpd/xl2tpd.conf
# pidfile: /var/run/xl2tpd.pid

#Servicename
SERVICE=xl2tpd

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

if [ ${NETWORKING} = "no" ]
then
exit 0
fi

[ -x /usr/sbin/$SERVICE ] || exit 0

RETVAL=0

start() {
echo -n "Starting $SERVICE: "
if [ ! -d /var/run/xl2tpd ]
then
  mkdir /var/run/xl2tpd
fi
daemon $SERVICE
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SERVICE
echo ""
return $RETVAL
}

stop() {
echo -n "Stopping $SERVICE: "
killproc $SERVICE
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$SERVICE
return $RETVAL
}

restart() {
stop
start
}

# See how we were called.
case "$1" in
  start)
start
;;
  stop)
stop
;;
  status)
status $SERVICE
RETVAL=$?
;;
  restart|reload)
restart
;;
  condrestart)
[ -f /var/lock/subsys/$SERVICE ] && restart || :
;;
  *)
echo "Usage: $SERVICE {start|stop|status|restart|reload|condrestart}"
exit 1
esac

用chmod命令给xl2tpd文件赋予可执行权限。

将xl2tpd加入到系统服务中去:

chkconfig --add xl2tpd

用setup命令设置xl2tpd服务为开机自动启动。

至此,L2TP的VPN服务器配置完成。在Windows XP中建立一个VPN连接,IP输入这个服务器的IP地址,用户名myvpntest,密码myvpntest,连接,哈,上去了。

厂商来人了,技术人员连上小盒子捣鼓了一阵,然后说设备没有问题,但看到带宽已被占用完了,建议还是跟ISP联系。于是马上联系ISP,要求临时增加带宽,还好,ISP答应比较爽快。带宽增加后,靠,居然故障排除了,看来今天白忙了,刚装好的服务器只好搁置到一边了,等下次有机会,再试一下。