Cisco ASA Anyconnect 远程访问 VPN

  • A+
所属分类:安全 网络

下面将了解如何使用anyconnect客户端进行远程访问VPNAnyconnect是旧Cisco VPN客户端的替代品,支持SSL和IKEv2 IPsec。在SSL方面,ASA提供两种SSL VPN模式:

  • 无客户端WebVPN
  • AnyConnect VPN

无客户端WEBVPN被安装在用户的计算机上的方法不需要VPN客户端。您只需打开Web浏览器,输入ASA的IP地址,即可通过Web门户访问。您只能访问许多应用程序,例如:

  • 内部网站(HTTP和HTTPS)
  • Web应用程序
  • Windows文件共享
  • 电子邮件服务器(POP3,IMAP,SMTP)
  • Microsoft Outlook Web Access

没有完整的网络访问,当您使用无客户端WEBVPN。

Anyconnect VPN提供完全的网络访问。远程用户将使用anyconnect客户端连接到ASA,并将从VPN池接收IP地址,从而允许完全访问网络。

在本课中,我们将仅使用无客户端WebVPN来安装anyconnect VPN客户端。远程用户将打开Web浏览器,输入ASA的IP地址,然后它将自动下载anyconnect VPN客户端并建立连接。这是我们将使用的拓扑:

Cisco ASA Anyconnect 远程访问 VPN

上面我们有ASA防火墙,有两个安全区域:内部和外部。远程用户位于外部某处,希望使用Anyconnect VPN客户端进行远程访问。仅使用左侧的R1,以便我们可以测试远程用户是否可以访问网络。我们来看看配置吧!

ASA配置

远程用户将能够从ASA下载anyconnect VPN客户端,因此我们需要将其存储在某处。每个操作系统都有一个不同的安装文件,我们需要将它们放在ASA的闪存中:

ASA1# show flash: 
--#--  --length--  -----date/time------  path
   10  8192        Dec 02 2014 19:09:34  log
   18  8192        Dec 02 2014 19:09:44  crypto_archive
  106  25088760    Aug 04 2014 13:59:20  asdm-731.bin
  109  27113472    Aug 25 2014 13:10:56  asa915-k8.bin
  112  31522773    Aug 09 2014 15:01:52  anyconnect-win-3.1.03103-k9.pkg
  113  9993060     Aug 09 2014 15:06:50  anyconnect-linux-3.1.03103-k9.pkg
  114  11293375    Aug 09 2014 15:08:34  anyconnect-macosx-i386-3.1.03103-k9.pkg

255426560 bytes total (149487616 bytes free)

每个操作系统都有一个不同的PKG文件。上面你可以看到我有一个用于Windows,Linux和Mac OS X.如果你还没有,请确保将它们复制到ASA的闪存中。

我们的下一步是启用无客户端WebVPN:

ASA1(config)# webvpn

现在我们指定要使用的anyconnect PKG文件:

ASA1(config-webvpn)# anyconnect image flash:/anyconnect-win-3.1.03103-k9.pkg

我只是为Windows指定了anyconnect客户端,但如果您想支持Linux或Mac OS X用户,请务必在此处添加它们。现在我们可以在外部接口上启用客户端WebVPN:

ASA1(config-webvpn)# enable outside
INFO: WebVPN and DTLS are enabled on 'OUTSIDE'.

这样可以在外部接口上启用WebVPN。我们还需要启用anyconnect:

ASA1(config-webvpn)# anyconnect enable

当您在外部接口上有入站访问列表时,来自SSL WebVPN的所有解密流量必须与入站访问列表匹配。您可以为解密的流量创建一些permit语句,也可以告诉ASA让此流量绕过访问列表:

ASA1(config)# sysopt connection permit-vpn

当远程用户连接到我们的WebVPN时,他们必须使用HTTPS。以下选项不是必需的,但有用的是,只要有人通过HTTP访问ASA,它们就会被重定向到HTTPS:

