在ASA防火牆上實現IPSec VPN
在ASA防火牆配置IPSec VPN與路由器的差別不是很大,而且原理相同。VPN工作原理參照上一篇,這裡就不在贅述了。
實驗案例
某軟體開發公司為了降低人員成本,在中小城市建立了分支公司,但是分支公司上傳給總公司的數據一般為軟體開發的關鍵業務數據,如果其被竊取,可能給公司帶來難以預計的損失。作為該分支公司的網路管理員,對網路提出以下設計需求。
需求描述:
1)開發項目小組可以通過VPN訪問總公司研發伺服器,但不能訪問Internet
2)分公司的其他客戶端可以訪問Internet
在GNS3上實驗拓撲如下圖:
具體配置如下:
1、在3sw上的配置
3sw#vlandatabase#創建VLAN
3sw(vlan)#vlan10
3sw(vlan)#vlan20
3sw(vlan)#exit
3sw#conft
3sw(config)#intvlan10#配置VLAN地址
3sw(config-if)#ipadd172.16.10.254255.255.255.0
3sw(config-if)#nosh
3sw(config-if)#intvlan20
3sw(config-if)#ipadd172.16.20.254255.255.255.0
3sw(config-if)#nosh
3sw(config-if)#intf1/0
3sw(config-if)#noswitchport
3sw(config-if)#ipadd192.168.1.2255.255.255.252
3sw(config)#intf1/1
3sw(config-if)#switchportaccessvlan10
3sw(config-if)#intf1/2
3sw(config-if)#switchportaccessvlan20
3sw(config-if)#exit
3sw(config)#iproute0.0.0.00.0.0.0192.168.1.1#配置路由
2、在分公司ASA-1上配置
ASA-1#conft#配置介面地址
ASA-1(config)#inte0/0
ASA-1(config-if)#nameifinside
ASA-1(config-if)#security-level100
ASA-1(config-if)#ipadd192.168.1.1255.255.255.252
ASA-1(config-if)#nosh
ASA-1(config-if)#inte0/1
ASA-1(config-if)#nameifoutside
ASA-1(config-if)#security-level0
ASA-1(config-if)#ipadd100.0.0.1255.255.255.252
ASA-1(config-if)#nosh
ASA-1(config)#routeoutside00100.0.0.2#配置路由
ASA-1(config)#routeinside172.16.0.0255.255.0.0192.168.1.2
ASA-1(config)#nat-control#配置NAT
ASA-1(config)#nat(inside)100
ASA-1(config)#global(outside)1int
ASA-1(config)#access-listnonatextendedpermitip172.16.10.0255.255.255.010.10.33.0255.255.255.0
ASA-1(config)#nat(inside)0access-listnonat#配置NAT豁免
ASA-1(config)#cryptoisakmpenableoutside#啟用ISAKMP/IKE
ASA-1(config)#cryptoisakmppolicy1#配置ISAKMP策略
ASA-1(config-isakmp-policy)#encryptionaes#配置加密演算法
ASA-1(config-isakmp-policy)#hashsha#配置數字簽名
ASA-1(config-isakmp-policy)#authenticationpre-share#採用預共享密鑰
ASA-1(config-isakmp-policy)#group1#指定DH密鑰組
注意:配置預共享密鑰有兩種方式,第一種配置和路由器相同,第二種是7.0以上版本的新特性,7.0以上版本一般採用隧道組來配置密鑰
第一種配置:和路由器配置相同
ASA-1(config)#cryptoisakmpkeyvpn-keyaddress200.0.0.1
第二種配置:採用隧道組配置,配置如下
ASA-1#tunnel-group200.0.0.1typeipsec-l2l
ASA-1(config)#tunnel-group200.0.0.1ipsec-attributes
ASA-1(config-tunnel-ipsec)#pre-shared-keyvpn-key
預共享密鑰任選其一即可,接下來的配置如下:
ASA-1(config)#access-listvpnextendedpermitip172.16.10.0255.255.255.010.10.33.0255.255.255.0#ACL
ASA-1(config)#cryptoipsectransform-setvpn-setesp-aesesp-sha-hmac#配置IPSec變換集
ASA-1(config)#cryptomapvpn-map1matchaddressvpn#應用ACL
ASA-1(config)#cryptomapvpn-map1setpeer200.0.0.1#配置IPSec對等體設備
ASA-1(config)#cryptomapvpn-map1settransform-setvpn-set#應用IPSec變換集
ASA-1(config)#cryptomapvpn-mapinterfaceoutside#將其映射到介面
3、在ISP上配置
ISP#conft
ISP(config)#intf0/0
ISP(config-if)#ipadd100.0.0.2255.255.255.252
ISP(config-if)#nosh
ISP(config-if)#intf0/1
ISP(config-if)#ipadd200.0.0.2255.255.255.252
ISP(config-if)#nosh
4、在總公司ASA-2上配置
ASA-2#conft
ASA-2(config)#inte0/0
ASA-2(config-if)#nameifoutside
ASA-2(config-if)#security-level0
ASA-2(config-if)#ipadd200.0.0.1255.255.255.252
ASA-2(config-if)#nosh
ASA-2(config-if)#inte0/1
ASA-2(config-if)#nameifinside
ASA-2(config-if)#security-level100
ASA-2(config-if)#ipadd10.10.33.254255.255.255.0
ASA-2(config-if)#nosh
ASA-2(config)#routeoutside00200.0.0.2
ASA-2(config)#cryptoisakmpenableoutside
ASA-2(config)#cryptoisakmppolicy1
ASA-2(config-isakmp-policy)#encryptionaes
ASA-2(config-isakmp-policy)#hashsha
ASA-2(config-isakmp-policy)#authenticationpre-share
ASA-2(config-isakmp-policy)#group1
ASA-2(config)#cryptoisakmpkeyvpn-keyaddress100.0.0.1
ASA-2(config)#access-listvpnextendedpermitip10.10.33.0255.255.255.0172.16.10.0255.255.255.0
ASA-2(config)#cryptoipsectransform-setvpn-setesp-aesesp-sha-hmac
ASA-2(config)#cryptomapvpn-map1matchaddressvpn
ASA-2(config)#cryptomapvpn-map1setpeer100.0.0.1
ASA-2(config)#cryptomapvpn-map1settransform-setvpn-set
ASA-2(config)#cryptomapvpn-mapinterfaceoutside
防火牆和路由器的區別
防火牆由於自身IOS原因,在配置命令方面與路由器有一定區別,但並不非常明顯。這裡重點介紹兩個方面:
1、默認配置的區別
在建立管理連接的過程中,cisco asa防火牆和路由器默認情況下使用的參數不同。
Cisco asa防火牆使用的參數如下:
ASA-1(config)# show run crypto
路由器使用的參數如下:
Router#show crypto isakmp policy
防火牆不支持命令show crypto isakmp policy,要想查看管理連接的默認參數,需在初始配置下啟用isakmp策略,然後通過命令show run進行觀察。與路由器相比,默認的加密演算法變為3DES,默認的DH組使用2,默認的設備驗證方法變為預共享秘鑰,而默認的HASH演算法以及生存周期沒有變化。
ASA防火牆採用了更為安全的默認設置,這是cisco公司設備技術革新的一種表現。需要注意的是,如果ipsec對等體雙方式ASA防火牆和cisco路由器,那麼使用默認的ISAKMP策略是無法建立連接的。
另外,在數據連接建立過程中,ASA防火牆只支持ESP協議,因此,如果路由器使用AH協議實現數據驗證功能,將無法與ASA成功地建立數據連接。
2、IKE協商默認是否開啟
默認情況下,IKE協商在路由器中是開啟的,而在ASA防火牆中是關閉的。因此,在ASA防火牆中必須使用命令crypto isakmp enable outside開啟IKE協商。
3、隧道組特性的引入
嚴格意義上說,這並不能算是防火牆和路由器的配置差異,而防火牆從6.x版本升級到7.0版本引入的新特性,它主要用於簡化ipsec會話的配置和管理。而且路由器配置共享秘鑰key的命令(crypto isakmp key key-string address peer-address),ASA防火牆依然支持。
4、介面安全級別對於ipsec流量的影響。
防火牆存在一種限制,如果流量從一個介面進入,就不能從相同安全級別的埠流出。即流量不能在統一安全級別的埠之間傳輸,這主要是從安全方面考慮而設定的一種特性,但可能對ipsec流量造成一定的影響。
假如ASA防火牆處於網路的中心節點(如公司總部),為了實現對分公司網路流量的統一管理,要求分公司之間的訪問流量必須通過總公司。這就會出現上述情況,造成分公司之間無法通信。這時就需要使用如下命令來實現
。
ASA-1(config)# same-security-traffic permit {intra-interface | inter-interface}
上面命令最後兩個參數的區別:
Intra-interface參數允許流量進入和離開同一個介面,多用於L2L會話中的中心設備;
inter-interface參數允許流量進入和離開具有相同安全級別的兩個不同的介面,多用於遠程訪問VPN會話中的Easy VPN網關。