在ASA防火墙上实现SSL-VPN(胖客户端模式)


实验拓扑:


图中R2模拟公网,假设某公司有一个服务器C2(windows server 2008系统,ip地址为192.168.10.2)公司的某员工需要远程访问这台服务器,C1为该员工用的客户端电脑(windows XP系统),R1是192.168.1.0内网的出口路由


实验要求:

1、192.168.1.0和192.168.10.0两个内网可以访问公网

2、在防火墙上用胖客户端模式做SSL-VPN实现C1可以访问C2


实验步骤:

首先为每个设备配置ip地址和路由

R1(config-if)#int f0/0      

R1(config-if)#ip add 11.0.0.2 255.255.255.0   

R1(config-if)#no shut


R1(config-if)#int f0/1                     

R1(config-if)#ip add 192.168.2.1 255.255.255.0

R1(config-if)#no shut


R1(config)#ip route 0.0.0.0 0.0.0.0 11.0.0.1


R2(config)#int f0/0

R2(config-if)#ip add 11.0.0.1 255.255.255.0

R2(config-if)#no shut


R2(config-if)#int f0/1                     

R2(config-if)#ip add 12.0.0.1 255.255.255.0

R2(config-if)#no shut

//R2因为是模拟的公网,只需要配置ip地址即可不需要配置路由,公网是没有公司内网的路由的


R4(config)#int f0/0

R4(config-if)#ip add 192.168.2.2 255.255.255.0

R4(config-if)#no shut


R4(config-if)#int f0/1

R4(config-if)#ip add 192.168.1.1 255.255.255.0

R4(config-if)#no shut


R4(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.1


ciscoasa(config)# int e0/0

ciscoasa(config-if)# nameif outside

ciscoasa(config-if)# ip add 12.0.0.2 255.255.255.0

ciscoasa(config-if)# no shut

ciscoasa(config-if)# 

ciscoasa(config-if)# int e0/1                     

ciscoasa(config-if)# nameif inside                

ciscoasa(config-if)# ip add 192.168.10.1 255.255.255.0

ciscoasa(config-if)# no shut


ciscoasa(config)# route outside 0 0 12.0.0.1


这样整个公网就可以互通了


要想内网可以访问公网可以在出口设备上做PAT来实现,在R1和ASA防火墙上分别做PAT

R1(config)#access-list 1 permit any

R1(config)#ip nat inside source list 1 int f0/0 overload 


R1(config)#int f0/1

R1(config-if)#ip nat inside

R1(config-if)#int f0/0

R1(config-if)#ip nat outside


R1(config)#ip route 192.168.1.0 255.255.255.0 192.168.2.2

//在R1上要配置一个静态路由到192.168.1.0网段,不然是ping不通的,因为没有回程路由


ciscoasa(config)# nat (inside) 1 192.168.10.0 255.255.255.0

ciscoasa(config)# global (outside) 1 interface 



ciscoasa(config)# access-list icmp permit icmp any any

ciscoasa(config)# access-group icmp in int outside

//这个ACL是为了验证可以ping通,允许外面的流量进入ASA防火墙


这样两边的内网都可以访问公网了,如下图



因为胖客户端模式是在用户的计算机上安装客户端来实现的,所以要指定客户端,这里需要用tftp方式把客户端上传到ASA防火墙上


ciscoasa(config)# copy tftp: flash:


Address or name of remote host []? 192.168.10.2


Source filename []? sslclient-win-1.1.3.173.pkg


Destination filename [sslclient-win-1.1.3.173.pkg]? 


Accessing tftp://192.168.10.2/sslclient-win-


1.1.3.173.pkg...!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


!!!!!!!!!!!!!!!!!!!!!!!!!!

Writing file disk0:/sslclient-win-1.1.3.173.pkg...

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


!!!!!!!!!!

416354 bytes copied in 1.540 secs (416354 bytes/sec)


客户端软件已经上传到防火墙上,下面开始SSL-VPN的具体配置了


ciscoasa(config)# webvpn //进入webvpn配置视图

ciscoasa(config-webvpn)# enable outside //在outside口上启用webvpn

ciscoasa(config-webvpn)# svc image disk0:/sslclient-win-1.1.3.173.pkg //指定客户端软件

ciscoasa(config-webvpn)# svc enable //启用胖客户端访问

ciscoasa(config-webvpn)# tunnel-group-list enable //使用户可以选择组列表


username shengjie password abc123 //SSL VPN是对用户进行认证的,所以这里定义远程访问的用户名和密码,用户名必须要4个或以上的字母否则会报错


ciscoasa(config)# access-list 110 extended permit ip 192.168.10.0 255.255.255.0 any //定义客户端的感兴趣流,因为客户端是不固定的地址所以是any


ciscoasa(config)# ip local pool vip 192.168.10.100-192.168.10.200 mask 255.255.255.0 //配置客户端访问时获得的ip地址的地址池,地址池的名字为vip


ciscoasa(config)# group-policy sslvpn internal //定义组策略

ciscoasa(config)# group-policy sslvpn attributes //定义各种属性

ciscoasa(config-group-policy)# dns-server value 192.168.10.2 //定义内网DNS地址

ciscoasa(config-group-policy)# vpn-tunnel-protocol svc webvpn //指定隧道类型 svc为胖客户端模式的SSL VPN,并开启胖客户端,如果没有这个命令的话,在网页访问时就不会有下载安装软件的链接

ciscoasa(config-group-policy)# split-tunnel-policy tunnelspecified //开启隧道分离

ciscoasa(config-group-policy)# split-tunnel-network-list value 110 //调用感兴趣流

ciscoasa(config-group-policy)# address-pool value vip //调用地址池

ciscoasa(config-group-policy)# split-dns value benet.com //配置dns分离的域名,当访问benet.com时去访问192.168.10.2这个内部的dns服务器

ciscoasa(config-group-policy)# webvpn

ciscoasa(config-group-webvpn)# svc ask enable  //开启客户端下载

ciscoasa(config-group-webvpn)# url-entry disable //关闭浏览器中的HTTP和https的方式访问内网

ciscoasa(config-group-webvpn)# file-entry disable //关闭FTP和共享访问


ciscoasa(config)# tunnel-group sslg type remote-access //定义隧道组sslg为webvpn

ciscoasa(config)# tunnel-group sslg general-attributes //定义各种属性

ciscoasa(config-tunnel-general)# default-group-policy sslvpn //调用组策略

ciscoasa(config-tunnel-general)# tunnel-group sslg webvpn-attributes //下拉列表里要显示的名字

ciscoasa(config-tunnel-webvpn)# group-alias testssl enable //启用别名,登陆时下拉列表实际显示为testssl


验证实验结果:

在客户端的浏览器中输入https://12.0.0.2访问防火墙的出口地址

点击login登陆之后可以看到start anyconnect链接,点击就可以下载客户端了

下载完成之后在电脑任务栏的右边会显示一个钥匙表示客户端已安装成功

点击钥匙图标打开客户端,可以看到详细的配置信息和状态








本文出自 “挨踢女的网络成长之路” 博客,请务必保留此出处http://shengjie.blog.51cto.com/8734352/1580287

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。