目标:
n了解思科IPS關聯防禦Blocking
n示範思科IPS關聯其它裝置(路由器)完成blocking的項目案例
了解思科IPS關聯防禦Blocking
該任務,主要描述思科IPS裝置上完成Blocking功能,必須具備的理論,其中包括Blocking作用和意義、Blocking的元件與專業術語、實作Blocking技術的準備工作、實作Blocking的注意事項、以及Blocking的實施步驟等。
思科IPS裝置上Blocking的作用與意義
它是一種IPS裝置與其它網絡裝置進行關聯比如思科的路由器、多業務內建交換機、防火牆等,在這種情況下思科的IPS裝置可以指令其它的網絡裝置對攻擊流量進行攔阻,當IPS處于旁路模式時,這種關聯其它網絡裝置對攻擊流量進行攔阻的行為非常有用。相反,如果IPS裝置處于線上模式下,blocking的特性還沒有那麼明顯,因為當IPS處于線上模式時,裝置本身就可以攔阻很多違規流量。
實作Blocking的元件與專業術語
Blocking(阻攔功能):思科IPS裝置上的一種功能,它使思科的IPS傳感器可以關聯思科的其它裝置來攔阻攻擊者的流量。
Devicemanagement(裝置管理):思科IPS傳感器與某些思科裝置互動,阻止攻擊源的能力。
Blockingdevice(阻攔裝置):被IPS傳感器管理的裝置,比如思科器、交換機、PIX等。
Blockingsensor(阻攔傳感器):為了控制一個或多個管理裝置而配置的IPS傳感器。
Managedinterface(被管理接口):應用動态建立ACL傳感器的被管理裝置上的接口,也叫做攔阻接口。
ActiveACL(活動ACL):它是被動态建立的ACL,IPS傳感器将它應用到被管理的裝置上。
實作Blocking技術的準備工作
要實作Blocking技術前必須的準備工作:IPS裝置的command接口上必須有一個可通和網絡通信的IP位址和正确的IP網關、允許telnet和SSH、有加密的密鑰授權。如下圖6.1所示:
<a href="http://blog.51cto.com/attachment/201309/135750959.png" target="_blank"></a>
IPS裝置的command接口上必須有一個可通和網絡通信的IP位址和正确的IP網關:
在如圖6.1的環境中,假設您需要在IPS裝置上要配置關聯路由器R2的blocking技術,那麼此時您必須為IPS的command接口配置IP位址192.168.1.254/24,并配置預設網關是192.168.1.1,在我們先前的所有關于IPS的實驗環境中,對于預設網關的填寫意義不是很大,因為IPS都不需要跨越IP子網通信,也不需要跨越IP子網完成任何管理行為,但是在如圖6.1所示的環境中就不一樣了,因為此時的IPS要向路由器R2(192.168.2.2)發送blocking關聯功能,是以你必須正确配置IPS(192.168.1.254)與路由器R2(192.168.2.2)的成功通信,IPS(192.168.1.254)要和R2(192.168.2.2)成功通信的前提是IPS成功的配置了預設網關192.168.1.1,因為此時的IPS隻是網絡中的一個通信點而已,他必須要使用預設網關才能路由器到R2,關于這一點非常重要。
配置Blocking device(阻攔裝置)支援telnet和SSH
Blocking device(比如:思科的路由器、交換機、PIX防火牆)支援telnet和SSH功能,因為思科IPS在完成Blocking時是使用telnet和SSH下發控制指令,是以阻攔裝置必須配置telnet和SSH功能以支援Blocking。而且建議使用SSH,因為在網絡中部署的IPS裝置本身就屬于安全裝置,是以安全裝置傳送的資料,更應該得到安全保障。
有加密的密鑰授權
如果您使用了SSH,那麼你必須具備加密算法的使用授權,這些加密算法包括DES、3DES、AES等,注意某些裝置上如果不激活授權許可,一些進階的加密算法将無法使用,比如在思科PIX防火牆上如果沒有激活授權許可,那麼AES将無法使用。
Blocking的實施指南建議
在實作Blocking時,建議在相關的裝置接口上配置防止位址欺騙技術,必須配置需要在blocking中被永遠排除的主機、定義要應用blocking的網絡入口點,明确使用哪種分類的blocking、隻為特定的SigID配置Blocking響應政策,不是所有SigID都需要配置blocking、決定适當的block時間。下面分别詳細來了解上述事項的意義:
防止位址欺騙技術,以及需要在blocking中确認被排除的主機
如下圖6.2所示,網絡環境中路由器R1需要使用E1/0的接口IP位址192.168.1.1通路AAA伺服器器,并且當網絡中的IPS配置了blocking功能時,IPS需要telnet或者SSH到192.168.1.1為路由器R1下發配置,如果,此時,網絡中有一黑客202.202.1.100僞造成R1的IP位址192.168.1.1去通路AAA伺服器,注意,在網絡世界中僞造一個IP位址是一件非常簡單的事情。如果此時IPS發現了這個僞造行為,并觸發了一個SigID的報警,如果在網絡上直接deny 192.168.1.1這個位址,這種解決方案雖然可以過濾掉位址僞造入侵,但是如果真正的路由器R1(192.168.1.1)要通路AAA伺服器就不行了,并且,此時IPS也無法通過192.168.1.1登陸到路由器R1去做blocking工作。是以防止位址欺騙技術,以及需要在blocking中确認被排除的主機是非常重要的工作。
<a href="http://blog.51cto.com/attachment/201309/135840355.png" target="_blank"></a>
具體做法如下:首先不要使用消極的方式來直接deny192.168.1.1這個位址,将192.168.1.1這個IP位址排除在blocking外,當然您在使用這個建議時要根據網絡中的實際情況來決定,然後使用防止位址欺騙技術來杜絕IP位址欺騙,比如在如圖6.2所示的網絡環境中,應該在邊界路由器R1的外部接口上完成如下配置:
在邊界路由器R1上完成防止位址欺騙技術的配置:
R1(config)#interface ethernet 1/1
R1(config-if)#ip verify unicast reverse-path* 啟動逆向路徑檢測功能
R1(config-if)#ip access-group 1 in
R1(config-if)#exit
R1(config)#access-list 1 deny 10.0.0.00.0.0.255
R1(config)#access-list 1 deny 172.16.0.0 0.240.255.255
R1(config)#access-list 1 deny 192.168.0.00.0.255.255
R1(config)#access-list 1 deny 127.0.0.0 0.255.255.255
R1(config)#access-list 1 permit any
關于上述ACL的配置說明:
在上述的ACL配置中,在邊界路由器的外部接口的入方向上直接拒絕了所有源位址是RFC1918所定義的私有網絡專用位址和環回測試位址進入内部網絡,為什麼要配置這樣的ACL,原因很簡單,因為從公共網絡上進入内部會話中的源IP位址永遠不可以是私有網絡專用位址,肯定是公共網絡的IP,這正是黑客利用管理者在執行網絡安全管控時的心理漏洞來入侵網絡的一種思路,因為管理者總會認為私有網絡專用位址是安全的,總會認為它是自己内部網絡中的IP位址。
定義要應用blocking的網絡入口點,确定使用哪種分類的blocking
Blocking技術實際上就是IPS關聯其它裝置,比如路由器、交換機、防火牆,然後在這些裝置上去動态的輸寫ACL,那麼确定這些ACL應用的網絡入口點(裝置的接口)這将是一種非常重要事情,因為在網絡上肯定有許多不同的裝置,當然也就包括了很多不同的網絡入口點,關于這一點的思考,可以參考ACL的應用做為标準。建議将blocking用于邊界網絡裝置的外部接口的入方向上,因為這樣可以在入侵流量進入網絡裝置之前就将其過濾掉。
注意:Blocking與思科的CBAC技術不能相容,因為IPS和CBAC技術都是要調整外部接入的通路控制清單,關于CBAC的更多資訊,請參看本專業系列教程的《防火牆技術》。
Blocking技術分為基于會話的blocking和基于主機的blocking,基于會話的blocking是過濾有明确目标位址和源位址的blocking,而基于主機的blocking是源位址是一個具有的明确的IP位址,而目标位址永遠都是any的通路控制清單。一般情況下,如果要攔阻多個來自同一攻擊源的blocking将使用基于主機的blocking技術,如果要攔阻不同攻擊源,那麼将使用基于會話的blocking。
注意:如果多個基于Connection(會話連接配接)的blocking都是使用相同的源位址即便是目标IP和端口不同,那麼,在檢測到這個會話三次後,這個基于Connection的blocking會自動轉換成基于host的blocking。
隻為特定的SigID配置Blocking響應政策,不是所有SigID都需要配置blocking
本章一直将描述blocking響應技術,但是大家不能先入為主,認為任何時候做blocking都是一個最好的選擇,事實上,在很多情況下我們隻會針對特點的SigID做blocking,比如LAND攻擊、UDP洪水攻擊等,并不是所有的SigID都适合做blocking,比如基于TCP的入侵檢測,最佳的action是reset,因為這是最簡單,也是最高效的解決方案。
了解Pre-blockACL和post-block ACL
現先來了解IPS是如何向網絡裝置輸寫ACL的,當被台路由器被配置成可以協同IPS完成block功能時,那麼IPS首先向路由器上輸寫如下圖6.3所示的ACL清單,事實上就是首先允許IPS自己,然後再允許其它所有資料包,如果某種流量觸發了SigID的block,那麼這個block行為的deny語句将在如圖6.3中的兩條語句之間進行插入。
<a href="http://blog.51cto.com/attachment/201309/140006895.png" target="_blank"></a>
但是現在有個問題:如下圖6.4所示,假設在路由器上原先就配置有ACL清單,如果IPS走來就在路由器上配置如圖6.3的ACL,那麼路由器上原來的ACL将被“繞過”也叫做被旁路掉,更簡單的說就是不生效,一切流量将被允許。此時,IPS在路由器上将原來的ACL折分為兩個ACL,如下圖6.4所示,一個是叫Pre-ACL一個叫Post-ACL,然後如果某種流量觸發了SigID的block,那麼這個block行為的deny語句将在Pre-ACL和Post-ACL之間插入,這樣就不會“繞過”原先配置的ACL。
<a href="http://blog.51cto.com/attachment/201309/140115315.png" target="_blank"></a>
決定适當的block時間
預設block的時間是半個小時,也就是說IPS在路由器或者其它裝置上所寫入ACL的時間為30分鐘,當30分鐘後,IPS會在路由器或者其它裝置上将原先寫入的ACL動态的删除,那麼使用者可以根據自身網絡的特性調整blocking的時間。
示範:思科IPS關聯其它裝置(路由器)完成blocking的項目案例
關于配置blocking的步驟:
n配置網絡裝置支援Telnet/SSH.
n在IPS上通過配置Know Hostkey擷取網絡裝置的密鑰。
n在IPS上選中相應的SigID的響應行為是block
n在IPS上配置block的全局屬性
示範目标:配置思科IPS關聯其它裝置(路由器)完成blocking
示範環境:如下圖6.5所示,
<a href="http://blog.51cto.com/attachment/201309/140235393.png" target="_blank"></a>
示範背景:将示範環境中的IPS配置成旁路模式,讓其監控交換機fa0/1和fa0/2接口的流量,當IPS發現流量中存在異常(攻擊流量)時,IPS将通過blocking關聯路由器R2攔阻網絡攻擊流量。注意在這個過程中,建議将IPS配置成旁路模式,如果配置成線上模式(inline)那麼攔阻将變成多此一舉的行為,因為本身線上模式的IPS就可以第一時間防禦攻擊,那麼再來實施blocking,在多數情況下将變得沒有意義。
示範步驟:
第一步:首先要配置交換機支援端口鏡像功能,因為IPS旁路模式的流量監控必須與交換機的端口鏡像功能協同使用,否則處于旁路的IPS将無法擷取監控流量。相關交換機上緊端口鏡像功能的配置如下所示,除此之外,還必須為路由器R1和R2完成基本配置,包括接口IP位址的配置,路由協定的啟動,至少要保證整個網絡可以正常通信。這是整個示範的基礎環境保障。
交換機端口鏡像的配置:
S1(config)#monitorsession 1 source interface fastEthernet 0/1
* 配置鏡像的源端口
S1(config)#monitorsession 1 source interface fastEthernet 0/2
S1(config)#monitorsession 1 destination interface fastEthernet 0/3
* 配置鏡像的目标端口
路由器R1的基本配置:
R1(config)#interface e1/0
R1(config-if)#ipaddress 192.168.201.1 255.255.255.0
R1(config-if)#noshutdown
R1(config)#interface e1/1
R1(config-if)#ipaddress 192.168.100.1 255.255.255.0
R1(config)#routerrip* 在路由器R1上啟動路由
R1(config-router)#noauto-summary* 關閉自動歸納功能
R1(config-router)#version 2 * 啟動RIP的2号版本
R1(config-router)#network192.168.100.0* 公告子網192.168.100.0
R1(config-router)#network192.168.201.0 * 公告子網192.168.201.0
R1(config-router)#exit
路由器R2的基本配置:
R2(config)#interfaceethernet 1/0
R2(config-if)#ipaddress 192.168.201.2 255.255.255.0
R2(config-if)#noshutdown
R2(config-if)#exit
R2(config)#interfaceethernet 1/1
R2(config-if)#ipaddress 192.168.200.1 255.255.255.0
R2(config)#router rip
R2(config-router)#no auto-summary
R2(config-router)#version 2
R2(config-router)#network192.168.201.0
R2(config-router)#network192.168.200.0
R2(config-router)#exit
第二步:配置IPS的G0/1接口工作在旁路模式下,關于這一點的配置細節在項目五中有較長的描述,在這裡就不做重複描述,如果配置正确,應該得到如下圖6.6所示的接口參數特性。
<a href="http://blog.51cto.com/attachment/201309/140345931.png" target="_blank"></a>
第三步:配置路由器R2支援Telnet/SSH功能,要使路由器R2支援被IPS進行SSH管理,必須為路由器R2配置登陸的使用者名、密碼、域名字尾、生成公私鑰對等,具體配置如下所示:
配置路由器R2支援SSH:
R2(config)#enablepassword ips*為路由器R2的enable使用者密配置密碼
R2(config)#usernamecisco password cisco* 配置SSH的使用者名與密碼
R2(config)#ip domain-nameips.com*配置路由器R2的域名字尾。
然後使用crypto key generate rsa指令在路由器本地生産公私鑰對,具體如下圖6.7所示,在這裡可以保持預設512的密鑰長度。
<a href="http://blog.51cto.com/attachment/201309/140445101.png" target="_blank"></a>
R2(config)#line vty0 4*進入虛拟控制終端的順序0-4
R2(config-line)#loginlocal*登陸時使用本地安全資料庫中的使用者名和密碼進行驗證。
R2(config-line)#transportinput ssh* 允許SSH傳入。
第四步:現在配置IPS上通過Known Host key擷取網絡裝置的密鑰。在IPS的圖型化配置界面下的configuration\SSH\Known HostKeys\的Add如下圖6.8所示,擷取路由器R2的密鑰。在IP Address中填入192.168.201.2位址後,單擊Retrieve Host Key可以自動擷取路由器R2的密鑰。
<a href="http://blog.51cto.com/attachment/201309/140547859.png" target="_blank"></a>
第五步:在IPS上配置相應的SigID的響應行為是block,在這個示範環境中,通過Sig ID來定位Sig1102的signature,然後選中Actions按鈕,如下圖6.9所示,當出現圖6.10的各個選項時,請選擇Request Blockconnection項,也就是當有違規的流量觸發Sig1102時,将攔阻這個違規的會話。
<a href="http://blog.51cto.com/attachment/201309/140626272.png" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201309/140703370.png" target="_blank"></a>
第六步:現在開始配置blocking的全局參數,在IDM配置環境中,導航到configuration/blocking/Blocking Properties如下圖6.11所示,關于每個選項具體的意義在圖中都有備注與解釋。
<a href="http://blog.51cto.com/attachment/201309/140818518.png" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201309/140913340.png" target="_blank"></a>
了解Sensor’s NAT address選項:
在該示範環境中Sensor’s NAT address選項可以不作任何配置,因為Sensor與網絡的通信沒有經過任何NAT路由器,但是如果是圖6.14所示的環境,就必須配置Sensor’s NAT address,回憶一下本項目中曾經描述過當使用Block功能時,IPS将會在路由器上去輸寫一條允許IPS自身通路路由器的ACL語句,在圖6.14的環境中,IPS原本的位址是192.168.2.100,如果它要控制R2實作Block功能,那麼它就需要在路由器R2上插入一條permit 192.168.2.100的ACL語句讓IPS可以成功的通路路由器R2,在這個特定的環境中,這條permit 192.168.2.100沒有任何意義,因為192.168.2.100經過了NAT路由器R1将源IP192.168.2.100翻譯成了202.202.1.2,是以對于路由器R2而言,它根本看到192.168.2.100這個IP位址,那麼,在此時就需要在IPS上配置Sensor’s NAT address為202.202.1.2,這樣IPS就可以在路由器R2上輸寫ACL時寫成permit202.202.1.2而不是192.168.2.100,這就是Sensor’sNAT address的意義。
<a href="http://blog.51cto.com/attachment/201309/141027176.png" target="_blank"></a>
最後是配置Blocking Device Interface選項,如下圖6.15所示,關于各項參數的意義如圖所示,在該環境中的攔阻裝置是路由器R2(192.168.201.2)并在E1/0接口的進入方向上實施攔阻。
<a href="http://blog.51cto.com/attachment/201309/141122290.png" target="_blank"></a>
當完成上述所有配置後,在沒有發啟正式的攻擊測試之前,可以來到攔阻裝置路由器R2上,使用show access-lists檢視路由器的ACL清單,如下圖6.16所示,可以看到一個名字IDS_ethernet1/0_in_0的ACL清單,其中有兩條語句:一條的表示允許IPS裝置192.168.201.254通路該路由器,另一條表示允許一切通路,如果某個違規流量觸發了配置了block功能的SigID,那麼deny(拒絕)違規流量的語句将在這兩條ACL語句之間插入具體内容。更多資訊請參看本項目的了解Pre-block ACL和post-block ACL部分。
<a href="http://blog.51cto.com/attachment/201309/141255628.png" target="_blank"></a>
第七步:正式開始使用LAND攻擊測試block的效果,首先當您發起LAND攻擊時,如果您前面所有的配置沒有錯誤,那麼攻擊流量将觸發Signature1102,然後此時會引發blocking行為,最後IPS會在攔阻裝置R2上插入拒絕LAND攻擊流量的ACL語句。下圖6.18所示為LAND攻擊觸發sig1102的告警事件,圖6.19所示為告警事件的詳細資訊,BlockConnectionRequested:true。
<a href="http://blog.51cto.com/attachment/201309/141411854.png" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201309/141412325.png" target="_blank"></a>
此時來到攔阻裝置R2上,通過show access-lists指令可以看到在IPS預配置的ACL中插入了deny LAND攻擊的流量,即源和目标是同一個IP位址,并且可以看到被拒絕的包有796個,Block成功。
<a href="http://blog.51cto.com/attachment/201309/141523111.png" target="_blank"></a>
本文轉自 kingsir827 51CTO部落格,原文連結:http://blog.51cto.com/7658423/1301503,如需轉載請自行聯系原作者