AWS上配置Cisco ASAv AnyConnect
這里演示了如何在AWS上搭建思科的SSLVPN,用來解決員工遠(yuǎn)程辦公的需求。文章需要你有一定的AWS和SSLVPN基礎(chǔ)。
?
個人博客地址:https://liuqianglong.com
文章視頻地址:https://space.bilibili.com/408773931
?
1、實驗簡介
最近一直在研究思科防火墻的SSLVPN,用來解決員工遠(yuǎn)程辦公的問題。傳統(tǒng)上一般使用ASA55XX系列的硬件防火墻做SSLVPN,使用ASAv與使用硬件防火墻功能特性幾乎沒有區(qū)別。ASAv在vSphere和AWS環(huán)境都可以部署。這里主要介紹一下在AWS上使用ASAv配置SSLVPN的步驟。后續(xù)會繼續(xù)深入去聊SSLVPN上的高級特性。
如果你有配置ASA SSLVPN的經(jīng)驗,需要注意的是AWS上的特殊場景,下面是整個實驗的注意事項:
- 在中國區(qū)如果AWS賬號未經(jīng)過ICP備案則無法使用TCP 80/443端口,所以需要SSLVPN修改默認(rèn)的443端口號。
- AWS上ASAv為客戶端分配的IP地址需要進(jìn)過NAT轉(zhuǎn)換后才能訪問,因為服務(wù)器沒有回包路由。
- AWS上的Windows2016無法安裝ASDM,建議使用Windows2019安裝ASDM軟件。
- 如果ASAv未購買License會限速100k并且最大會話100個,用于做實驗足夠了但是無法用于生產(chǎn)環(huán)境。
2、環(huán)境介紹
- 本次實驗在VPC內(nèi)需要使用2個子網(wǎng),一個公共子網(wǎng)用于連接跳板機(jī),用戶可以先連接Windows2016之后,在Windows2016通過SSH和ASDM連接ASAv。這里不會詳細(xì)介紹AWS相關(guān)基礎(chǔ)知識,例如如何創(chuàng)建VPC、如何創(chuàng)建公有子網(wǎng)、私有子網(wǎng)。
?
?
- 這是實驗將會用到的公有子網(wǎng),默認(rèn)路由指向了IGW。
?
3、配置跳板機(jī)環(huán)境
- 在公有子網(wǎng)啟用一臺window2016,用于之后通過SSH和ASDM訪問ASAv,注意實例要選擇windows 2016,經(jīng)過測試windows 2019 無法安裝ASDM。通過AWS的快速啟動一臺windows 2016,可以通過輸入“windows 2016”過濾查找。注意,window 2019環(huán)境無法安裝Cisco ASDM。
?
- Window2016放置在公有子網(wǎng),并且開啟分配公有IP功能。
?
?
?
?
?
?
4、創(chuàng)建ASAv實例
- 在AWS Marketplace搜索asav,選擇ami啟用即可。需要注意的是,ASAv默認(rèn)eth0是ciscoasa的管理接口,管理接口只能走網(wǎng)管流量,不能傳輸數(shù)據(jù)流量,所以至少需要再添加一個eth1作為outside接口。如果需要添加更多接口,例如inside和dmz接口,可以添加「網(wǎng)絡(luò)接口」然后附加到實例。其實在AWS環(huán)境中一個outside接口就可以運(yùn)行AnyConnect環(huán)境了。
?
?
?
?
?
?
?
?
?
?
- 實例創(chuàng)建成功之后,在AWS環(huán)境下需要對實例參數(shù)進(jìn)行一下配置。在AWS接口上默認(rèn)會丟棄目的IP不是本接口IP的流量,所以想要ASA轉(zhuǎn)發(fā)流量,必須關(guān)閉outside接口的源/目標(biāo)檢查。
?
?
?
?
- 如果客戶端想要訪問私有云內(nèi)的服務(wù)器,那么不能直接使用ASAv分配的地址池去訪問,否則服務(wù)器沒有回包路由。解決方法是在ASAv做源NAT,將客戶端的源IP地址轉(zhuǎn)換成outside上的一個輔助IP地址(無法轉(zhuǎn)換成outside接口地址)。如果是vSphere環(huán)境可以轉(zhuǎn)換為outside接口地址。
?
?
- 防火墻outside需要公網(wǎng)能直接訪問,所以需要一個公網(wǎng)地址。
?
?
?
- 公網(wǎng)地址關(guān)聯(lián)上防火墻的outside接口。
?
?
- 啟動之后,eth0是管理接口,首次連接時只能連接管理接口,如果想要連接其他接口可以連接之后配置。
?
?
5、ASAv基礎(chǔ)配置
- 首先通過SSH連接到ASAv的管理口進(jìn)行一些基礎(chǔ)配置,這里我使用MobaXterm作為SSH客戶端,下載地址會放在最后。在AWS上啟動的ASAv默認(rèn)用戶名是admin,使用對應(yīng)的密鑰登錄即可。
?
?
- 首先需要設(shè)置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接口默認(rèn)是down狀態(tài)
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服務(wù)器,并且允許http流量從管理口進(jìn)入,0 0 表示不限制IP地址段,如果想要只允許192.168.1.0/24網(wǎng)段的http連接可以這么配置http 192.168.1.0 255.255.255.0。配置http的認(rèn)證方式是本地認(rèn)證,配置一個本地15級權(quán)限的用戶名密碼。
http server enable
http 0 0 management
aaa authentication http console LOCAL
username cisco password ciscoasa privilege 15
?
- 通過網(wǎng)頁訪問ASAv的管理接口地址
?
?
- 先下載并且安裝Java環(huán)境,然后下載安裝ASDM軟件。
?
?
?
?
- 下載安裝ASDM環(huán)境。
?
?
- 使用本地15級賬號密碼登錄。
?
- ASAv未導(dǎo)入License的情況下,限速100Kbps,最大會話100個連接。
?
?
- 這里通過ASDM的文件管理功能導(dǎo)入AnyConnect文件。
?
?
- 導(dǎo)入本地的AnyConnect客戶端文件。
?
- 查看磁盤確認(rèn)有客戶端文件。
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高級功能不做討論。下面命令的含義:當(dāng)客戶端訪問其他任何地址時,源地址轉(zhuǎn)換為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
- 默認(rèn)情況下ASAv相同安全級別不能訪問,流量不能從相同接口進(jìn)出,這里需要開啟這2個特性。
same-security-traffic permit inter-interface
same-security-traffic permit intra-interface
- 創(chuàng)建客戶端的地址池
ip local pool anyconnect_client_pool 192.168.1.1-192.168.1.254 mask 255.255.255.255
- 定義隧道分隔地址段,只有當(dāng)用戶訪問172.30.1.0/24時,流量才會通過SSL隧道到達(dá)ASAv,去往其他網(wǎng)段的流量客戶端依然從本地網(wǎng)絡(luò)出去。
access-list anyconnect_split standard permit 172.30.1.0 255.255.255.0
- 開啟webvpn功能,修改端口為8443(AWS中國區(qū)未經(jīng)過ICP備案無法使用TCP80/443),激活anyconnect撥號功能。
webvpn
?port 8443
?enable outside
?anyconnect enable
?anyconnect image disk0:/anyconnect-win-4.6.00362-webdeploy-k9.pkg
?
- 配置group-policy,允許通過網(wǎng)頁和客戶端撥入,定義流量為隧道分隔模式。
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
- 創(chuàng)建一個本地賬號,用于撥號測試。
username anyuser password ciscoasa
username anyuser attributes
?vpn-group-policy anyconnect
- 目前防火墻的默認(rèn)路由是通過管理接口DHCP獲取到的,需要將默認(rèn)路由修改為outside出去。修改步驟如下:
- 開啟outside ssh管理
- 將管理接口配置為靜態(tài)IP,獲取的默認(rèn)路由會自動消失
- 重新通過outside接口連接ciscoasa
- 指定默認(rèn)路由出口為outside
- 查看現(xiàn)有默認(rèn)路由通過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
- 將管理接口配置為靜態(tài)地址,獲取的默認(rèn)路由會自動消失。
interface management 0/0
? ip address 172.30.2.176 255.255.255.0
- 重新通過SSH連接上outside接口之后,添加默認(rèn)路由從outside接口出去。
route outside? 0 0 172.30.1.1
?
?
?
- 默認(rèn)情況下AnyConnect不允許通過遠(yuǎn)程桌面撥號,需要創(chuàng)建一個AnyConnect Client Profile文件,編輯里面的參數(shù)。
?
?
- 允許通過遠(yuǎn)程桌面撥號。
?
- 如果未修改這個參數(shù),通過遠(yuǎn)程桌面撥號后會有如下報錯。
?
?
7、測試AnyConnect撥號
- 撥號成功后,通過SSL通道能訪問到Windows2016的內(nèi)網(wǎng)地址即可證明訪問成功。Windows2016需要關(guān)閉防火墻才能ping通。
?
- 安全組也需要放行ICMP協(xié)議。
?
?
- 在公網(wǎng)上撥號成功。
?
?
- 去往172.30.1.0/24網(wǎng)段的流量會通過加密隧道訪問。
?
?
- 測試訪問內(nèi)網(wǎng)Windows2016
C:\Users\Administrator>ping 172.30.1.131
正在 Ping 172.30.1.131 具有 32 字節(jié)的數(shù)據(jù):
來自 172.30.1.131 的回復(fù): 字節(jié)=32 時間=1ms TTL=128
來自 172.30.1.131 的回復(fù): 字節(jié)=32 時間=1ms TTL=128
來自 172.30.1.131 的回復(fù): 字節(jié)=32 時間=1ms TTL=128
來自 172.30.1.131 的回復(fù): 字節(jié)=32 時間=1ms TTL=128
- 這里協(xié)議默認(rèn)是TLS,也就是TCP建立的連接,如果網(wǎng)絡(luò)環(huán)境不太穩(wěn)定,需要走語音和視頻流量,建議使用DTLS通道,也就是UDP連接。
?
?
- 修改DTLS端口為8443
webvpn
?dtls port 8443
- 在group-policy下開啟DTLS
group-policy anyconnect attributes
?webvpn
?anyconnect ssl dtls enable
?
- 重新?lián)芴柌榭磪f(xié)議。
?
- 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環(huán)境下載地址
?
總結(jié)
以上是生活随笔為你收集整理的AWS上配置Cisco ASAv AnyConnect的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: avformat_seek_file函数
- 下一篇: 教你3步拯救word型PPT