一、ASA(狀態化防火牆)安全設備介紹:
Cisco硬件防火牆技術應用領域:
- PIX 500 系列安全設備。
- ASA 5500系列自適應安全設備。
- Catalyst 6500 系列交換機和Cisco 7600 系列路由器的防火牆服務模塊。
Cisco ASA 5500 系列自適應安全設備提供了整合防火牆、***保護系統(IPS)、高級自適應威脅防禦服務,其中包括應用安全和簡化網絡安全解決方案的V P N服務。
二、ASA狀態化防火牆的安全算法:
狀態化防火牆維護一個關於用戶信息的連接表,稱爲Conn表
Conn表中的關鍵信息如下:
- 源IP地址
- 目的IP地址
- IP協議(例如TCP或UDP)
- IP協議信息(例如TCP/UDP端口號,TCP序列號,TCP控制位)
在上圖中,當PC訪問web服務器時,狀態化防火牆處理的過程如下:
1、 PC發起一個HTTP請求給web服務器;
2、HTTP請求到達防火牆,防火牆將鏈接信息(如源IP地址和目的IP地址、使用的TCP協議、源IP地址和目的IP地址的TCP端口號)添加到conn表;
3、 防火牆將HTTP請求轉發給web服務器;
流量返回時,狀態化防火牆處理的過程如下:
1、web服務器相應HTTP請求,返回相應的數據流量;
2、防火牆攔截該流量,檢查其連接信息;
- 如果在conn表中查找到匹配的連接信息,則流量被允許。
- 如果在conn表中找不到匹配的連接信息,則流量被丟棄。
ASA使用安全算法執行以下三項基本操作:
1、訪問控制列表:基於特定的網絡、主機和服務(TCP/UDP端口號)控制網絡訪問。
2、連接表:維護每個連接的狀態信息。安全算法使用此信息在已建立的連接中有效的轉發流量。(個人理解爲:ASA允許內網客戶端主動向外網建立連接,但外網不允許主動向內網建立連接,也就是說,要實現流量通信,必須是內網用戶主動發起連接的。)
3、檢測引擎:執行狀態檢測和應用層檢測。檢測規則集是預先定義的,來驗證應用是否遵從每個RFC和其他標準。
數據報文穿越ASA的過程如下所示:
1、一個新來的TCP SYN報文到達ASA,試圖建立一個新的連接;
2、ASA檢查訪問控制列表,確定是否允許連接;
3、ASA執行路由查詢,如果路由正確,ASA使用必要的會話信息在連接表(XLATE和CONN)中創建一個新條目;
4、ASA在檢測引擎中檢查預定義的一套規則,如果是已知應用,則進一步執行應用層檢測;
5、ASA根據檢測引擎確定是否轉發或丟棄報文,如果允許轉發,則將報文轉發到目的主機;
6、目的主機相響應該報文;
7、ASA接收返回報文並進行檢測,在連接數據庫中查詢連接,確定會話信息與現有連接是否匹配;
8、ASA轉發屬於已建立的現有會話的報文;
ASA的應用層檢測通過檢查報文的IP包頭和有效載荷的內容,對應用層協議流量執行深層檢測,檢查應用層協議是否遵守RFC標準,從而檢查出應用層數據中的惡意行爲。
三、ASA接口的概念:
1、ASA的一個接口通常有兩種名稱:
①物理名稱:與路由器接口的名稱類似,如Ethernet0/0可以簡寫成E0/0,通常用來配置接口的速率、雙工和IP地址等。
②、邏輯名稱:用於大多數的配置命令,如配置ACL、路由器等使用的命令中都用到邏輯名稱。邏輯名稱用來描述安全區域,如通常用inside表示ASA連接的內部區域(安全級別高),用outside表示ASA連接的外部區域(安全級別低)。
2、接口的安全級別:
每個接口都有一個安全級別,範圍是0~100,數值越大,安全級別越高。一般配置接口爲inside(內網接口)時,將其安全級別設置爲100,爲outside(外網接口)時,將其安全級別設置爲0,爲DMZ(隔離區)時,安全級別介於inside和outside之間即可。
不同安全級別的接口之間相互訪問時,遵從以下默認規則:
①允許出站連接:就是允許從高安全級別接口到低安全級別的流量通過。比如說從inside訪問outside是允許的。
②禁止入站連接:就是禁止從低安全級別接口到高安全級別接口的流量通過。比如說從outside訪問inside是禁止的。
③禁止相同安全級別的接口之間通信。
四、DMZ的概念和作用:
DMZ稱爲隔離區,是位於企業內部網絡和外部網絡之間的一個網絡區域。在這個網絡區域內可以放置一些必須公開的服務器、如web服務器、FTP服務器和論壇等。示意圖如下:
DMZ中放置一些不含機密信息的共用服務器,這樣來自外網的訪問者也可以訪問DMZ中的服務,但不能訪問內網的公司機密信息。即使DMZ中的服務器收到***,也不會對內網的機密信息造成影響,所以,可以通過DMZ區域有效的保護內網環境。
當存在DMZ區域時,默認的訪問規則如下:
上圖中默認遵循的訪問規則如下:
- inside可以訪問DMZ和outside;
- DMZ可以訪問outside但不允許訪問inside;
- outside不能訪問DMZ和inside,不過通常會配置ACL,讓outside可以訪問DMZ,若不然,DMZ就沒有存在的意義了。
五、ASA的基本配置:
配置主機名:
ciscoasa> en
Password: #默認特權密碼爲空,直接回車即可。
ciscoasa# conf t
ciscoasa(config)# hostname asa
配置特權密碼:asa(config)# enable password 123.com #將特權密碼配置爲123.com
配置遠程登錄密碼(在使用Telnet或SSH時需要輸入的密碼):
asa(config)# passwd 2019.com #將遠程連接時的密碼設置爲2019.com
配置接口名稱和接口安全級別:
asa(config)# in e0/0 #進入e0接口
asa(config-if)# nameif inside #將e0接口定義爲inside
INFO: Security level for "inside" set to 100 by default. #系統提示,請
將inside接口的安全級別配置爲100
asa(config-if)# security-level 100 #將inside接口的安全級別配置爲100
如果ASA的型號是5505,則不支持在物理接口上直接進行以上配置,必須通過VLAN虛接口來配置,具體如下:
asa(config)#int vlan 1
asa(config-if)# nameif inside
asa(config-if)# security-level 100
asa(config-if)#ip add 10.1.1.254 255.255.255.0
asa(config-if)# no shut
查看conn表:
asa#show aonn detail
配置ACL:
在ASA上配置ACL有兩個作用,一是允許入站連接,二是控制出站連接的流量。
需要注意的是,路由器上的ACL使用反碼,而ASA上的ACL使用正常的掩碼,另外,標準ACL過濾流量時不能應用到接口,它應用在其他場合,如遠程訪問V P N中分離隧道的配置。
允許入站連接的實例:
asa(config)# access-list out_to_in permit ip host 172.16.1.1 host 10.1.1.1
#允許外網主機172.16.1.1訪問內網主機10.1.1.1,out_to_in爲ACL組名。
asa(config)# access-group out_to_in in int outside
#將組名爲out_to_in的ACL應用在outside接口
控制出站連接的流量:
asa(config)# access-list in_to_out deny ip 10.0.0.0 255.0.0.0 any #拒絕
內網10.0.0.0網段 訪問外網所有網段。
asa(config)# access-list in_to_out permit ip any any #並允許其他所有
流量通行,因爲ACL有隱含的拒絕語句,所以配置ACL時,一般都需要允許所有流量
asa(config)# access-group in_to_out in int inside #應用在內網接口
配置靜態路由:
asa(config)# route outside 172.16.0.0 255.255.0.0 10.0.0.1 #去往外網
172.16.0.0網段的流量下一跳爲10.0.0.1
asa(config)# route inside 192.168.1.0 255.255.255.0 192.168.2.1 #去往內網
192.168.1.0網段的流量下一跳爲192.168.2.1