AWS上配置Cisco ASAv AnyConnect
這里演示了如何在AWS上搭建思科的SSLVPN,用來解決員工遠程辦公的需求。文章需要你有一定的AWS和SSLVPN基礎。
?
個人博客地址:https://liuqianglong.com
文章視頻地址:https://space.bilibili.com/408773931
?
1、實驗簡介
最近一直在研究思科防火墻的SSLVPN,用來解決員工遠程辦公的問題。傳統上一般使用ASA55XX系列的硬件防火墻做SSLVPN,使用ASAv與使用硬件防火墻功能特性幾乎沒有區別。ASAv在vSphere和AWS環境都可以部署。這里主要介紹一下在AWS上使用ASAv配置SSLVPN的步驟。后續會繼續深入去聊SSLVPN上的高級特性。
如果你有配置ASA SSLVPN的經驗,需要注意的是AWS上的特殊場景,下面是整個實驗的注意事項:
- 在中國區如果AWS賬號未經過ICP備案則無法使用TCP 80/443端口,所以需要SSLVPN修改默認的443端口號。
- AWS上ASAv為客戶端分配的IP地址需要進過NAT轉換后才能訪問,因為服務器沒有回包路由。
- AWS上的Windows2016無法安裝ASDM,建議使用Windows2019安裝ASDM軟件。
- 如果ASAv未購買License會限速100k并且最大會話100個,用于做實驗足夠了但是無法用于生產環境。
2、環境介紹
- 本次實驗在VPC內需要使用2個子網,一個公共子網用于連接跳板機,用戶可以先連接Windows2016之后,在Windows2016通過SSH和ASDM連接ASAv。這里不會詳細介紹AWS相關基礎知識,例如如何創建VPC、如何創建公有子網、私有子網。
?
?
- 這是實驗將會用到的公有子網,默認路由指向了IGW。
?
3、配置跳板機環境
- 在公有子網啟用一臺window2016,用于之后通過SSH和ASDM訪問ASAv,注意實例要選擇windows 2016,經過測試windows 2019 無法安裝ASDM。通過AWS的快速啟動一臺windows 2016,可以通過輸入“windows 2016”過濾查找。注意,window 2019環境無法安裝Cisco ASDM。
?
- Window2016放置在公有子網,并且開啟分配公有IP功能。
?
?
?
?
?
?
4、創建ASAv實例
- 在AWS Marketplace搜索asav,選擇ami啟用即可。需要注意的是,ASAv默認eth0是ciscoasa的管理接口,管理接口只能走網管流量,不能傳輸數據流量,所以至少需要再添加一個eth1作為outside接口。如果需要添加更多接口,例如inside和dmz接口,可以添加「網絡接口」然后附加到實例。其實在AWS環境中一個outside接口就可以運行AnyConnect環境了。
?
?
?
?
?
?
?
?
?
?
- 實例創建成功之后,在AWS環境下需要對實例參數進行一下配置。在AWS接口上默認會丟棄目的IP不是本接口IP的流量,所以想要ASA轉發流量,必須關閉outside接口的源/目標檢查。
?
?
?
?
- 如果客戶端想要訪問私有云內的服務器,那么不能直接使用ASAv分配的地址池去訪問,否則服務器沒有回包路由。解決方法是在ASAv做源NAT,將客戶端的源IP地址轉換成outside上的一個輔助IP地址(無法轉換成outside接口地址)。如果是vSphere環境可以轉換為outside接口地址。
?
?
- 防火墻outside需要公網能直接訪問,所以需要一個公網地址。
?
?
?
- 公網地址關聯上防火墻的outside接口。
?
?
- 啟動之后,eth0是管理接口,首次連接時只能連接管理接口,如果想要連接其他接口可以連接之后配置。
?
?
5、ASAv基礎配置
- 首先通過SSH連接到ASAv的管理口進行一些基礎配置,這里我使用MobaXterm作為SSH客戶端,下載地址會放在最后。在AWS上啟動的ASAv默認用戶名是admin,使用對應的密鑰登錄即可。
?
?
- 首先需要設置enable密碼
ciscoasa> enable
The enable password is not set.? Please set it now.
Enter? Password: ****
Repeat Password: ****
Note: Save your configuration so that the password persists across reboots
("write memory" or "copy running-config startup-config").
- 添加的eth1接口默認是down狀態
ciscoasa# show interface ip brief
Interface????????????????? IP-Address????? OK? Method Status??????????????? Protocol
Internal-Data0/0?????????? 169.254.1.1???? YES unset? up??????????????????? up
Management0/0????????????? 172.30.2.176??? YES DHCP?? up????????? ??????????up
TenGigabitEthernet0/0????? 172.30.1.7????? YES CONFIG administratively down up
?
- 開啟eth1,配置名稱為outside
interface TenGigabitEthernet0/0
?no shutdown
?nameif outside
?
- 想要通過ASDM連接ASAv,需要開啟http服務器,并且允許http流量從管理口進入,0 0 表示不限制IP地址段,如果想要只允許192.168.1.0/24網段的http連接可以這么配置http 192.168.1.0 255.255.255.0。配置http的認證方式是本地認證,配置一個本地15級權限的用戶名密碼。
http server enable
http 0 0 management
aaa authentication http console LOCAL
username cisco password ciscoasa privilege 15
?
- 通過網頁訪問ASAv的管理接口地址
?
?
- 先下載并且安裝Java環境,然后下載安裝ASDM軟件。
?
?
?
?
- 下載安裝ASDM環境。
?
?
- 使用本地15級賬號密碼登錄。
?
- ASAv未導入License的情況下,限速100Kbps,最大會話100個連接。
?
?
- 這里通過ASDM的文件管理功能導入AnyConnect文件。
?
?
- 導入本地的AnyConnect客戶端文件。
?
- 查看磁盤確認有客戶端文件。
ciscoasa# dir
Directory of disk0:/
86???? -rwx? 41077110???? 08:00:10 Jan 12 2021? anyconnect-win-4.6.00362-webdeploy-k9.pkg
?
6、ASAv配置SSLVPN
- 下面幾乎是在AWS上ASAv的最小化配置了,這里對AnyConnect高級功能不做討論。下面命令的含義:當客戶端訪問其他任何地址時,源地址轉換為172.30.1.5。
object network asa_outside_address
?host 172.30.1.5
object network anyconnect_pool_object
?subnet 192.168.1.0 255.255.255.0
nat (outside,outside) source dynamic anyconnect_pool_object pat-pool asa_outside_address
- 默認情況下ASAv相同安全級別不能訪問,流量不能從相同接口進出,這里需要開啟這2個特性。
same-security-traffic permit inter-interface
same-security-traffic permit intra-interface
- 創建客戶端的地址池
ip local pool anyconnect_client_pool 192.168.1.1-192.168.1.254 mask 255.255.255.255
- 定義隧道分隔地址段,只有當用戶訪問172.30.1.0/24時,流量才會通過SSL隧道到達ASAv,去往其他網段的流量客戶端依然從本地網絡出去。
access-list anyconnect_split standard permit 172.30.1.0 255.255.255.0
- 開啟webvpn功能,修改端口為8443(AWS中國區未經過ICP備案無法使用TCP80/443),激活anyconnect撥號功能。
webvpn
?port 8443
?enable outside
?anyconnect enable
?anyconnect image disk0:/anyconnect-win-4.6.00362-webdeploy-k9.pkg
?
- 配置group-policy,允許通過網頁和客戶端撥入,定義流量為隧道分隔模式。
group-policy anyconnect internal
group-policy anyconnect attributes
?vpn-tunnel-protocol ssl-client ssl-clientless
?split-tunnel-policy tunnelspecified
?split-tunnel-network-list value anyconnect_split
?address-pools value anyconnect_client_pool
- 創建一個本地賬號,用于撥號測試。
username anyuser password ciscoasa
username anyuser attributes
?vpn-group-policy anyconnect
- 目前防火墻的默認路由是通過管理接口DHCP獲取到的,需要將默認路由修改為outside出去。修改步驟如下:
- 開啟outside ssh管理
- 將管理接口配置為靜態IP,獲取的默認路由會自動消失
- 重新通過outside接口連接ciscoasa
- 指定默認路由出口為outside
- 查看現有默認路由通過mgmt接口出去
ciscoasa# show route
S*?????? 0.0.0.0 0.0.0.0 [1/0] via 172.30.2.1, management
C??????? 172.30.1.0 255.255.255.0 is directly connected, outside
L??????? 172.30.1.7 255.255.255.255 is directly connected, outside
C??????? 172.30.2.0 255.255.255.0 is directly connected, management
L??????? 172.30.2.176 255.255.255.255 is directly connected, management
- 允許ssh連接outside接口
ssh 0 0 outside
- 將管理接口配置為靜態地址,獲取的默認路由會自動消失。
interface management 0/0
? ip address 172.30.2.176 255.255.255.0
- 重新通過SSH連接上outside接口之后,添加默認路由從outside接口出去。
route outside? 0 0 172.30.1.1
?
?
?
- 默認情況下AnyConnect不允許通過遠程桌面撥號,需要創建一個AnyConnect Client Profile文件,編輯里面的參數。
?
?
- 允許通過遠程桌面撥號。
?
- 如果未修改這個參數,通過遠程桌面撥號后會有如下報錯。
?
?
7、測試AnyConnect撥號
- 撥號成功后,通過SSL通道能訪問到Windows2016的內網地址即可證明訪問成功。Windows2016需要關閉防火墻才能ping通。
?
- 安全組也需要放行ICMP協議。
?
?
- 在公網上撥號成功。
?
?
- 去往172.30.1.0/24網段的流量會通過加密隧道訪問。
?
?
- 測試訪問內網Windows2016
C:\Users\Administrator>ping 172.30.1.131
正在 Ping 172.30.1.131 具有 32 字節的數據:
來自 172.30.1.131 的回復: 字節=32 時間=1ms TTL=128
來自 172.30.1.131 的回復: 字節=32 時間=1ms TTL=128
來自 172.30.1.131 的回復: 字節=32 時間=1ms TTL=128
來自 172.30.1.131 的回復: 字節=32 時間=1ms TTL=128
- 這里協議默認是TLS,也就是TCP建立的連接,如果網絡環境不太穩定,需要走語音和視頻流量,建議使用DTLS通道,也就是UDP連接。
?
?
- 修改DTLS端口為8443
webvpn
?dtls port 8443
- 在group-policy下開啟DTLS
group-policy anyconnect attributes
?webvpn
?anyconnect ssl dtls enable
?
- 重新撥號查看協議。
?
- ASAv上查看客戶端信息
ciscoasa(config)#? show vpn-sessiondb anyconnect
Session Type: AnyConnect
Username???? : anyuser??????????????? Index??????? : 3
Assigned IP? : 192.168.1.1??????????? Public IP??? : 52.83.196.213
Protocol???? : AnyConnect-Parent SSL-Tunnel
License????? : AnyConnect Premium
Encryption?? : AnyConnect-Parent: (1)none? SSL-Tunnel: (1)AES-GCM-256
Hashing????? : AnyConnect-Parent: (1)none? SSL-Tunnel: (1)SHA384
Bytes Tx???? : 18613????????????????? Bytes Rx ????: 7928
Group Policy : anyconnect???????????? Tunnel Group : DefaultWEBVPNGroup
Login Time?? : 09:46:43 UTC Tue Jan 12 2021
Duration???? : 0h:01m:51s
Inactivity?? : 0h:00m:00s
VLAN Mapping : N/A??????????????????? VLAN???????? : none
Audt Sess ID : ac1e02b0000030005ffd7003
Security Grp : none
?
?
1、mobaxterm下載地址
2、Java環境下載地址
?
總結
以上是生活随笔為你收集整理的AWS上配置Cisco ASAv AnyConnect的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: avformat_seek_file函数
- 下一篇: 教你3步拯救word型PPT