1. 程式人生 > >Cisco(思科)設備上建議關閉的不常用服務

Cisco(思科)設備上建議關閉的不常用服務

程序 應用 註意 align 機制 客戶端 路由 web瀏覽器 交互式登錄

cisco設備上有一些不常用的服務默認是打開的,為了安全性考慮,建議關閉掉這些服務,除非有特殊應用場景。下面就談談這些服務的作用以及操作命令。


一、Cisco發現協議

  CDP是一個Cisco專用協議,運行在所有Cisco產品的第二層,用來和其他直接相連的Cisco設備共享基本的設備信息。獨立於介質和協議。

  ×××再勘測×××中使用CDP信息,這種可能性是比較小的。因為必須在相同的廣播域才能查看CDP組播幀。所以,建議在邊界路由器上關閉CDP,或至少在連接到公共網絡的接口上關閉CDP。

  缺省情況下是啟用的。全局關閉CDP,使用no cdp run命令,關閉之後,應該使用show cdp驗證CDP是否已被關閉。


二、TCP和UDP低端口服務

  TCP和UDP低端口服務是運行在設備上的端口19和更低端口的服務。所有這些服務都已經過時:如日期和時間(daytime,端口13),測試連通性(echo,端口7)和生成字符串(chargen,端口19)。

  下面顯示了一個打開的連接,被連接的路由器上打開了chargen服務:

Router#telnet 192.168.1.254 chargen

  要在路由器上關閉這些服務,使用下面的配置:

Router(config)#no service tcp-small-servers

Router(config)#no service udp-small-servers

  關閉了這些服務之後,用下面方法進行測試,如:Router(config)#telnet 192.168.1.254 daytime

  

三、Finger

  Finger協議(端口79)允許網絡上的用戶獲得當前正在使用特定路由選擇設備的用戶列表,顯示的信息包括系統中運行的進程、鏈路號、連接名、閑置時間和終端位置。通過show user命令來提供的。

  Finger是一個檢測誰登錄到一臺主機的UNIX程序,而不用親自登錄到設備來查看。

  下面顯示了一個驗證finger服務被打開和如何關閉的例子:

Router#telnet 192.168.1.254 finger

  (connect 192.168.1.254 finger)

Router(config)#no ip finger

Router(config)#no service finger

  當對路由器執行一個finger操作時,路由器以show users命令的輸出來作為響應。要阻止響應,使用no ip finger命令,將關閉finger服務。在較老的版本中,使用no service finger命令。在較新版本中,兩個命令都適用。

  

四、IdentD

  IP鑒別支持對某個TCP端口身份的查詢。能夠報告一個發起TCP連接的客戶端身份,以及響應該連接的主機的身份。

  IdentD允許遠程設備為了識別目的查詢一個TCP端口。是一個不安全的協議,旨在幫助識別一個想要連接的設備。一個設備發送請求到Ident端口(TCP 113),目的設備用其身份信息作為響應,如主機和設備名。

  如果支持IP鑒別,×××者就能夠連接到主機的一個TCP端口上,發布一個簡單的字符串以請求信息,得到一個返回的簡單字符串響應。

  要關閉IdentD服務,使用下面的命令:Router(config)#no ip identd

  可以通過Telnet到設備的113端口來進行測試


五、IP源路由

  應該在所有的路由器上關閉,包括邊界路由器。可以使用下面的命令:Router(config)#no ip source-route禁止對帶有源路由選項的IP數據包的轉發。


六、FTP和TFTP

  路由器可以用作FTP服務器和TFTP服務器,可以將映像從一臺路由器復制到另一臺。建議不要使用這個功能,因為FTP和TFTP都是不安全的協議。

  默認地,FTP服務器在路由器上是關閉的,然而,為了安全起見,仍然建議在路由器上執行以下命令:Router(config)#no ftp-server write-enable (12.3版本開始);Router(config)#no ftp-server enable

  可以通過使用一個FTP客戶端從PC進行測試,嘗試建立到路由器的連接。


