VPN客户端路由问题

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
vrise
帖子: 6
注册时间: 2009-03-24 17:24

VPN客户端路由问题

#1

帖子 vrise » 2009-03-30 12:07

VPN服务器和VPN客户端都是采用ubuntu,VPN客户端采用PPTP的方式已可以登陆至VPN服务器,同时也为这个ppp0连接分配了正确的IP(10.0.1.XXX),但在客户端去ping 网关(10.0.1.1)不通, 执行了sudo route add -net 10.0.1.0/24 dev ppp0, 为其配置了正确的路由, 也还是ping不通,请问这是为何?
补充一下:在VPN服务器可以ping通网关(10.0.1.1), 在Windows下的VPN客户端使用一切正常
头像
pcr
帖子: 30
注册时间: 2009-03-25 19:55
联系:

Re: VPN客户端路由问题

#2

帖子 pcr » 2009-03-30 12:55

1.在vpn网关上架设l2tp服务器:
(1) 安装xl2tpd (不建议安装l2tpd)
(2) 配置xl2tpd
主配置文件在/etc/xl2tpd/xl2tpd.conf
<1> 修改/etc/ppp/chap.secrets (l2tp里面会使用chap对用户的身份进行验证,就相当于拨号时输入的用户名密码的作用一样) 在该文件的最后一行输入 用户名 × 密码 (*表示用户可以使用任意的网段进行拨号,例如 test × “test123456”
<2>修改/etc/ppp/options.l2tp
文件如下:
ipcp-accept-local
ipcp-accept-remote
#ms-dns 202.96.209.6
#需要设置dns,就把上一行的#号去掉
ms-wins 192.168.0.187(window客户端的ip)
#noccp
auth
crtscts
idle 1800
mtu 1200
mru 1200
#mtu需要小于1500。也可以设成其它值,如1300
nodefaultroute
debug
lock
connect-delay 5000
logfile /var/log/l2tpd.log
proxyarp
<3>修改主配置文件/etc/xl2tpd/xl2tpd.conf (;表示注释)
文件如下:
[global]
listen-addr = 192.168.0.115 (#网关的eth0的ip,网关通过该网卡监听window客户端的连接
请求)
port=1701
auth file = /etc/ppp/chap-secrets
[lns default]
;exclusive = no
ip range = 192.168.2.128-192.168.2.254 (#window客户端连接上后给客户端的内网ip,现在
网关后的内网网段时192.168.2.0/254)
;ip range即l2tp拨号成功后分配给客户端的ip地址范围。
local ip = 192.168.0.115
;lac = 0.0.0.0-255.255.255.255
require chap = yes
refuse pap = yes
require authentication = yes
name = VPNGateway
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tp
length bit = yes
至此,l2tp就配置完成了。
2.在vpn网关上架设ipsec服务器
(1)安装openswan
安装之前,需要修改配置。在/etc/sysctl.conf文件中,找到
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
改为:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
然后执行sysctl -p使之生效。
安装就是老套了,只是要注意内核的版本,在2.6的内核上安装不需要再打其它的补丁,只需要直接安
装openswan的源代码就好了,在2.4的版本上安装由于内核没有对ipsec堆栈支持需要打openswan的
klips补丁和nat补丁,较麻烦。所以建议在2.6.9的内核版本上安装openswan。
(2) 配置openswan(就是配置认证方式,可以时rsa或者是x.509,这里采用x.509认证方式)
其主配置文件为/etc/ipsec.conf,/etc/ipsec.secrets(ipsec 也进行认证,l2tp的认证可
以省略了)
其配置目录在/etc/ipsec.d 里面是对x.509证书的配置。
/etc/ipsec.d/cacerts 存放X.509认证的根证书
/etc/ipsec.d/certs 存放X.509客户端证书
/etc/ipsec.d/private 存放X.509认证私钥
/etc/ipsec.d/crls 存放X.509证书撤消列表(只配置x.509证书认证,下面不需要)
/etc/ipsec.d/ocspcerts 存放X.500 OCSP证书
/etc/ipsec.d/passwd XAUTH密码文件
/etc/ipsec.d/policies 存放Opportunistic Encryption策略组
采用openssl产生ca证书,vpn网关上的证书,客户端的证书。
建立如下目录/root/ca/demoCA,demoCA存放ca存放ca证书和撤销列表。而网关证书与认证私钥,客
户端证书与私钥放在ca下。
现使用以下命令在/root/ca/demoCA下产生ca根证书cacert.pem和其私钥cakey.pem 和crl表
crl.pem,
openssl req –x509 –days 3650 –newkey rsa:1024 –keyout cakey.pem –out cacert.pem
进入demonca目录:
mkdir newcerts
touch index.txt
echo “01” > serial
openssl ca -gencrl -out crl.pem
然后在/root/ca/下使用以下命令产生网关的认证私钥vpngateway.key和证书vpngateway.cert
Openssl req –newkey rsa:1024 –keyout vpngateway.key –out vpngatewayreq.pem
Openssl ca –in vpngatereq.pem –days 365 –out vpngateway.cert –notext
然后将ca证书与网关证书与私钥放进网关上的openswan的相依目录下:
cp cacert.pem /etc/ipsec.d/cacerts
cp vpngateway.cert /etc/ipsec.d/certs
cp vpngateway.key /etc/ipsec.d/private
在做完了这些准备后,
以同样方法为window客户端生成证书与私钥。
开始写ipsec.conf了。
<1> 编辑vpn网关上的/etc/ipsec.secerts,在此文件最后加上一行
: RSA /etc/ipsec.d/private/vpngateway.key "读取此key的密码"
<2> 编辑vpn网关上的/etc/ipsec.conf
version 2.0

config setup
interfaces=%defaultroute
nat_traversal=yes
virtual_private=%v4:192.168.0.0/16,%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:!192.168.0.0/24

conn %default
compress=yes
authby=rsasig
disablearrivalcheck=no
leftrsasigkey=%cert
rightrsasigkey=%cert
keyingtries=1

conn l2tpx509
pfs=no
auto=add
left=192.168.0.115
leftcert=vpngateway.cert
leftprotoport=17/1701
right=%any
rightca=%same
rightprotoport=17/%any

include /etc/ipsec.d/examples/no_oe.conf
<3> 输入命令service ipsec restart重启ipsec服务。
输入命令 xl2tpd -D 以前台模式启动L2TPD服务。
vpn网关配置完毕。
接着配置window客户端来测试与vpn网关之间的隧道建立情况:


导出CA和Win端的证书:

在网关的/root/ca下,用以下命令将CA证书cacertpem的格式转化为p12文件:
openssl pkcs12 -export -in democA/cacert.pem -inkey demoCA/private/cakey.pem -out demoCA.p12
输入读取CA密钥的密码,然后再指定导出p12文件中的证书(为下一步将ca证书导入到window上的mmc需要该密码)需要的密码,再确认此密码即可。
然后导出win端的证书:
openssl pkcs12 -export -in purewinter.cert -inkey purewinter.key -out purewinter.p12
把这两个文件通过安全方式复制到Windows客户端。

导入证书:

运行mmc,添加删除管理单元->添加->证书->计算机账户->本地计算机->完成。
在证书:本地计算机里,选择个人->所有任务->导入,导入两个p12证书。把CA的证书由个人拖到“受信任的根证书颁发机构”里。

添加拨号连接:

网络连接->创建一个新连接->连接到我工作场所的网络->虚拟专用网络连接->随意输入一个名字->不拨初始连接->192.168.0.115->完成。
右键点此连接,选属性-网络-VPN类型选择为L2TP IPSec VPN,选定TCP/IP协议,属性-高级,去掉“在远程网络上使用默认网关”的勾。确定。双击此连接,输入用户名test,密码test123456进行拨号。如果顺利,就拨号成功了。(有些系统拨号时会发生789错误,这是因为这些系统在启动时默认启动了一个ipsec服务,所以你再要启动一个 ipsec时拒绝,这就需要修改注册表)。在VPNGateway的tcpdump可以看到加密信息在传输,L2TPD的输出中可以看到Call established with 192.168.0.187...等字样。此时在客户端ping网关发现可以ping通了,还发现客户端获得了一个vpn内网ip 192.168.2.128,在Jim上输入service httpd start启动Apache服务,然后在Win客户端的浏览器中输入http://192.168.2.10/,就可以看到Jim上架设的网站了。如果没有架设,可能看到Apache的默认页面,或者看到403禁止访问,Apache 2.x.x的信息。至此L2TP的IPSec VPN架设成功。

如果外网的window客户端想要连接网关,那么网关就需要安装配置在具有外网ip的计算机上。
my linux download server

http://linux.zanox-shop.com/
vrise
帖子: 6
注册时间: 2009-03-24 17:24

Re: VPN客户端路由问题

#3

帖子 vrise » 2009-03-30 14:26

问题是我已架好的VPN服务器已在使用, 在Windows上没有问题了, 所以VPN服务器肯定是OK的, 我想应该不需要重新再装了, 现在的问题是VPN客户端上的路由问题,VPN拨上去后, 认证也过了, IP地址也分配了, 就是路由不通, 去ping由VPN服务器分配的内网IP也是可以通的, 就是连不到VPN服务器以外的其它设备
rexdu
帖子: 1
注册时间: 2009-08-11 15:12

Re: VPN客户端路由问题

#4

帖子 rexdu » 2009-08-11 15:15

请问楼上的问题有得到解决了吗?我好像也遇到了同样的问题,而且我的情况好像跟你描述的一样。
vrise
帖子: 6
注册时间: 2009-03-24 17:24

Re: VPN客户端路由问题

#5

帖子 vrise » 2009-08-11 16:04

在Ubuntu9.04作为VPN客户端,是不存在这个现象的
fatbean
帖子: 14
注册时间: 2010-11-01 11:00

Re: VPN客户端路由问题

#6

帖子 fatbean » 2010-12-07 15:22

mark
oceanwave
帖子: 169
注册时间: 2007-04-02 21:40

Re: VPN客户端路由问题

#7

帖子 oceanwave » 2010-12-07 16:12

楼主, 把你客户端上的路由表放上来,大家才好分析啊.

如何获得路由表?
在命令行下输入route命令即可.
回复