红联Linux门户
Linux帮助

怎么还没人回答?麻烦各位进来帮帮忙呀!redflag6.0下如何搞定L2TP协议的VPN拨号?

发布时间:2008-06-30 17:55:08来源:红联作者:liangwei
我们学校用的是锐捷拨号上内网,VPN拨号上外网【其用的是L2TP协议】;原先我用ubuntu8.04版本的时候在网上找到了解决上内外网的方法,现在我想用redflag6.0系统,但是用上面找到的方法只能成功连接内网,无法连接外网,我是菜鸟,什么也不太懂,所以把原先在ubuntu8.04上能连接外网的方法发一下,小弟我诚心(6)m:b 希望各位大哥大姐帮帮忙,指出在redflag6.0下应该怎么改;刚想认真学习一下linux,想不到挫折竟然这么大!
ubuntu8.04下vpn上网方法:
在Linux使用L2TP协议的VPN拨号,可以使用xl2tpd,它的源代码可以在http://www.xelerance.com/software/xl2tpd/下载。
要使用xl2tpd,需要先编译,把它复制到/usr/local/bin,并用chmod 777 xl2tpd把它改成可执行的。
安装完xl2tpd之后修改以下几个文件:
/etc/xl2tpd/xl2tpd.conf
在/etc/xl2tpd/xl2tpd.conf中添加一个lac段。
引用内容:
[lac zstubras]
lns=61.130.10.217
redial=yes
redial timeout=15
max redials=5
require pap=yes
require chap=yes
require authentication=yes
name=这里改成你的用户名
ppp debug=no
pppoptfile=/etc/ppp/options.l2tpd
其中61.130.10.217是VPN拨号服务器,name是用户名,用网络中心给的就行。
使用require pap=yes开关是因为我用chap协议认证总是连接不上,而使用pap就行了。
/etc/ppp/options.l2tpd
接着修改/etc/ppp/options.l2tpd,这个文件里保存了拨号时的一些选项,如果没有这个文件可以新建一个,将文件内容改成以下内容:
引用内容:
noauth
proxyarp
defaultroute
/etc/ppp/pap-secrets
这里保存了使用pap协议认证时的用户名和密码,注意用户名需要与xl2tpd.conf中的name对应。在文件的最后加上一行:
引用内容:
username * password *
其中username和password是VPN拨号的用户名和密码。
/etc/ppp/chap-secrets
同上,这个是使用chap协议认证时所用的用户名和密码,保险起见,两个认证方式我们都加上用户名和密码。
引用内容:
username * password *
3. 配置拨号脚本
在配置完xl2tpd之后,还需要写一个拨号脚本,来控制xl2tpd进行VPN拨号。
将以下脚本存为/usr/local/sbin/bras-ctrl,可以使用命令sudo gedit /usr/local/sbin/bras-ctrl来创建。
如果直接复制过去保存后运行出现错误的话,那就可能因为换行符的问题,你需要自己把这些输入进去了。
注意:脚本中GATEWAY对应网关,route命令中的路由添加需要根据自己的网络环境来设置,还有拨号服务器的地址也要修改。
程序代码:[ 复制代码到剪贴板 ]
#!/bin/sh
case $1 in
route)
GATEWAY=10.9.232.1
{
route $2 -net 220.189.211.160 netmask 255.255.255.224 gw $GATEWAY
route $2 -net 218.108.82.160 netmask 255.255.255.240 gw $GATEWAY
route $2 -net 10.0.0.0 netmask 255.0.0.0 gw $GATEWAY
route $2 -net 172.16.0.0 netmask 255.240.0.0 gw $GATEWAY
route $2 -net 192.168.0.0 netmask 255.255.0.0 gw $GATEWAY
route $2 -net 210.32.24.0 netmask 255.255.252.0 gw $GATEWAY
route del default
if [ "$2"=="add" ]
then
# 此处host为拨号服务器地址
route add -host 61.130.10.217 eth0
fi
if [ "$2"=="del" ]
then
route add -net default gw $GATEWAY
fi
}&>/dev/null
modprobe ip_nat_ftp
;;
start)
mkdir /var/run/xl2tpd
echo '''' > /var/run/xl2tpd/l2tp-control
xl2tpd
sleep 5
echo ''c zstubras'' > /var/run/xl2tpd/l2tp-control
;;
stop)
echo ''d zstubras'' > /var/run/xl2tpd/l2tp-control
;;
*)
echo ''Please specify your action: route add/del | start | stop''
;;
esac
4. 使用bras-ctrl拨号
在使用bras-ctrl之前,同样需要root权限,你可以用sudo bras-ctrl来运行,也来可以先用sudo -i切换到root。那么我假定已经切换到root,首先添加路由:
引用内容:
bras-ctrl route add
接着发送一个连接zstubras的命令给xl2tpd:
引用内容:
bras-ctrl start
引用内容:
route add default dev ppp0【按着说明搞到这里,就出现了什么没有默认设备的错误】

[ 本帖最后由 liangwei 于 2008-7-2 23:06 编辑 ]
文章评论

共有 1 条评论

  1. homey123 于 2009-01-01 16:27:36发表:

    以下是我的连接调试过程:
    连接失败后,查看日志文件
    root@ubuntu:~# cat /var/log/syslog
    .............
    Jan 1 15:55:59 power xl2tpd[14977]: start_pppd: I'm running:
    Jan 1 15:55:59 power xl2tpd[14977]: "/usr/sbin/pppd"
    Jan 1 15:55:59 power xl2tpd[14977]: "passive"
    Jan 1 15:55:59 power xl2tpd[14977]: "-detach"
    Jan 1 15:55:59 power xl2tpd[14977]: ":"
    Jan 1 15:55:59 power xl2tpd[14977]: "auth"
    Jan 1 15:55:59 power xl2tpd[14977]: "require-pap"
    Jan 1 15:55:59 power xl2tpd[14977]: "require-chap"
    Jan 1 15:55:59 power xl2tpd[14977]: "name"
    Jan 1 15:55:59 power xl2tpd[14977]: "user111"
    Jan 1 15:55:59 power xl2tpd[14977]: "file"
    Jan 1 15:55:59 power xl2tpd[14977]: "/etc/ppp/options.xl2tpd"
    Jan 1 15:55:59 power xl2tpd[14977]: "/dev/pts/1"
    Jan 1 16:02:48 power xl2tpd[19006]: parse_config: line 13: data 'port = 1701' occurs with no context
    Jan 1 16:02:48 power xl2tpd[19006]: init: Unable to load config file


    将/etc/xl2tpd/xl2tpd.conf文件中的 [global] port = 1701注释掉后,再次连接
    root@ubuntu:~# cat /var/log/syslog
    .....................
    Jan 1 16:15:14 power xl2tpd[19455]: Connecting to host 17.66.195.116, port 1701
    Jan 1 16:15:14 power xl2tpd[19455]: Connection established to 17.66.195.116, 1701. Local: 12392, Remote: 27 (ref=0/0).
    Jan 1 16:15:14 power xl2tpd[19455]: Calling on tunnel 12392
    Jan 1 16:15:15 power xl2tpd[19455]: Call established with 17.66.195.116, Local: 47597, Remote: 1, Serial: 2 (ref=0/0)
    Jan 1 16:15:15 power xl2tpd[19455]: start_pppd: I'm running:
    Jan 1 16:15:15 power xl2tpd[19455]: "/usr/sbin/pppd"
    Jan 1 16:15:15 power xl2tpd[19455]: "passive"
    Jan 1 16:15:15 power xl2tpd[19455]: "-detach"
    Jan 1 16:15:15 power xl2tpd[19455]: ":"
    Jan 1 16:15:15 power xl2tpd[19455]: "refuse-pap"
    Jan 1 16:15:15 power xl2tpd[19455]: "auth"
    Jan 1 16:15:15 power xl2tpd[19455]: "require-chap"
    Jan 1 16:15:15 power xl2tpd[19455]: "name"
    Jan 1 16:15:15 power xl2tpd[19455]: "user111"
    Jan 1 16:15:15 power xl2tpd[19455]: "file"
    Jan 1 16:15:15 power xl2tpd[19455]: "/etc/ppp/options.xl2tpd"
    Jan 1 16:15:15 power xl2tpd[19455]: "/dev/pts/1"
    Jan 1 16:15:15 power pppd[20733]: pppd 2.4.4 started by root, uid 0
    Jan 1 16:15:15 power pppd[20733]: Using interface ppp0
    Jan 1 16:15:15 power pppd[20733]: Connect: ppp0 <--> /dev/pts/1
    Jan 1 16:15:18 power pppd[20733]: CHAP authentication succeeded: We welcome you.
    Jan 1 16:15:18 power pppd[20733]: CHAP authentication succeeded
    Jan 1 16:15:22 power pppd[20733]: not replacing existing default route via 10.10.10.1
    Jan 1 16:15:22 power pppd[20733]: Cannot determine ethernet address for proxy ARP
    Jan 1 16:15:22 power pppd[20733]: local IP address 192.168.15.1
    Jan 1 16:15:22 power pppd[20733]: remote IP address 192.168.1.7

    连接成功。
    root@power:~# ifconfig ppp0
    ppp0 Link encap:点对点协议
    inet 地址:192.168.15.1 点对点:192.168.1.7 掩码:255.255.255.255
    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 跃点数:1
    接收数据包:6 错误:0 丢弃:0 过载:0 帧数:0
    发送数据包:6 错误:0 丢弃:0 过载:0 载波:0
    碰撞:0 发送队列长度:3
    接收字节:108 (108.0 B) 发送字节:89 (89.0 B)

    root@power:~#


    你应该是还未连接成功,所以设置网关会报错误。

    需要注意的一个地方,如果在windows下使用l2tp连接VPN服务器时需要设置(缺省的Windows XP L2TP 传输策略不允许L2TP 传输不使用IPSec 加密)。
    并且需要改注册表增加ProhibitIpSec字段才能连接成功时。
    Linux下需要做同样的设置:
    增加配置文件 /etc/ppp/options.l2tpd
    root@power:~# cat /etc/ppp/options.l2tpd
    lock
    noauth
    proxyarp
    root@power:~#

    /etc/ppp/options.xl2tpd配置中增加
    [lac ....]
    ....
    pppoptfile=/etc/ppp/options.l2tpd

    [ 本帖最后由 homey123 于 2009-1-1 16:29 编辑 ]