七、HTTP

  測試方法可以使用一個Web瀏覽器嘗試訪問路由器。還可以從路由器的命令提示符下,使用下面的命令來進行測試:Router#telnet 192.168.1.254 80;Router#telnet 192.168.1.254 443

  要關閉以上兩個服務以及驗證,執行以下的步驟:

Router(config)#no ip http server

Router(config)#no ip http secure-server

Router#telnet 192.168.1.254 80

Router#telnet 192.168.1.254 443

  註意:Cisco安全設備管理器(Security Device Manager,SDM)用HTTP訪問路由器,如果要用SDM來管理路由器,就不能關閉HTTP服務。

  如果選擇用HTTP做管理,應該用ip http access-class命令來限制對IP地址的訪問。此外,也應該用ip http authentication命令來配置認證。對於交互式登錄,HTTP認證最好的選擇是使用一個TACACS+或RADIUS服務器,

這可以 避免將enable口令用作HTTP口令。


八、SNMP

  SNMP可以用來遠程監控和管理Cisco設備。然而,SNMP存在很多安全問題,特別是SNMP v1和v2中。要關閉SNMP服務,需要完成以下三件事:

  *從路由器配置中刪除默認的團體字符串;

  *關閉SNMP陷阱和系統關機特征;

  *關閉SNMP服務。

  要查看是否配置了SNMP命令,執行show running-config命令。下面是用來完全關閉SNMP的配置命令:

Router(config)#no snmp-server community public RO

Router(config)#no snmp-server community private RW

Router(config)#no snmp-server enable traps

Router(config)#no snmp-server system-shutdown

Router(config)#no snmp-server trap-auth

Router(config)#no snmp-server

  前兩個命令刪除了只讀和讀寫團體字符串(團體字符串可能不一樣)。接下來三個命令關閉SNMP陷阱、系統關機和通過SNMP的認證陷阱。最後在路由器上關閉SNMP服務。關閉SNMP服務之後,使用show snmp命令驗證


九、域名解析

  缺省情況下,Cisco路由器DNS服務會向255.255.255.255廣播地址發送名字查詢。應該避免使用這個廣播地址,因為×××者可能會借機偽裝成一個DNS服務器。

  如果路由器使用DNS來解析名稱,會在配置中看到以下類似的命令:

Router(config)#hostname santa

Router(config)#ip domain-name claus.gov

Router(config)#ip name-server 200.1.1.1 202.1.1.1

Router(config)#ip domain-lookup

  可以使用show hosts命令來查看已經解析的名稱。

  因為DNS沒有固有的安全機制,易受到會話×××,在目的DNS服務器響應之前,×××先發送一個偽造的回復。如果路由器得到兩個回復,通常忽略第二個回復。

  解決這個問題,要麽確保路由器有一個到DNS服務器的安全路徑,要麽不要使用DNS,而使用手動解析。使用手動解析,可以關閉DNS,然後使用ip host命令靜態定義主機名。如果想阻止路由器產生DNS查詢,

要麽配置一個具體的DNS服務器(ip name-server),要麽將這些查詢作為本地廣播(當DNS服務器沒有被配置時),使用下面的配置:

Router#telnetwww.quizware.com80 (測試)

Router(config)#no ip domain-lookup(禁止dns查詢)

Router#telnetwww.cisco.com80(再次測試)

  

十、BootP

  BootP是一個UDP服務,可以用來給一臺無盤工作站指定地址信息,以及在很多其他情況下,在設備上加載操作系統(用它來訪問另一個運行有BOOTP服務的路由器上的IOS拷貝,將IOS下載到BOOTP客戶端路由器上)。

  該協議發送一個本地廣播到UDP端口67(和DHCP相同)。要實現這種應用,必須配置一個BootP服務器來指定IP地址信息以及任何被請求的文件。

  Cisco路由器能作為一臺BootP服務器,給請求的設備提供閃存中的文件,因為以下3個原因,應該在路由器閃關閉BootP:

  1. 不再有使用BootP的真正需求;

  2. BootP沒固有的認證機制。任何人都能從路由器請求文件,無論配置了什麽,路由器都將作出回復;

  3. 易受DoS×××。

  默認地,該服務是啟用的。要關閉BootP,使用下面的配置:Router(config)#no ip bootp server