ASA1(config)# http redirect OUTSIDE 80

ASA将为连接anyconnect VPN客户端的所有远程用户分配IP地址。我们将为此配置一个具有IP地址的池:

ASA1(config)# ip local pool VPN_POOL 192.168.10.100-192.168.10.200 mask 255.255.255.0

远程用户将从上面的池中获取IP地址,我们将使用IP地址范围192.168.10.100 - 200。

默认情况下,一旦远程用户连接,所有流量都将通过隧道发送。如果要在远程用户连接后允许远程用户访问Internet,则需要配置拆分隧道。我们将配置一个访问列表,指定我们希望通过隧道访问哪些网络:

ASA1(config)# access-list SPLIT_TUNNEL standard permit 192.168.1.0 255.255.255.0

这意味着SSL VPN隧道仅用于到达192.168.1.0 / 24网络。现在我们可以配置anyconnect组策略:

ASA1(config)# group-policy ANYCONNECT_POLICY internal
ASA1(config)# group-policy ANYCONNECT_POLICY attributes
ASA1(config-group-policy)# vpn-tunnel-protocol ssl-client ssl-clientless 
ASA1(config-group-policy)# split-tunnel-policy tunnelspecified
ASA1(config-group-policy)# split-tunnel-network-list value SPLIT_TUNNEL
ASA1(config-group-policy)# dns-server value 8.8.8.8
ASA1(config-group-policy)# webvpn
ASA1(config-group-webvpn)# anyconnect keep-installer installed
ASA1(config-group-webvpn)# anyconnect ask none default anyconnect
ASA1(config-group-webvpn)# anyconnect dpd-interval client 30

在组策略配置之后,我们必须创建一个隧道组,它将组策略和VPN池绑定在一起:

ASA1(config)# tunnel-group MY_TUNNEL type remote-access 
ASA1(config)# tunnel-group MY_TUNNEL general-attributes 
ASA1(config-tunnel-general)# default-group-policy ANYCONNECT_POLICY
ASA1(config-tunnel-general)# address-pool VPN_POOL
ASA1(config-tunnel-general)# exit

当远程用户连接时,ASA将向远程用户显示组名,我们可以像这样指定组名:

ASA1(config)# tunnel-group MY_TUNNEL webvpn-attributes 
ASA1(config-tunnel-webvpn)# group-alias SSL_USERS enable

您将看到,当远程用户连接时,ASA将显示组名“SSL_USERS”。如果您有多个隧道组,则远程用户应该能够选择某个隧道组:

ASA1(config)# webvpn
ASA1(config-webvpn)# tunnel-group-list enable 

现在我们可以创建一个用户帐户:

ASA1(config)# username SSL_USER password MY_PASSWORD

我们需要告诉ASA该用户帐户是否可以访问网络:

ASA1(config)# username SSL_USER attributes
ASA1(config-username)# service-type remote-access 

现在ASA上已经有了一切。我们可以使用客户端连接到ASA并安装anyconnect客户端。

客户端配置

我将使用带有Internet Explorer的Windows 7客户端。启动浏览器并输入ASA的IP地址作为URL。如果您使用HTTP,您将被重定向到HTTPS:

Cisco ASA Anyconnect 远程访问 VPN

ASA正在使用浏览器无法识别的自签名证书,因此您就会看到此错误。单击继续,您将看到以下屏幕:

Cisco ASA Anyconnect 远程访问 VPN

现在您可以验证自己。输入我们之前创建的用户名和密码。组名是我们创建的组别名。一旦通过身份验证,您将看到:

Cisco ASA Anyconnect 远程访问 VPN

客户端尝试自动下载Anyconnect,这是因为我们使用了anyconnect ask none default anyconnect命令。由于我们使用自签名证书,您将收到以下错误消息:

Cisco ASA Anyconnect 远程访问 VPN

您需要单击“更改设置”按钮,您将看到:

