您好,登錄后才能下訂單哦!
在目前大多數(shù)安全解決方案中,防火墻的實(shí)施是最為重要的需求,它是每個(gè)網(wǎng)絡(luò)基礎(chǔ)設(shè)施必要且不可分割的組成部分。這篇博客主要介紹防火墻安全算法的原理與基本配置以及遠(yuǎn)程管理防火墻的幾種方式
硬件與軟件防火墻
1.軟件防火墻
軟件防火墻單獨(dú)使用軟件系統(tǒng)來完成防火墻功能,將軟件部署到系統(tǒng)主機(jī)上,其安全性較硬件防火墻差,同時(shí)占用系統(tǒng)資源,在一定程度上影響系統(tǒng)性能。其一般用于單機(jī)系統(tǒng)或個(gè)人計(jì)算機(jī),極少用于計(jì)算機(jī)網(wǎng)絡(luò),如瑞星、天網(wǎng)、360等。
2.硬件防火墻
硬件防火墻比軟件防火墻更有優(yōu)勢(shì),原因有一下兩個(gè)方面
* 硬件防火墻功能強(qiáng)大,且明確是為抵御威脅而設(shè)計(jì)的
* 硬件防火墻比軟件防火墻漏洞少
Cisco硬件防火墻技術(shù)應(yīng)用于以下三個(gè)領(lǐng)域
* PIX 500系列安全設(shè)備
* ASA 5500系列自適應(yīng)安全設(shè)備
* Catalyst 6500系列交換機(jī)和Cisco 7600系列路由器的防火墻服務(wù)模塊
ASA安全設(shè)備
Cisco ASA 5500系列自適應(yīng)安全設(shè)備是最新的Cisco防火墻技術(shù)產(chǎn)品,它提供了整合防火墻、***保護(hù)系統(tǒng)、高級(jí)自適應(yīng)威脅防御服務(wù),其中包括應(yīng)用安全和簡(jiǎn)化網(wǎng)絡(luò)安全解決方案的×××服務(wù)。
目前,Cisco ASA 5500系列有六種型號(hào),下表所示:
型號(hào) | 價(jià)格 | 并發(fā)連接數(shù) | 網(wǎng)絡(luò)吞吐量 | 描述 |
ASA 5505 | 2600~15700 | 25000 | 150MB | 適用于小型企業(yè) |
ASA 5510 | 12000~94200 | 130000 | 300MB | 適用于中型企業(yè) |
ASA 5520 | 28000~84000 | 280000 | 450MB | 適用于中型企業(yè) |
ASA 5540 | 68000~70000 | 400000 | 650MB | 適用于中型企業(yè) |
ASA 5550 | 80000~85000 | 650000 | 1200MB | 適用于大型企業(yè)及電信運(yùn)營(yíng)商 |
ASA 5580 | 200000~530000 | 1000000~2000000 | 5000MB~10000MB | 適用于大型企業(yè)及電信運(yùn)營(yíng)商 |
ASA的安全算法
ASA首先是一個(gè)狀態(tài)化防火墻,狀態(tài)化防火墻維護(hù)一個(gè)關(guān)于用戶信息的連接表,稱為Conn表,表中關(guān)鍵信息如下:
* 源IP地址
* 目的IP地址
* IP協(xié)議
* IP協(xié)議信息
默認(rèn)情況下,ASA對(duì)TCP和UDP協(xié)議提供狀態(tài)化連接,但I(xiàn)CMP協(xié)議是非狀態(tài)化的。
狀態(tài)化防火墻進(jìn)行狀態(tài)化處理的過程如圖所示:
(1)PC發(fā)起一個(gè)HTTP請(qǐng)求給Web服務(wù)器
(2)HTTP請(qǐng)求到達(dá)防火墻,防火墻將連接信息添加到Conn表
(3)防火墻將HTTP請(qǐng)求轉(zhuǎn)發(fā)給Web服務(wù)器
流量返回時(shí),狀態(tài)化防火墻處理的過程如下:
(4)Web服務(wù)器響應(yīng)HTTP請(qǐng)求,返回相應(yīng)的數(shù)據(jù)流量
(5)防火墻攔截該流量,檢查其連接信息
* 如果在Conn表中查找到匹配的連接信息,則流量被允許
* 如果在Conn表中查不到匹配的連接信息,則流量被丟棄
安全算法的原理
ASA使用安全算法執(zhí)行一下三項(xiàng)基本操作
* 訪問控制列表:基于特定的網(wǎng)絡(luò),主機(jī)和服務(wù)(TCP/UDP端口號(hào))控制網(wǎng)絡(luò)訪問。
* 連接表:維護(hù)每個(gè)連接的狀態(tài)信息。安全算法使用此信息在已建立的連接中有效轉(zhuǎn)發(fā)流量
* 檢測(cè)引擎:執(zhí)行狀態(tài)檢測(cè)和應(yīng)用層檢測(cè)。檢測(cè)規(guī)則集是預(yù)先定義的,來驗(yàn)證應(yīng)用是否遵從每個(gè)RFC和其他標(biāo)準(zhǔn)。
數(shù)據(jù)報(bào)文穿越ASA的過程如下圖所示:
(1)一個(gè)新來的TCP SYN報(bào)文到達(dá)ASA,試圖建立一個(gè)新的連接。
(2)ASA檢查訪問列表,確定是否允許連接。
(3)ASA執(zhí)行路由查詢,如果路由正確,ASA使用必要的會(huì)話信息在連接表(XLATE和Conn)中創(chuàng)建一個(gè)新條目。
(4)ASA在檢測(cè)引擎中檢查預(yù)定義的一套規(guī)則,如果是已知應(yīng)用,則進(jìn)一步執(zhí)行應(yīng)用層檢測(cè)。
(5)ASA根據(jù)檢測(cè)引擎確定是否轉(zhuǎn)發(fā)或丟棄報(bào)文。如果允許轉(zhuǎn)發(fā),則將報(bào)文轉(zhuǎn)發(fā)到目的主機(jī)。
(6)目的主機(jī)響應(yīng)該報(bào)文。
(7)ASA接收返回報(bào)文并進(jìn)行檢測(cè),在連接數(shù)據(jù)庫(kù)中查詢連接,確定會(huì)話信息與現(xiàn)有連接是否匹配。
(8)ASA轉(zhuǎn)發(fā)屬于已建立的現(xiàn)有會(huì)話的報(bào)文。
ASA的引用層檢測(cè)是通過檢查報(bào)文的IP頭和有效載荷的內(nèi)容,對(duì)應(yīng)用層協(xié)議流量執(zhí)行深層檢測(cè),檢查應(yīng)用層協(xié)議是否遵守RFC標(biāo)準(zhǔn),從而檢測(cè)出應(yīng)用層數(shù)據(jù)中的惡意行為。
ASA的基本配置
配置主機(jī)名
ASA初始啟動(dòng)后默認(rèn)的主機(jī)名是ciscoasa,可以通過以下命令將主機(jī)名配置為asa。
ciscoasa# config terminal ciscoasa(config)# hostname asa asa(config)#
配置密碼
可以配置特權(quán)密碼和遠(yuǎn)程登錄密碼
1.配置特權(quán)密碼
以下命令將配置特權(quán)密碼為123456
asa(config)# enable password 123456
2.配置遠(yuǎn)程登錄密碼
遠(yuǎn)程登錄密碼是在使用Telnet或SSH時(shí)需要輸入的密碼。以下命令將配置遠(yuǎn)程登錄密碼為ysf,注意與路由器配置是不同的。
asa(config)# password ysf
接口的概念與配置
ASA的接口通常有兩種名稱,即物理名稱和邏輯名稱
1.物理名稱
物理名稱與路由器名稱類似,例如Ethernet0/0、Ethernet0/1,可以簡(jiǎn)寫為E0/0、E0/1,通常用來配置接口的速率,雙工和IP地址等
ASA 5510及以上型號(hào)還有專門的管理接口用于管理目的,例如management0/0
2.邏輯名稱
邏輯名稱用于大多數(shù)的配置命令,例如配置ACL、配置路由等使用命令中都用到邏輯名稱。邏輯名稱用來描述安全區(qū)域,例如通常用inside表示ASA連接的內(nèi)部區(qū)域(安全性高),用outside表示ASA連接的外部區(qū)域(安全性低)。
防火墻與路由器有著本質(zhì)的不同,防火墻是用于安全目的,所以它的各個(gè)接口代表了不同的安全區(qū)域,而安全區(qū)域之間隔著一堵墻。
接口的安全級(jí)別
ASA的每個(gè)接口都有一個(gè)安全級(jí)別,范圍是0-100,數(shù)值越大其安全級(jí)別越高。當(dāng)配置接口的名稱為inside時(shí),其安全級(jí)別自動(dòng)設(shè)置為100。而配置其他的接口名稱例如outside時(shí),其安全級(jí)別自動(dòng)設(shè)置為0.
不同安全級(jí)別的接口之間互相訪問時(shí),遵從如下的默認(rèn)規(guī)則。
* 允許出站(outbound)連接,即允許從高安全級(jí)別接口到低安全級(jí)別接口的流量通過。
* 禁止入站(inbound)連接,即禁止從低安全級(jí)別接口到高安全級(jí)別接口的流量通過。
* 禁止相同安全級(jí)別的接口之間通信。
接口的配置
配置命令語法如下:
asa(config-if)# nameif name //配置接口名稱 asa(config-if)# security-level number //配置接口安全級(jí)別
其中number的范圍為0-100。
案例:如圖,使用路由器R1和R2模擬PC,要求配置ASA的接口并驗(yàn)證接口之間的通信。
ASA接口配置如下:
asa(config)# int e0/1 asa(config-if)# namaif inside asa(config-if)# security-level 100 asa(config-if)# ip add 10.1.1.254 255.255.255.0 asa(config-if)# no sh asa(config)# int e0/0 asa(config-if)# nameif outside asa(config-if)# security-level 0 asa(config-if)# ip add 172.16.1.254 255.255.255.0 asa(config-if)# no sh
如果ASA的型號(hào)是5505,則不支持在物理接口上直接進(jìn)行以上配置,必須通過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 sh asa(config-if)# int e0/1 asa(config-if)# no sh asa(config-if)# switchport access vlan 1 asa(config)# int vlan 2 asa(config-if)# nameif outside asa(config-if)# security-level 0 asa(config-if)# ip add 172.16.1.254 255.255.255.0 asa(config-if)# no sh asa(config-if)# int e0/0 asa(config-if)# no sh asa(config-if)# switchport access vlan 2
查看Conn表
asa# show conn dateil
通過驗(yàn)證,在R1可以Telnet到R2,但在R2可以Telnet到R1
配置ACL
在ASA上配置ACL有兩個(gè)作用:一是允許入站連接,二是控制出站連接的流量
* 標(biāo)準(zhǔn)ACL的配置如下:
asa(config)# access-list acl_name [ standrad ] { permit | deny } ip_addr mask
* 擴(kuò)展ACL的配置如下:
asa(config)# access-list acl_name [ extended ] { permit | deny } protocol src_ip_addr src_mask dst_ip_addr dst_mask [ operator port ]
* 將ACL應(yīng)用到接口,配置如下:
asa(config)# access-group acl_name { in | out } interface interface_name
需要注意的是,路由器上的ACL使用的是反碼,而ASA上的ACL使用正常的掩碼。另外,標(biāo)準(zhǔn)ACL過濾流量時(shí)不能應(yīng)用到接口,它應(yīng)用到其他場(chǎng)合,如遠(yuǎn)程訪問×××中分離隧道的配置
允許入站連接
ASA的默認(rèn)規(guī)則是禁止入站連接,如果要允許入站連接,就需要配置ACL。
例如:在上個(gè)案例中,要在R2上Telnet到R1,可以在ASA上做如下配置
asa(config)# access-list out_to_in permit ip host 172.16.1.1 host 10.1.1.1 asa(config)# access-group out_to_in in int outside
控制出站連接的流量
例如:在上個(gè)案例中,如果inside區(qū)域有多個(gè)子網(wǎng)。例如,10.1.1.0/24、10.1.2.0/24等,要禁止子網(wǎng)10.1.1.0/24的流量出站,可以在ASA上做如下配置
asa(config)# access-list in_to_out deny ip 10.1.1.0 255.255.255.0 any asa(config)# access-list in_to_out permit ip any any asa(config)# access-group in_to_out in int inside
配置靜態(tài)路由
ASA支持靜態(tài)和默認(rèn)路由、動(dòng)態(tài)路由(例如OSPF等)
配置靜態(tài)路由的命令語法如下
asa(config)# route interface-name network mask next-hop-address
ICMP協(xié)議
默認(rèn)情況下,禁止ICMP報(bào)文穿越ASA是基于安全性的考慮。為了方便調(diào)試,可以配置暫時(shí)允許ICMP應(yīng)答報(bào)文穿越ASA
asa(config)# access-list 111 permit icmp any any asa(config)# access-group 111 in int outside
在調(diào)試完畢后,通常建議禁止ICMP報(bào)文穿越ASA
其他配置命令
(1)保存running-configuration配置到startup configuration,可以使用以下兩種命令:
asa(config)#write memory //第一種 asa(config)#copy running-config startup-config //第二種
(2)清除running configuration的所有配置,可以使用以下命令
asa(config)#clear configure all
(3)清除running configuration中指定命令的配置,可以使用以下命令
asa(config)#clear configure configurationcommand [ leve12configurationcommand ]
例如:要清除所有access-list命令的配置,可以使用以下命令
asa(config)#clear configure access-list
只清除access-list in_to_out的配置,可以使用以下命令
asa(config)#clear configure access-list in_to_out
遠(yuǎn)程管理ASA
ASA支持三種主要的遠(yuǎn)程管理接入方式:Telnet、SSH和ASDM
1.配置Telnet接入
由于使用Telnet遠(yuǎn)程管理是不安全的,所以一般禁止從外部接口使用Telnet接入,而只允許在內(nèi)網(wǎng)使用Telnet。
(1)配置允許Telnet接入
asa(config)# telnet {network|ip-address} mask interface_name
例如:配置允許從inside區(qū)域內(nèi)的192.168.0.0/24使用Telnet接入,命令如下
asa(config)# telnet 192.168.0.0 255.255.255.0 inside
可以配置為只允許主機(jī)192.168.0.1/24使用Telnet接入,命令如下
asa(config)# telnet 192.168.0.1 255.255.255.255 inside
(2)(可選)配置空閑超時(shí)時(shí)間
asa(config)# telnet timeout minutes
參數(shù)minutes的取值范圍為1-1440分鐘,默認(rèn)值是5分鐘。
2.配置SSH接入
使用SSH可以安全地對(duì)ASA進(jìn)行遠(yuǎn)程管理,配置SSH接入分為四個(gè)步驟。
(1)配置主機(jī)名和域名
在生成RSA密鑰對(duì)的過程中需要用到主機(jī)名和域名,以下命令為ASA配置主機(jī)名為asa802,配置域名為asadomain.com
asa(config)# host asa802 asa802(config)# domain-name asadomain.com
(2)生成RSA密鑰對(duì)
asa802(config)# crypto key generate rsa modulus 1024
可以指定modulus的大小為512、768、1024或2048位,默認(rèn)是1024,表示生成的RSA密鑰的長(zhǎng)度。
(3)配置允許SSH接入
配置SSH的命令語法與配置Telnet是類似的,但是SSH可以配置為從外部接口接入,命令如下
asa802(config)# ssh 192.168.0.0 255.255.255.0 inside asa802(config)# ssh 0 0 outside
(4)其他可選配置
配置空閑超時(shí)時(shí)間。與配置Telnet類似,例如設(shè)置為30分鐘,命令如下
asa802(config)# ssh timeout 30
配置SSH的版本。默認(rèn)情況下支持版本1和版本2.要限定使用哪個(gè)版本,可以使用如下命令
asa802(config)# ssh version 2
配置完后,可以在Outside 區(qū)域內(nèi)的主機(jī)上使用Putty登錄ASA的Oouside接口。注意ASA默認(rèn)使用用戶名pix,密碼為使用passwd命令設(shè)置的密碼,即可登錄成功
3.配置ASDM接入
除了使用命令行外,ASA還支持GUI遠(yuǎn)程管理方式,即自適應(yīng)安全設(shè)備管理器(ASDM)
要使用ASDM,首先要保證ASA的Flash中有ASDM映像,可以通過dir命令查看
asa# dir Directory of disk0:/ 55 -rwx 6889764 14:16:34 Dec 09 2017 asdm-602.bin
(1)啟用HTTPS服務(wù)器功能,命令如下
asa(config)# http server enable [port] //默認(rèn)端口是443
(2)配置允許HTTPS接入,命令如下:
asa(config)# http {network|ip-address} mask interface-name
(3)指定ASDM映像的位置,命令如下:
asa(config)# asdm p_w_picpath disk0:/asdm-602.bin
(4)配置客戶端登陸使用的用戶名和密碼,命令如下:
asa(config)# username user password password privilege 15
如果不配置用戶名和密碼,ASDM默認(rèn)使用用戶名admin,密碼為使用enable password命令設(shè)置的密碼。
例如:以下是一個(gè)ASA的配置案例
asa(config)# http server enable asa(config)# http 192.168.0.0 255.255.255.0 inside asa(config)# asdm p_w_picpath disk0:/asdm-602.bin asa(config)# username ysf password 123456 privilege 15
客戶端主機(jī)使用ASDM需要首先安裝Java Runtiime Environment(JRE),然后在主機(jī)啟動(dòng)瀏覽器,輸入https://192.168.0.254(inside接口的IP地址)進(jìn)行訪問。
多安全區(qū)域(配置DMZ)
上面介紹了ASA的基本配置,其中只用到了inside和outside兩個(gè)安全區(qū)域,實(shí)際上ASA可以配置多個(gè)安全區(qū)域,比較常用的是DMZ
DMZ(隔離區(qū))位于企業(yè)內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間的一個(gè)網(wǎng)絡(luò)區(qū)域,通常用來放置一些必須公開的服務(wù)器,如Web服務(wù)器、FTP服務(wù)器和論壇等。下圖所示
DMZ默認(rèn)的訪問規(guī)則
DMZ的安全級(jí)別介于inside和outside之間,在存在DMZ的情況下,默認(rèn)的訪問規(guī)則如下圖所示:
* 允許從高安全級(jí)別接口到低安全級(jí)別接口的流量通過
* 禁止從低安全級(jí)別接口到高安全級(jí)別接口的流量通過
在實(shí)際應(yīng)用中,通常需要配置訪問規(guī)則和地址轉(zhuǎn)換允許outside訪問DMZ
DMZ的基本配置
asa(config)# int e0/1 asa(config-if)# namaif dmz asa(config-if)# security-level 50 asa(config-if)# ip add 192.168.1.1 255.255.255.0 asa(config-if)# no sh
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。