Cisco ASA防火牆SSL VPN的配置
阿新 • • 發佈:2019-02-04
SSL VPN裝置有很多。如Cisco 路由器、Cisco PIX防火牆、Cisco ASA 防火牆、Cisco VPN3002 硬體客戶端或軟體客戶端。這極大地簡化了遠端端管理和配置。說的簡單點就是在Server 端配置複雜的策略和金鑰管理等命令,而在我們的客戶端上只要配置很簡單的幾條命令就能和Server端建立VPN鏈路的一種技術,主要的目的當然就是簡化遠端裝置的配置和管理。
那麼今天我們看看我們要實現的是SSL VPN,那什麼是SSL VPN呢?
SSL VPN是解決遠端使用者訪問敏感公司資料最簡單最安全的解決技術。與複雜的IPSec VPN相比,SSL通過簡單易用的方法實現資訊遠端連通。任何安裝瀏覽器的機器都可以使用SSL VPN, 這是因為SSL 內嵌在瀏覽器中,它不需要象傳統IPSec VPN一樣必須為每一臺客戶機安裝客戶端軟體。
什麼是SSL VPN?
從概念角度來說,SSL VPN即指採用SSL (Security Socket Layer)協議來實現遠端接入的一種新型VPN技術。SSL協議是網景公司提出的基於WEB應用的安全協議,它包括:伺服器認證、客戶認證(可選)、SSL鏈路上的資料完整性和SSL鏈路上的資料保密性。對於內、外部應用來說,使用SSL可保證資訊的真實性、完整性和保密性。目前SSL 協議被廣泛應用於各種瀏覽器應用,也可以應用於Outlook等使用TCP協議傳輸資料的C/S應用。正因為SSL 協議被內置於IE等瀏覽器中,使用SSL 協議進行認證和資料加密的SSL
VPN就可以免於安裝客戶端。相對於傳統的IPSEC VPN而言,SSL VPN具有部署簡單,無客戶端,維護成本低,網路適應強等特點,這兩種型別的VPN之間的差別就類似C/S構架和B/S構架的區別。
一般而言,SSL VPN必須滿足最基本的兩個要求:
1. 使用SSL 協議進行認證和加密;沒有采用SSL 協議的VPN產品自然不能稱為SSL VPN,其安全性也需要進一步考證。
2. 直接使用瀏覽器完成操作,無需安裝獨立的客戶端;即使使用了SSL 協議,但仍然需要分發和安裝獨立的VPN客戶端 (如Open VPN)不能稱為SSL VPN,否則就失去了SSL VPN易於部署,免維護的優點了。
SSL VPN的特點
SSL VPN的客戶端程式,如Microsoft Internet Explorer、Netscape Communicator、Mozilla等已經預裝在了終端裝置中,因此不需要再次安裝;
SSL VPN可在NAT代理裝置上以透明模式工作;
SSL VPN不會受到安裝在客戶端與伺服器之間的防火牆等NAT裝置的影響,穿透能力強;
SSL VPN將遠端安全接入延伸到IPSec VPN擴充套件不到的地方,使更多的員工,在更多的地方,使用更多的裝置,安全訪問到更多的企業網路資源,同時降低了部署和支援費用; 客戶端安全檢查和授權訪問等操作,實現起來更加方便。
SSL VPN可以在任何地點,利用任何裝置,連線到相應的網路資源上。IPSec VPN通常不能支援複雜的網路,這是因為它們需要克服穿透防火牆、IP地址衝突等困難。所以IPSec VPN實際上只適用於易於管理的或者位置固定的地方。可以說從功能上講,SSL VPN是企業遠端安全接入的最佳選擇。
但是雖然SSL VPN具有以上眾多的優點,卻由於SSL協議本身的侷限性,使得效能遠低於使用IPSec協議的裝置。使用者往往需要在簡便使用與效能之間進行痛苦選擇。這也是第二代VPN始終無法取代第一代VPN的原因。
SSL VPN的優點
1、方便。實施ssl vpn之需要安裝配置好中心閘道器即可。其餘的客戶端是免安裝的,因此,實施工期很短,如果網路條件具備,連安裝帶除錯,1-2天即可投入運營。
2、容易維護。ssl vpn 維護起來簡單,出現問題,就維護閘道器就可以了。實在不行,換一臺,如果有雙機備份的話,備份機器啟動就可以了。
3、安全。ssl vpn 是一個安全協議,資料全程加密傳輸的。另外,由於ssl閘道器隔離了內部伺服器和客戶端,只留下一個web瀏覽介面,客戶端的大多數病毒木馬感染不倒內部伺服器。而ipsec vpn 就不一樣,實現的是ip級別的訪問,遠端網路和本地網路幾乎沒有區別。區域網能夠傳播的病毒,通過vpn一樣能夠傳播。
那麼我們也瞭解了這麼多了,我們來看看如何配置它呢?
第一步:配置身份證書
在這裡我們生成一個名為sslvpnkeypair的自簽名證書,並將這個自答名證書應用在“outside”介面上面。預設情況下,我們的安全裝置每次重新啟動以後,都全重新生成我們的證書,這個證書我們也可以從廠商購買自己的證書,這個證書即使我們的網路裝置重啟了它仍然存在。
第二步:將SSL VPN客戶端映象上傳到ASA
使用者可以從思科的網站(cisco.com)獲得客戶端映象。在選擇要下載哪個映象給TFTP伺服器時,記住你需要為使用者所使用的每種作業系統下載單獨的映象。在選擇並下載客戶端軟體後,就可以將其TFTP到ASA。如果沒有的話,我可以提供一個給大家測試用用。
在將檔案上傳到ASA之後,配置一下這個檔案,使其可用作Web VPN會話.注意,如果你有多個客戶端,就應當配置最常用的客戶,使其擁有最高的優先權。在本文中,我們將僅使用一個客戶端併為其設定優先權為1:
第三步:啟用SSL VPN訪問
如何不啟用的話,那麼我們輸入網址將打不開該SSL VPN的頁面。
第四步:建立SSL VPN撥號地址池
遠端訪問客戶端需要在登入期間分配一個IP地址,所以我們還需要為這些客戶端建立一個DHCP地址池,不過如果你有DHCP伺服器,還可以使用DHCP伺服器。
第五步:建立組策略
組策略用於指定應用於所連線客戶端的引數。在本文中,我們將建立一個稱之為SSLCLientPolicy的組策略。
第六步:配置訪問列表旁路
通過使用sysopt connect命令,我們告訴ASA准許SSL/IPsec客戶端繞過介面的訪問列表
第七步:建立連線配置檔案和隧道組
在遠端訪問客戶端連線到ASA時,也就連線到了connection profile連線配置檔案,也稱為隧道組。我們將用這個隧道組來定義其使用的特定連線引數。在本文中,我們將配置這些遠端訪問客戶端使用Cisco SSL VPN客戶端,不過,你還可以配置隧道組使用IPsec、L2L等。
首先,建立隧道組SSL 客戶端:
下一步就是給這個SSL VPN隧道分配特定的屬性
在上在group-alias後面的SSLVPNClient這個就是我們在登陸頁面提示進行登入時看見的組。(如下圖:)
第八步:將隧道組列表在webvpn中開啟
開啟之後,在我們登入的時候才會有“GROUP”,如果沒有開啟的話,在上圖就沒有“GROUP”這個列表。
第九步:配置NAT免除
現在,我們需要告訴ASA不要對遠端訪問客戶端和要訪問的內部網路之間的通訊進行網路地址轉換
(NAT)。首先,我們要建立一個可定義通訊的訪問列表,然後,我們將此列表用於介面的NAT語句:
第十步:配置使用者賬戶
現在我們已經為配置使用者賬戶做好了準備。在此,我們要建立一個使用者並且將此使用者指派給我們的SSL VPN:
第十一步:儲存
好了,上面設定就差不多了。那麼我們現在開啟網站來試試看。
開啟IE瀏覽器輸入https://xxx.xxx.xxx.xxx/如果你的是IP地址那麼XXX就輸入IP地址,如果有域名就輸入域名。開啟以後,會出現一個安全警報,這裡直接點選“是”。
開啟我們的SSL VPN介面如下:
從上圖我們可以看見,在login下面選擇我們SSLVPN的組,再輸入組下面的使用者名稱及密碼。來進行登入。
當我們使用者名稱及密碼認證成功以後,就會進入下面這個頁面,進行activeX下載及安裝。
在這裡如果你的計算機安裝了JAVA虛擬機器的話會提示出來視窗。並且JAVA虛擬機器會自動幫你下載及安裝。
因為我們站點名稱與我們開始生成的證書的名稱不一致導致的,這裡不用管它,直接點選“是”這時候我們的JAVA虛擬機器就會自動來幫我們下載及安裝。
如果我們的PC上面沒有安裝JAVA虛擬機器的話,我們就需要自己手動安裝一下,安裝圖片如下:
當我們安裝完Cisco SSL VPN Client以後,會自動給我們連線。
在我們連線的時候會提示我們安裝證書,如下圖:
這裡我們點選“是”來進行證書的安裝。
點選“安裝證書”進入“證書安裝嚮導”
點選“下一步”,進入“證書儲存”
而我們這裡就使用預設值“根據證書型別,自動選擇證書儲存區”,然後點選“下一步”進入“正在完成證書匯入嚮導”
點選“完成”,證書匯入成功。
這裡他提示說我們安裝的證書在我們VPN證書伺服器上面沒有找到。所以所示錯誤,這裡不用管他,直接點選“是”。就開始我們SSL VPN的連線。
當連線成功以後,SSL VPN CLINET for WEBVPN就會自動訊息。而在我們通知區域會顯示一把點鑰匙。
而只要當我SSL VPN一連成功以後,我的QQ以及飛信就立刻掉線了。如下圖:
這時我們可以點選右鍵看看他的一些狀態資訊。
右擊小鑰匙,我們可以看見有四個選項,我們這裡選擇“Statistics”檢視狀態資訊。如下圖:
從上圖我們可以看見,其實這個介面與我們Cisco VPN Client軟體的狀態資訊都差不多。
從上圖我們可以看見Server端的IP地址,以及Client所分配得到的IP地址。在這裡我們還可以看見一些SSL的資訊。
下面我們再來看看Route Details。
從這裡我們可以看見,我們所有的資料都走向我們SSL VPN服務端去了。所以我們現在就只能訪問SSL VPN服務端的網路了。但是我自己這邊的網路以及網際網路都不能訪問,這樣我們就非常不方便。那麼我們如何來解決這個問題呢?我們在這裡就必須使用隧道分離技術了。那麼下面我們來看看隧道分離如何配置呢?
當我們將這幾條隧道分離設定好了以後呢,我們再撥號上來看看我們的路由狀態表。
我們從上面就可以看見,只有去往10.0.0.0/8這個網段的才走我們的SSL VPN,而其他資料還是走我這邊預設的網路出去,這樣即不影響辦公,又不影響我們正常使用網路。
下面我們來測方式
//生成一個RSA金鑰的證書,該名稱是是唯一的。
CISCOASA(config)# crypto key generate rsa label sslvpnkeypair |
CISCOASA(config)# copy tftp://192.168. 1.50/sslclient-win-1.1.3.173.pkg flash |
CISCOASA(config)# webvpn CISCOASA(config-webvpn)# svc image disk0:/sslclient-win-1.1.3.173.pkg 1 INFO: Image does not contain head-end configuration. |
CISCOASA(config-webvpn)# enable outside CISCOASA(config-webvpn)# svc enable CISCOASA(config-webvpn)# exit |
CISCOASA(config)# ip local pool SSLClientPool 192.168.10.1-192.168.10.100 mask 255.255.255.0 |
CISCOASA(config)# group-policy SSLCLientPolicy internal CISCOASA(config)# group-policy SSLCLientPolicy attributes CISCOASA(config-group-policy)# dns-server value 61.139.2.69 CISCOASA(config-group-policy)# vpn-tunnel-protocol svc CISCOASA(config-group-policy)# default-domain value tsweb.local CISCOASA(config-group-policy)# address-pools value SSLClientPool CISCOASA(config-group-policy)# exit |
CISCOASA(config)# sysopt connection permit-vpn |
CISCOASA(config)# tunnel-group SSLClientProfile type remote-access |
CISCOASA(config)# tunnel-group SSLClientProfile general-attributes CISCOASA(config-tunnel-general)# default-group-policy SSLCLientPolicy CISCOASA(config-tunnel-general)# tunnel-group SSLClientProfile webvpn-attributes CISCOASA(config-tunnel-webvpn)# group-alias SSLVPNClient enable CISCOASA(config-tunnel-webvpn)# exit |
CISCOASA(config)# webvpn CISCOASA(config-webvpn)# tunnel-group-list enable CISCOASA(config-webvpn)# exit |
CISCOASA(config)# access-list inside_nat0_outbound extended permit ip 10.0.0.0 255.0.0.0 192.168.10.0 255.255.255.0 CISCOASA(config)# nat (inside) 0 access-list inside_nat0_outbound |
CISCOASA(config)# username liuty password yjtfpddc CISCOASA(config)# username liuty attributes CISCOASA(config-username)# service-type remote-access CISCOASA(config-username)# exit |
CISCOASA(config)# write memory |
CISCOASA(config)# access-list vpnclient_splitTunnelAcl standard permit 10.0.0.0 255.0.0.0 CISCOASA(config)# group-policy SSLCLientPolicy attributes CISCOASA(config-group-policy)# split-tunnel-policy tunnelspecified CISCOASA(config-group-policy)# split-tunnel-network-list value vpnclient_splitTunnelAcl CISCOASA(config-group-policy)# exit |