远程访问企业局域网.docx
《远程访问企业局域网.docx》由会员分享,可在线阅读,更多相关《远程访问企业局域网.docx(17页珍藏版)》请在冰豆网上搜索。
远程访问企业局域网
远程访问企业局域网
配置AAA客户端
首先我们做好软硬件准备工作。
要实现SSLVPN,据称需要思科IOS124(6)T或更高版本。
笔者的思科3640路由器使用的IOS版本是C3640-jk9s-mz.124-8.bin,容量达到27MB。
另外,准备好思科ACS软件,三种形式的VPN用户认证、授权、记账,AAA服务通过统一的用户数据库即思科ACS软件来实现。
硬件方面,将Flash闪存增加到32MB,以容纳27MB大小的IOS,内存增加到了128MB。
加解密可以是IOS纯软件的方式,也可以增加3DES加解密硬件加速模块NM-VPN/MP。
设备连接说明
笔者的思科3640路由器位于内网,通过防火墙的反向映射,将需要用到的端口映射到外网,并设定思科3640外网口的地址是10.136.32.65/28,内网口的地址是10.136.32.183/26。
连接的逻辑图如图1。
VPN实现的共有基础设施AAA配置方法
在思科3640路由器中实现VPN,需要启用AAA。
LNTU3640路由器本身也能实现AAA服务,但是提供的功能非常有限,笔者采用思科ACS服务软件实现VPN用户接入的AAA服务即认证、授权和记账。
三种VPN技术形式的用户认证,均采用同一个ACS用户账户数据库。
思科ACS同时支持Radius和TACACS+协议实现AAA服务,AAA的实现原理图如图2。
TACSCS+协议是思科的私有协议,Radius是一种完全开放的协议,每个厂家都有各自不同的实现方法,所以对不同的接入服务器,还必须进行协议的定制。
在ACS中已经为多种设备定制了Radius协议,如Radius(CiscoIOS/PIX),Radius(Juniper)和Radius(Microsoft)等。
笔者通过实践发现,L2TPVPN的用户授权需要采用TACACS+协议,只有这个协议提供了设置选项。
而IPSee记账需要用Radius协议才能搜集到记账信息。
所以,笔者同时采用了这两个协议。
L2TPVPN的用户认证和授权采用TACACS+协议,其他的AAA服务全部采用Radius协议。
思科3640路由器是AAA客户端,思科ACS是AAA服务器,两者都必须进行配置才能进行通讯,提供用户接入请求的服务。
AAA服务在3640路由器的定义配置清单与注解
aaanew-model//启用3640的AAA功能
aaaauthenticationlogindefaultgroupradiuslocal//登录认证默认采用Radius,如果Radius无效,则采用本地认证
aaaauthenticationloginconnone//路由器本身的CON控制口不使用AAA
aaaauthenticationloginIPSee_usergroupradiuslocal//IPSee用户IPSee_User认证采用Radius,如果Radius无效,则采用本地认证。
aaaauthenticationloginVTY_userlocal//Telnet、SSH用户VTY_User认证采用本地认证
aaaauthenticationpppde-faultgrouptacacs+local//L2TP用户缺省采用tacacs+无效,则采用本地认证
aaaauthorizationnetworkIPSEC_userlocal//IPSee用户IPSee_user授权采用本地授权。
aaaauthorizationnetworkppp_aigrip[tacacs+local//L2TP用户ppp_au授权采用tacacs+,如果tacacs+无效,则采用本地授权
aaaaccountingnetworkdefaultstart-stopgroupradius
记账缺省设置为开始和结束,并采用Radius。
aaaaccountingnetworkppp_austart-stopgroupradius
L2TP用户ppp_au记账设置为开始和结束,并采用Radius。
AaaaccountingnetworkIPSec_userstart-stopgroupradius//IPSee记账用户IPSee_User设置为开始和结束,并采用Radius。
Enablesecret******//配置使能模式密码
Usernameciscoprivilege15secret******//定义本地数据库用户名Cisco和密码
tacacs-sercerhost10.136.32.249key******//定义ACS服务器地址及TACACS+和密钥
tacacs-serverdirected-request
radius-serverhost10.136.32.249auth-port1645acct-port1646key******//定义ACS服务器地址及Radius和密钥
!
Linecon0//定义路由器的串口
Loginauthenticationcon
串口登录认证采用CON定义的方法。
line97126
lineaux0
linevty04//定义虚拟接口
exec-timeout400//设置40分钟后超时
pricilegelevel15//直接进入使能模式
loginauthenticationVTY_user//登录认证采用VTY_User定义的方法
transportinputtelnetssh//允许用Telne或SSH方式进入路由器
!
以上的IPSec_User和ppp_au定义,将在以下3640配置VPN中使用到。
配置AAA服务器
AAA服务器端的安装配置正确配置与否,直接影响着VPN系统的实现。
首先VPN用户接入AAA客户端即3640路由器,再由3640路由器与ACS服务器通过Radius或TACACS+协议实现AAA服务即认证、授权和记账。
软件安装
笔者的ACS版本是3.3.3.11,系统要求的操作系统是Windows2000,笔者安装在Windows2000中文版上。
ACS安装时,需要确认是否已经满足这些要求:
终端用户,这里是VPN客户端可以连通AAA客户端,这里是3640路由器;安装ACS软件的机器即AAA服务器能连通AAA客户端,笔者环境AAA客户端是3640路由器;AAA客户端如果是运行思科IOS的设备,则需要IOS11.1版本以上;安装ACS软件的机器需要IE6SP1版或Netscape7.02版。
这些选项必须全部选出中,才能进行下一步的安装。
其实,我们只要满足最后一个条件,其余的三个条件如果不具备,可以先选取上,以进行下一步的安装。
(如图3)。
选择两次“Next”后,需要选择用户认证采用何种数据库,第一种选择是仅使用ACS自身的账号数据库,第二种选择是同时选择ACS和Windows账号数据库,笔者选择第一种。
如果选择第二种,则还有一个选项“GrantDialinPermissionToUser”,选取中这个选项的意思是,采用Windows账号数据库用户账号中的“拨入”属性控制用户的拨入权限。
单击“Next”,开始安装。
在下一个安装页面,是选择用户账号高级属性,这里可以不用选取任何项,在安装后再配置。
笔者选择“MaxSessions”,即使用同一用户账号登录的次数设置(如图4)。
接下来连续点击“Next”,完成安装。
创建管理员账号(可选)
ACS管理是通过网页方式进行的,管理入口的端口号是2002,进入管理页面后,端口会随机改变。
本地管理的地址是http:
//127.0.0.1:
2002 ,可以直接打开桌面上系统自动创建的网页快捷键。
这个Web服务是ACS自带的。
如果需要远程登录管理,则需要首先创建一个管理账号。
在ACS本地机上,打开ACS管理界面,选择“AdministrationControl”,点击“AddAd-ministrator”,可以对管理员账号进行权限分配,也可以赋予所有的权限“Grantall”,或收回所有权限“Revokeall”,
定义ACS服务器的AAA客户端
在管理页面里选择“NetworkConfiguration”,单击“AddEntry”,取一个任意的名称,填入AAA客户端的IP地址,这里是3640路由器内网口的地址,填入“key”值,这个值必须和3640路由器的定义完全一样。
由于笔者同时要用到Radius和TACACS+服务,所以要创建两个AAA客户端,“AuthenticationUsing”分别要选择如图5所示的类型。
账号高级属性激活
完成以上配置后,直接创建账号,就可用于IPSeeVPN和SSLVPN的登录。
要使账号能用于L2TPVPN的登录,必须激活一些账号高级属性选项,ACS用户账号属性缺省没有这些选项。
如图6,选择“InterfaceConfiguration”。
在没有配置图5的AAA客户端时,图6中应该只有“UserDataConfiguration”和“AdvancedOptions”两项。
配置了AAA客户端后,才会出现如图6的TACACS+和Radius配置选项。
单击“AdvancedOptions”,进入设置页面后,勾选“Per-userTACACS+/RadiusAttributes”.选择此项使TACACS+和Radius配置选项在单个的用户账号属性里可见,因为缺省情况下,TACACS+和Radius配置选项只对账号组Group有效。
单击“Submit”使设置生效,回到上图6。
单击“TACACS+(CiscoIOS)”,可以看到分别有“User”和“Group”可选“PPPIP”、“PPPMultilink”、“PPPVPDN”和“PPPLCP”选项,这些选项对用户和组都有效。
这样,L2TPVPN的拨入授权可以在用户或组里控制。
创建用户账号
单击“UserSetup”,在“User”项里填入账号名称,单击“Add/Edit”,进入账号授权页面。
可以设置的选项非常多,主要是“UserSetup”、“AdvancedSetting”和“TACACS+Settings”。
当然,有些选项可以在组里事先定义,然后用户账号按组的设置方式定义。
1.“UserSetup”设置
这里包括设置密码,指定账号组,缺省是“DefaultGroup”组;指定获得IP地址的方式。
笔者指定的IP地址获得方式是通过3640路由器里的地址池获得,此方式只对L2TPVPN有效。
VPNippool已经在3640里定义。
2.“AdvancedSetting”设置
此选项包括最大的会话数,即同一账号可以登录的次数;账号过期的方式。
笔者设定此账号同时只能登录一次。
3.“TACACS+Settings”设置
此选项只对L2TPVPN起作用。
勾选如图7所示选项,授权账号具有L2TP的拨入权限。
认证日志及记账输出设置
单击“SystemConfiguration”,进入设置选项页面。
其中“LocalPasswordManagement”选项可以定义密码规则。
记账输出设置选择“Logging”,进入如图8所示页面,选择前三项。
单击“CSVFailedAttempts”,设置登录失败的日志。
选择“Message-Type”、“User-Name”、“Group-Name”、“Caller-ID”、“Authen-Code”。
同样的方法,单击“CSVPassedAuthentications”,设置认证的日志选项。
选择“RealName”、“User-Name”、“Caller-ID”、“NAS-Port”。
单击“CSVRADIUSAccounting”,设置记账的输出选项。
选择“User-Name”、“RealName”、“Framed-IP-Address”、“Acct-Session-Time”、“Acct-Input-Octets”、“Acct-Output-Octets”、“Tunnel-Client-Auth-ID”、“Tunnel-Client-Endpoint”、“Framed-Protocol ”、“Tunnel-Type”、“Tunnel-Assignment-ID”、“Tunnel-Server-Auth-ID”。
日志查看方法
在图9中单击“ReportandActivity”,选择“RadiusAccounting”,可以查看用户何时登录、何时注销、在线时长、接收和发送的字节等,选择“PassedAuthenticationg”,可以查看用户认证通过的时间,客户端的IP地址等,选择“FailedAttempts”可以查看登录失败的信息,失败的原因等。
如图10是记账日志“RadiusAccounting”的一个例子。
“Acct-Session-Time”表示在线时长,“Acct-Input-Octets” 表示接收字节数,“Acct-Output-Octets”表示发送字节数。
用户密码修改网页的创建
ACS安装光盘里有一个另外的辅助应用程序,称为“UserChangeablePassword”,安装此应用程序,可以创建用户密码修改的Web页面。
安装之前必须先安装IIS服务。
此应用程序可以和ACS服务安装在同一台服务器上,也可以分开安装在不同的服务器上,笔者采用了前者。
如图11所示,与安装ACS类似需要勾选以下条件才能进行下一步的安装:
ACS已经运行并且可达。
安装“UserChangeablePassword”的机器IP必须在ACS服务器里作为AAA服务器定义。
笔者是安装在同一台机器上,所以不需要重复定义,因为安装ACS后,系统会自动将ACS服务器本地IP作为AAA服务器定义。
安装此应用的机器必须安装并启用Web服务,可以选择启用SSL。
此应用安装的一个虚拟目录必须有可执行权限,这个目录是系统自动在IIS根目录下创建的“Securecgi-bin”目录。
因此系统安装后,必须手工修改这个目录为可执行权限。
此应用安装的另一个虚拟目录必须有读权限,这个目录是系统自动在IIS根目录下创建的“Secure”目录。
点击“Next”,其中会有出现需要填入ACS服务器地址的栏目,笔者是同一台机,不需要修改,点击“Next”完成安装。
由于ACS服务器和“UserChangeablePassword”提供服务所需的系统资源和产生的流量比较小,所以一同安装一台虚拟机上。
虚拟机的主要好处是,整个系统可以短时停机,用拷贝的方式备份,管理简化。
物理机有问题时,可以在另外的物理机上安装虚拟机,然后将备份拷入物理机继续提供服务。
读者可以编辑Web页面,对其进行简单的汉化。
配置IPSecVPN
思科路由器远程访问VPN实现的三种技术形式中,最主要的一种即基于网络层的三层隧道技术IPSecVPN技术。
对于IPSecVPN,除了需要经过AAA客户端和服务器端的配置外,还需要在用户机器上安装思科提供的专用VPN客户端软件,思科AAA客户端即3640路由器上需要进行额外的配置。
3640路由器上额外配置的主要内容,是IPSec建立连接的两个阶段的参数定义和本地组的参数定义。
IPSecVPN认证与记账均采用ACS服务器实现,用户授权在前面我们定义为本地授权,而本地授权思科采用本地组的方式进行授权。
思科路由器提供了丰富的设置参数,并且有些参数的设置可能会直接传递给VPN客户端,改变VPN客户端的配置。
所以路由器中的IPSec配置和VPN客户端是互相结合在一起的。
IPSecVPN实现技术原理
IPSec安全协议包括以下四个基本部分:
安全协议AH和ESP;安全关联SA;密钥交换IKE;认证和加密算法。
由于IPAH在发送IP包之前就已经被事先计算好,它跟IP的源地址相关,而笔者的局域网环境与Internet连接采用了NAT地址转换的方式连接,地址转换意味着IP源地址的改变,这将造成IPAH的不完整,因此在笔者的环境中,没有实施AH,只实施了IPESP。
IPESP的基本思想是对整个IP包进行封装,并对数据进行加密。
在管道状态下,为当前已加密的ESP附加了一个新的IP头(纯文本),它可以用来对IP包在Internet上做路由选择,接受方把这个头去掉,再对ESP进行解密,处理并去掉ESP头,再对原来的IP包或更高层协议的数据就像普通的IP包那样进行处理。
IPSecVPN提供了第三层IP的可达性,可以保证任何基于TCP/IP的程序运行。
使用思科的IPSecVPN,客户机需要安装思科VPN客户端软件。
笔者使用的是vpnclient-win-msi-4.8.01.0300-k9.exe版本。
在3640路由器上,笔者配置了两个组,一个组登录VPN后不能同时访问互联网,另一个组可以。
组的配置命令非常丰富,笔者只使用的其中的一部分。
IPSec实现中Internet密钥交换。
(IKE)建立安全关联SA(SecurityAssociation)的过程分两个阶段:
1.第一分阶段即主模式SA,协商创建一个通信信道(IKESA),并对该信道进行认证,为双方进一步的IKE通信提供机密性、数据完整性以及数据源认证服务。
在这一步中,就四个强制性参数值进行协商,协商后两端主机可以各自生成出完全一样的共享“主密钥”,保护紧接其后的认证过程。
具体步骤:
(1)加密算法:
选择DES或3DES。
(2)HASH算法:
选择MD5或SHA。
(3)认证方法:
选择证书认证、预置共享密钥认证或K erberosv5认证。
(4)Diffie-Hellman组的选择。
2.第二阶段即快速模式SA,使用已建立的IKESA建立IPSecSA,为数据传输而建立安全关联,提供IPSec服务。
这个阶段协商消息受第一阶段SA保护的消息将被拒收。
具体步骤:
(1)使用哪种IPSec协议:
AH或ESP。
(2)使用哪种HASH算法:
MD5或SHA。
(3)是否要求加密,若是,选择加密算法:
3DES或DES。
IPSecVPN在3640路由器中配置清单
Vpn3640#shrun
……
Cryptoisakmppolicy3
主模式SA参数设置。
Policy3表示策略3,假如想多配几个VPN,可以写成policy2等。
Encr3des//采用168位的3DES加密模式,也可以为56位的DES
Hashmd5//定义哈希散列算法为MD5,也可以是sha
authenticationpre-share
定义认证方式为通过手工配置预共享密钥。
Group2//Diffie-Hellman组设为2,表示密钥使用1024位密钥,也可以采用1,表示密钥使用768位密钥,显然后1024位密钥安全性高,破译难度更大,但消耗更多的CPU时间。
Lifetime7200//定义安全关联的生命期为2个小时
!
Cryptoisakmpclientcon-figurationgroup3640vpn//定义IPSecVPN本地组名3640vpn
Key******//定义预共享密钥
Dns10.136.32.1210.136.32.26//3640vpn组的DNS设置地址
Wins10.136.32.26//3640vpn组的WINS设置地址
Domain//3640vpn组的域名
Pool
VPNippool
3640vpn组的地址池。
acljxmis_inside_ip//开启split-tunnel功能,目的地址为内网的IP从VPN通道走,其他目的地按本地机器路由设置走
save-password//开启VPN客户端的保存密码选项
split-dns
域名后缀为的从内网DNS解析,其余的域名用本地机器设置。
backup-gateway
VPN接入服务器备用地址1。
Backup-gateway
VPN接入服务器备用地址2。
backup-gateway61.xxx.xxx.xxx
VPN接入服务器备用地址3。
!
Cryptoisakmpclientconfigurationgroupjxmisvpn
定义IPSecVPN本地组名jxmivpn。
Key******
定义预共享密钥。
dns10.136.32.1210.136.32.26
jxmisvpn组的DNS设置地址。
Wins10.136.32.26//jxmisvpn组的WINS设置地址
Domain
jixmisvpn组的域名。
Pooljxmisvpnippool
Jxmisvpn组的地址池。
Save-password
开启客户端的保存密码选项。
backup-gateway
VPN接入服务器备用地址1。
backup-gateway
VPN接入服务器备用地址2。
backup-gateway61.xxx.xxx.xxx
VPN接入服务器备用地址3。
cryptoisakmpprofileIPSEC_pro
定义IPSecVPN记账的profile。
matchidentitygroupIPSEC_pro
clientauthenticationlistIPSEC_user
isakmpauthorizationlistIPSEC_user
clientconfigurationaddressrespond
accountingIPSEC_user
cryptoipsectransform-setmysetesp-3desesp-md5-hmac
快速模式SA参数设置。
定义IPSec变换集myset采用的IPSec协议是ESP,哈希算法是MD5,加密算法是3DES。
!
cryptodynamic-mapdynmap10//创建动态加密策略dynmap10
Settransform-setmyset
动态加密策略dynmap使用变换集myset的设置。
!
cryptomapclientmapcli-entauthenticationlistIPSEC_user//创建动态加密图clientmap,认证采用IPSEC_user
定义的方法
cryptomapclientmapclientaccountinglistIPSEC_user
动态加密图clientmap记账采用IPSEC_user定义的方法。
cryptomapclientmapisakmpauthorizationlistIPSEC_user
//IKE协商授权采用IPSEC_user定义的方法
cryptomapclientmapcli-entconfigurationaddressinitiate//试图为每个接入的客户机设置IP地址
cryptomapclientmapcli-entconfigurationaddressre-spond//接受来自任何请求接入客户机的IP地址请求