远程路由访问VPN

Remoteaccess VPN

VPN server 端

第一阶段

  1. 1.       策略
  2. Pre-share(不是单纯的key,而是group+key)
  3. DH GROUP2
  4. 2.      AM(3个包)密码的安全性由HASH来保障

第1.5阶段

  1. 1.      xauth(1.安全2.用户认证3.AAA
  2. 2.      mode-config(推送策略1.ip 2.DNS 3.tunnel split 4.dns split等等)

第2阶段QM (策略)

Remote access vpn的策略怎么样构建?

Remote access vpn第一阶段的认证策略我们使用pre-share key,当然我们可以使用证书来认证。远程访问VPN第一阶段内建的策略都是DHGROUP 2的,group 1是不行的。因为客户端内建的策略都是group 2的,所以这一点一定要注意。在站点到站点的VPN当中,如果我们选择了预共享密钥方式来验证的时候,我们只需敲上一个crypto isakmp key,然后写上对方的IP地址就可以了,通过一个单纯的KEY来验证对方。但是远程访问VPN中并没有通过一个key来验证对方,而是通过一个group+key两者的组合作为一个预共享密钥来验证的;为什么要有这样一个设计呢?因为在实际的应用环境会存在很多的部门,我们可以为每个部门创建一个GROUP,为每一个group创建一个key,我们可以基于group的不同,部门的不同推送不同的策略,做不同的认证方法。这就是远程访问VPN第一阶段的认证不使用单纯的key,而要使用group+key的原因。所以我们可以使用组的方法,把用户分开,基于不同的组做相应的策略。

远程访问vpn的预共享密钥认证方法的第一阶段采用的是积极模式(AM),只有3个包,而站点到站点的VPN第一阶段采用的是主模式(MM)共6个包,主模式的6个包中的第5,6个包是在加密的环境下进行的密钥的交换,但是积极模式只有3个包,密钥并没有采用加密方式,当然肯定不是明文传送的,密钥的安全性是有HASH来保障的。其实就是将密钥通过HASH做相应扰乱发送给对方的。当然这样的方式是不够安全的,因为他的安全性不够,所以提供了增强型的认证--1.5阶段,第一阶段的group+key认证完了之后,在做一个Xauth,<做一个用户名和密码的认证>。

做一次增强型的认证有以下好处:首先是会比以前更安全,因为1.5阶段是加密的,其次提供了一个用户的认证。再者,Xauth引入了AAA机制,我们可以通过AAA服务器而不是用本地来做用户名和密码的认证,这是xauth的作用。

在1.5阶段,还有一个重要的东西就是mode confige,它的作用就是为我们的客户推送策略,比如为客户端推送一个内网IP地址,这个是必须推送的策略,如果内网有dns服务器,同样可以推送DNS地址给我的客户,还有tunnel的分割技术。

最后就是QM阶段,第二阶段,跟site-to-site的QM是一样的,三个包的交互。

下面我们来看一下远程访问VPN的配置过程:

1                             

GW(config)#interface f0/0

GW(config-if)#ip add 10.0.0.1 255.255.255.0

GW(config-if)#no shutdown

GW(config-if)#exit

GW(config)#int f1/0

GW(config-if)#ip add 192.168.1.1 255.255.255.0

GW(config-if)#no shutdown

GW(config-if)#exit

GW(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.2

第一阶段策略

GW(config)#crypto isakmp policy 1

GW(config-isakmp)#encryption 3des

GW(config-isakmp)#group 2

GW(config-isakmp)#hash md5

GW(config-isakmp)#authentication pre-share

GW(config-isakmp)#exit

第一阶段group+key认证此阶段采用HASH算法保障key的安全,显然安全性不够。

GW(config)#crypto isakmp client configuration group vpngroup

GW(config-isakmp-group)#key cisco

GW(config-isakmp-group)#exit

因为第一阶段group+key的认证不够安全,所以引入xauth增强型认证,来认证用户名,密码。xauth特性需要引入AAA模式,这个阶段称之为1.5阶段,在1.5阶段的认证方式采用加密方法

启用AAA服务

GW(config)#aaa new-model

做xauth的认证策略名字叫baidu,客户端从本地(local<GW>)来拿用户名和密码

GW(config)#aaa authentication login baidu local

GW端指定的用户名为cisco 密码是ccnp

GW(config)#username cisco password ccnp

xauth认证成功后为客户端分配的IP地址池,地址池的名字是vpnpool ,地址段是123.1.1.100到123.1.1.200

 

GW(config)#ip local pool vpnpool 123.1.1.100 123.1.1.200

策略的授权需要在组中进行,如地址池,隧道分割,dns分割等等。

GW(config)#crypto isakmp client configuration group vpngroup

GW(config-isakmp-group)#pool vpnpool

通过网络访问方式在路由器本地实现策略的授权,策略的名字google

GW(config)#aaa authorization network google local

第二阶段,定义如何保护感兴趣流,创建传输集

GW(config)#crypto ipsec transform-set baiduset esp-3desesp-md5-hmac

GW(cfg-crypto-trans)#exit

因为远程访问VPN无法确定对端的ip地址,也就无从知道相应的感兴趣流,所以要创建动态MAP,在动态map中调用传输集

GW(config)#crypto dynamic-map dymap 1

GW(config-crypto-map)#set transform-set baiduset

GW(config-crypto-map)#reverse-route   //向网关注入反向路由。

GW(config-crypto-map)#exit

创建静态map,在静态MAP中调用动态map,

GW(config)#crypto map vpnmap 1 ipsec-isakmp dynamic dymap

在静态MAP中匹配认证策略,授权策略,向VPN客户端推送IP地址的方法是respond

GW(config)#crypto map vpnmapclient authentication list baidu

GW(config)#crypto map vpnmapisakmp authorization list google

GW(config)#crypto map vpnmap client configuration addressrespond

在VPN网关接口上调用静态map

GW(config)#int f0/0

GW(config-if)#crypto map vpnmap

INSIDE

INSIDE(config)#int f0/0

INSIDE(config-if)#ip add 192.168.1.2 255.255.255.0

INSIDE(config-if)#no shutdown

INSIDE(config-if)#exit

INSIDE(config)#no ip routing

INSIDE(config)#ip default-gateway 192.168.1.1

INSIDE(config)#exit

ISP

 

ISP(config)#int f0/0

ISP(config-if)#ip add 10.0.0.2 255.255.255.0

ISP(config-if)#no shutdown

ISP(config-if)#exit

ISP(config)#int f1/0

ISP(config-if)#ip add 12.1.1.1 255.255.255.0

ISP(config-if)#no shutdown

客户端验证

第一步:Group+key验证: 组名vpngroup密码:cisco

第二步:xauth 1.5阶段验证:用户名cisco,密码:ccnp

第三步:验证成功后给VPN客户端从VPN池中分配IP地址,获得了123.1.1.102

自动向网关注入一个反向路由,下一跳地址指向12.1.1.2

GW#show ip route

Gateway of last resort is 10.0.0.2 tonetwork 0.0.0.0

10.0.0.0/24 is subnetted, 1 subnets

C      10.0.0.0 is directly connected, FastEthernet0/0

123.0.0.0/32 is subnetted, 1 subnets

S       123.1.1.102 [1/0] via 12.1.1.2

C   192.168.1.0/24 is directly connected, FastEthernet1/0

S*  0.0.0.0/0 [1/0] via 10.0.0.2

此时VPN客户端的路由表中可以发现去往192.168.1.0网段是从123.1.1.102出去的路由条目。

查看客户端路由表使用route print 命令即可。

可以实现与内网inside主机的通信了。

在inside主机上启用HTTP服务,测试VPN

INSIE(config)#ip http server

INSIE(config)#ip http authentication local

INSIE(config)#username huarong privilege 15password ccnp

INSIE(config)#

vpn client 的状态

因为没有在Vpn网关上做隧道分离,所以默认所有的流量都要加密,即0.0.0.0-0.0.0.0的流量都走VPN通道

做隧道分离,任何VPN客户端访问192.168.1.0网段的主机的流量走vpn通道并加密,其余的不加密,正常访问。

GW(config)#access-list 102 permit ip 192.168.1.0 0.0.0.255any

GW(config)#crypto isakmp client configuration groupvpngroup

GW(config-isakmp-group)#acl 102

GW(config-isakmp-group)#exit

关于easy VPN反向路由注入的解释:

VPN网关向客户端推送完策略后,会注入反向路由,原因是pc访问inside主机时,网关肯定有inside主机的路由,流量是可以过去的,但是返回的包vpn网关没有办法发给pc,如果要让返回的包来到pc,必须要有路由,所以需要注入反向路由,会根据分配给PC的ip地址如123.1.1.102/32位的路由,下一跳指向pc的公网地址12.1.1.2.

关于easy VPN地址池是否可以分配与内网地址段相同的解释

其实分配同样网段的ip地址在不冲突的情况下也是可以的,因为路由器是最长匹配,反向路由是32位的,池是可以分配同一个网段,但IP地址不能冲突。

时间: 2024-08-10 16:07:06

远程路由访问VPN的相关文章

Windows server 2012 搭建VPN图文教程(四)客户端访问VPN测试

Windows server 2012 搭建VPN图文教程(一)安装VPN相关服务 Windows server 2012 搭建VPN图文教程(二)配置路由和远程访问服务 Windows server 2012 搭建VPN图文教程(三)配置VPN访问账户 Windows server 2012 搭建VPN图文教程(四)客户端访问VPN测试 Part IV 客户端访问VPN测试 本部分主要介绍如何通过客户端访问VPN的方法.实验客户端操作系统为windows 8,以下是客户端配置VPN的步骤: 打

XRDP+VNC远程桌面访问Linux系统

1.安装XRDP 使用rdp协议访问远程Linux桌面 一般情况下,如果需要登陆远程Linux系统,我们会使用ssh/telnet来完成,如果需要登陆到远程Linux系统的桌面环境,我们可能会使用VNC. VNC是大部分Linux发行版默认的基于RFB协议的远程桌面程序,但对于普通用户来说,VNC的用户体验并不好,比较慢,还需要安装客户端. Windows的远程桌面基于RDP协议,在Linux下,我们也是可以找到开源的rdpserver的,这就是xrdp. 下面,我来和大家介绍安装centos下

解决MySql本地能访问,远程不能访问的问题

本地能够连接mysql,为何远程连接不上mysql呢?这是因为默认安装的mysql,出于安全考虑,只能本地连接.如果您需要远程连接,这里就需要设置一下mysql的权限表.具体设置的步骤如下: 1.在MySql本机连接mysql. 2.执行以下mysql命令: use mysql                #打开mysql数据库 #将host设置为%表示任何ip都能连接mysql,当然您也可以将host指定为某个ip update user set host='%' where user='r

Linux 安装MongoDB 并设置防火墙,使用远程客户端访问

1. 下载 MongoDB 提供了 linux 各发行版本 64 位的安装包  下载地址:https://www.mongodb.com/download-center#community 2. 安装 1 tar -zxvf mongodb-linux-x86_64-3.0.6.tgz # 解压 2 3 mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb # 将解压包拷贝到指定目录 MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加

Windows通过远程桌面访问Ubuntu

关于Windows通过远程桌面访问Ubuntu 问题及目标 Window环境通过远程桌面访问Ubuntu Ubuntu机器端   1.  安装所需软件包 sudoapt-get install xrdp sudo apt-get install vnc4server tightvncserver 2.配置 进入系统->首选项->桌面共享进行如下设置. 执行以下命令(该命令的作用是由于安装了gnome桌面,ubuntu12.04中同时存在unity.GNOME多个桌面管理器,需要启动的时候指定一

花生壳+端口映射实现远程ssh访问内网linux主机

一.花生壳安装(安装前需要在花生壳网站注册获得一个免费域名,有了这个域名,后边才能在外网通过访问这个域名来实现ssh登陆内网linux主机) [[email protected] 桌面]# wget http://download.oray.com/peanuthull/linux/phddns-2.0.6.el6.x86_64.rpm --2014-10-27 20:11:30--  http://download.oray.com/peanuthull/linux/phddns-2.0.6.

关于Windows通过远程桌面访问Ubuntu

问题及目标 Window环境通过远程桌面访问Ubuntu Ubuntu机器端 1.  安装所需软件包 sudoapt-get install xrdp sudo apt-get install vnc4server tightvncserver 2.配置 进入系统->首选项->桌面共享进行如下设置. 执行以下命令(该命令的作用是由于安装了gnome桌面,ubuntu12.04中同时存在unity.GNOME多个桌面管理器,需要启动的时候指定一个,不然即使远程登录验证成功以后,也只是背景,其他什

VisualSVN Server安装后,TortoiseSVN远程无法访问版本库。

访问https://servername/svn/trunk无效,说神马名字有效,但是找不到数据神马的.网上有人说版本库没有设置有访问权限的用户.不对,我的user设置的妥妥的.在NetWork标签里查看自己的ServerName也没问题.用IP访问也不行.然后检查Certificate标签,发现是自己的CA证书不对,因为改过计算机名,证书的颁发者是之前的计算机名.VisualSVN Server自带创建证书功能,然后只需把新建的证书保存到就可以了. 开始-运行-certmgr.msc打开证书管

实现Sql server数据库的远程连接访问

在同一网络环境下,或者在可以访问的IP地址下,我们利用SQL数据库实现远程连接访问可以使用如下方法: 通过调用master.sys.sp_addlinkedserver创建访问连接 EXEC master.sys.sp_addlinkedserver @server = NULL, -- sysname     @srvproduct = N'', -- nvarchar(128)     @provider = N'', -- nvarchar(128)     @datasrc = N'',