实验拓扑:
图中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链接,点击就可以下载客户端了
下载完成之后在电脑任务栏的右边会显示一个钥匙表示客户端已安装成功
点击钥匙图标打开客户端,可以看到详细的配置信息和状态