十一、DHCP

  DHCP允許從服務器獲取所有的IP地址信息,包括IP地址、子網掩碼、域名、DNS服務器地址、WINS服務器地址哈、TFTP服務器地址和其他信息。Cisco路由器既能作為DHCP客戶端,也能作為服務器。

  在將Cisco路由器作為邊界路由器時,應該設置該路由器為DHCP客戶端的唯一的情形是,如果是通過DSL和線纜調制解調器連接到ISP,而ISP使用DHCP指定地址信息。否則,決不要將路由器設置為DHCP客戶端。

  同樣地,應該設置路由器為一臺DHCP服務器地唯一的情形是,當在一個SOHO環境中使用路由器,在這種小型的網絡中基本上這臺路由器是可以給PC指定地址的唯一設備。如果這樣做,確保在路由器外部接口上過濾UDP端口 67,這將阻止來自外部的DHCP和BootP請求。

  一般DHCP服務器是默認打開的。使用下面的配置關閉:Router(config)#no service dhcp這阻止路由器成為一臺DHCP服務器或者中繼代理


十二、PAD

  數據包組合/分拆(packet assembler/disassembler,PAD)用在X.25網絡上。以提供遠程站點間的可靠連接。

PAD能給×××提供有用的功能。假設×××能獲得直接連接在路由器上的設備的控制權,而如果路由器在運行PAD服務,它將接受任何PAD連接。

  要關閉這個服務,使用下面的命令:Router(config)#no service pad

  

十三、配置自動加載Cisco路由器啟動時,在出現CLI提示符之前,將經歷幾個測試階段、發現Cisco IOS和配置文件。路由器啟動時,通常會經過以下5個步驟:

  1. 加載並執行POST,發現ROM,測試硬件組件,如閃存和接口;

  2. 加載並執行引導自舉程序;

  3. 引導自舉程序發現並加載Cisco IOS映像文件。這些映像文件可以來自閃存、TFTP服務器或者閃存;

  4. 加載了Cisco IOS之後,發現並執行一個配置文件:配置文件儲存在NVRAM中,但如果NVRAM是空的,系統配置對話框開始,或者路由器使用TFTP來獲取一個配置文件;

  5. 給用戶CLI EXEC提示符。

  在發現一個Cisco IOS文件時,假定在NVRAM中沒有boot system命令,路由器首先在閃存中尋找有效的Cisco IOS映像文件。如果閃存中沒有IOS映像文件,路由器執行TFTP啟動,或者網絡啟動;

發送本地廣播請求從TFTP服務器上獲取操作系統文件。如果這個過程也失敗了,路由器從內存中加載IOS映像文件。

  因為啟動過程中用到TFTP,而對加載過程沒有安全保護。所以,不應該允許路由器使用該功能。要阻止該功能,使用下面的配置:

  Router(config)#no boot network remote-url-ftp:

  [[[//[username:[:password]@]location]/directory]/filename]-rcp:

  [[[//[username@]/location]/directory]/filename]-tftp:

  [[[//location]/directory]/filename

  加載了IOS映像之後,開始發現一個配置文件。如果在NVRAM中沒有配置文件,路由器會使用系統配置對話框來建立配置文件,或使用網路配置選項:使用TFTP廣播來發現配置文件。

所以,應該使用以下的命令關閉該特性:Router(config)#no service config


十四、關閉無根據ARP

  大多數Cisco路由器(缺省情況下)都會向外發送無根據的ARP消息,無論客戶端何時連接並基於PPP連接協商一個IP地址。ARP毒害×××主要利用的就是這種ARP消息。

  即使客戶端從一個本地地址池收到地址,Cisco路由器也會生成一個無根據的ARP傳送。

  禁止無根據ARP傳送,使用下面的命令:Router(config)#no ip gratuitous-arps


十五、關閉IP無類別路由選擇服務

  路由器可能會收到一些發往一個沒有網絡缺省路由的子網的數據包,如果啟用了IP無類別服務時,會將這些數據包轉發給最有可能路由的超網。

  要關閉IP無類別路由選擇,在全局配置模式下使用no ip classless命令


Cisco(思科)設備上建議關閉的不常用服務