原文連結:
https://blog.csdn.net/weixin_44907813/article/details/90444907:
原文聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結和本聲明。
一、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 conn 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
其他配置
1、ICMP協定:
預設情況下,禁止ICMP封包穿越ASA是基于安全性的考慮。有時候為了友善調試,可以配置暫時允許ICMP應答封包穿越ASA。
ciscoasa(config)# access-list 111 permit icmp any any #定義ACL
ciscoasa(config)# access-group 111 in int outside #應用到outside接口
2、其他配置指令:
寫在前面,一切皆可no,也就是說當配置錯一條指令後,可以在原先的配置指令前加no即可删除配置錯的那條指令
ciscoasa# write memory #儲存running configuration配置
到startup configuration
或者
ciscoasa# copy running-config startup-config #儲存running configuration
配置到startup configuration
ciscoasa(config)# clear configure all #清除running configuration的所有配置
ciscoasa(config)# clear configure access-list #清除所有acces-list指令的配置
ciscoasa(config)# clear configure access-list in_to_out #隻清除access-list
in_to_out 的配置
ciscoasa# write erase #删除startup-config配置檔案
六、遠端管理ASA:
ASA支援三種主要的遠端管理接入方式:Telnet 、ssh和ASDM。
1、Telnet配置執行個體:
由于使用Telnet遠端管理是不安全的,是以一般禁止從外部接口使用Telnet接入,而隻允許在内網使用Telnet。
1)、配置允許從inside區域内的192.168.0.0/24網段使用telnet接入,指令如下:
ciscoasa(config-if)# telnet 192.168.0.0 255.255.255.0 inside
或者允許單個主機Telnet防火牆(兩者根據需要二選一即可):
ciscoasa(config)# telnet 192.168.0.1 255.255.255.255 inside
2)、配置空閑逾時時間為30分鐘,指令如下:
ciscoasa(config)# telnet timeout 30
至此,即可實作Telnet遠端管理。
2、配置SSH接入:
1)、配置主機名和域名,因為在生成RSA密鑰對的過程中需要用到主機名和域名,(主機名的配置可省略)
ciscoasa(config-if)# host aaa #配置主機名
aaa(config)# domain-name abc.com #配置域名
aaa(config)# crypto key generate rsa modulus 1024 #指定modulus的大小
為1024位,大小可以為512位、768位、1024位或2048位,
表示生成的RSA密鑰的長度
aaa(config)# ssh 192.168.1.0 255.255.255.0 inside #允許内網1.0的網段
SSH接入
aaa(config)# ssh 0 0 outside #允許外網任何主機SSH接入
aaa(config)# ssh timeout 30 #配置逾時時間為30分鐘
aaa(config)# ssh version 2 #啟用SSH的版本2,該指令為可選,
有版本1和版本2,至于差別…不過是安全機制不一樣
配置SSH接入完成後,可以在outside區域内的主機上使用SecureCRT或putty等工具登入ASA的outside接口,注意ASA預設使用使用者名為pix,密碼為使用password指令設定的密碼。