Cisco ASA Anyconnect 远程访问 VPN

单击“应用更改”按钮,您将看到:

Cisco ASA Anyconnect 远程访问 VPN

单击重试连接链接,您将看到:

Cisco ASA Anyconnect 远程访问 VPN

我们再收到一条警告,证明无法验证证书。单击Connect Anyway,最终将开始下载:

Cisco ASA Anyconnect 远程访问 VPN

一旦完成,您将看到:

Cisco ASA Anyconnect 远程访问 VPN

已安装Anyconnect客户端并已建立连接。如果你查看Windows任务栏,那么你会发现一个小图标:

Cisco ASA Anyconnect 远程访问 VPN

单击它,它将打开Anyconnect客户端,这是它的样子:

Cisco ASA Anyconnect 远程访问 VPN

它是连接的,如果你想看到一些细节你需要点击小“齿轮”图标,它会给你一个很好的连接概述:

Cisco ASA Anyconnect 远程访问 VPN

这将显示客户端已收到的IP地址以及有关发送/接收的字节数的一些统计信息。这看起来不错,但在结束本课之前验证一些事情很重要......我们收到了很多关于不受信任的自签名证书的消息。对于此示例并不重要,但在生产网络中,解决此问题可能是个好主意。在另一课中,我将向您展示如何使用用户浏览器信任的证书。

验证

客户验证

首先,我们将在客户端上生成一些流量,看看它是否可以到达内部网络上的R1:

C:UsersVPN>ping 192.168.1.1

Pinging 192.168.1.1 with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time=2ms TTL=255
Reply from 192.168.1.1: bytes=32 time=2ms TTL=255
Reply from 192.168.1.1: bytes=32 time=2ms TTL=255
Reply from 192.168.1.1: bytes=32 time=2ms TTL=255

Ping statistics for 192.168.1.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 2ms, Average = 2ms

这看起来不错,让我们使用ipconfig查看收到的IP地址:

C:UsersVPN>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : VPN-PC
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Local Area Connection 3:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Cisco AnyConnect Secure Mobility Client Virtual Miniport Adapter for Windows x64
   Physical Address. . . . . . . . . : 00-05-9A-3C-7A-00
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 192.168.10.100(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :
   DNS Servers . . . . . . . . . . . : 8.8.8.8
   NetBIOS over Tcpip. . . . . . . . : Enabled

您可以看到PC收到的IP地址为192.168.10.100(VPN池中的第一个IP地址)。Anyconnect创建了一个额外的接口,就像传统的Cisco VPN客户端一样。

ASA验证

客户端上的一切看起来都很好,在ASA上也有一个有用的命令来验证我们的工作:

ASA1# show vpn-sessiondb anyconnect 

Session Type: AnyConnect

Username     : SSL_USER               Index        : 6
Assigned IP  : 192.168.10.100         Public IP    : 10.10.10.2
Protocol     : Clientless SSL-Tunnel DTLS-Tunnel
License      : AnyConnect Premium
Encryption   : Clientless: (1)RC4  SSL-Tunnel: (1)RC4  DTLS-Tunnel: (1)AES128
Hashing      : Clientless: (1)SHA1  SSL-Tunnel: (1)SHA1  DTLS-Tunnel: (1)SHA1
Bytes Tx     : 6252805                Bytes Rx     : 133830
Group Policy : ANYCONNECT_POLICY      Tunnel Group : MY_TUNNEL
Login Time   : 16:30:35 UTC Tue Dec 9 2014
Duration     : 0h:11m:28s
Inactivity   : 0h:00m:00s
NAC Result   : Unknown
VLAN Mapping : N/A                    VLAN         : none
  • 我的微信
  • 欢迎大家,与我交流,非诚勿扰谢谢
  • weinxin
  • 奕知伴解 微信公众号
  • 扫一扫关注,从此不迷路。
  • weinxin
刘銮奕

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: