|
7.遠程管理和網(wǎng)絡服務 管理員可以通過各種服務遠程管理網(wǎng)絡設備。一些常見的網(wǎng)絡服務包括SSH、超文本傳輸協(xié)議(HTTP)、SNMP和文件傳輸協(xié)議(FTP)。這些服務對管理員很有用,但它們也是攻擊者利用和獲取對設備的特權級別訪問權限的目標。它們都必須正確配置,以降低妥協(xié)的可能性。 7.1禁用明文管理服務 明文協(xié)議通過網(wǎng)絡“以明文形式”(即未加密)傳遞流量,并且是在廣泛使用加密之前設計的。因此,使用這些協(xié)議遠程管理關鍵設備可能會導致信息泄露,從而可能對設備和網(wǎng)絡安全產(chǎn)生不利影響。攻擊者可以通過常見的信息檢索技術(例如,網(wǎng)絡分析器或數(shù)據(jù)包捕獲實用程序)收集用戶名、密碼、配置信息和其他敏感數(shù)據(jù),從而危害設備或服務。 NSA建議使用加密服務來保護網(wǎng)絡通信并禁用所有明文管理服務(例如,Telnet,HTTP,F(xiàn)TP,SNMP1/2c)。這確保了捕獲網(wǎng)絡流量的對手無法輕易獲得敏感信息。有關如何啟用加密服務的詳細信息,請參閱7.11配置遠程網(wǎng)絡管理服務。 如果設備不支持加密協(xié)議,請將管理系統(tǒng)直接連接到控制臺或管理端口,或建立專用的帶外管理網(wǎng)絡以降低對手捕獲明文協(xié)議的能力。使用以下配置命令禁用Telnet服務: line vty 0 4 transport input noneline vty 5 15 transport input none 根據(jù)設備的不同,可能還需要將類似的配置應用于其他線路。如果特定設備上不存在VTY第5行到第15行,則無需執(zhí)行這些命令。 注意:這些命令還可能禁用默認情況下在線路上啟用的其他服務,包括SSH。有關如何啟用SSH的詳細信息,請參閱7.11.1配置SSH以進行遠程管理。 使用以下配置命令禁用HTTP服務: no ip http server 有關如何啟用安全HTTP服務的詳細信息,請參閱7.11.2配置HTTP以進行遠程管理。 通過使用以下配置命令刪除任何已配置的團體字符串,禁用版本1和2c的SNMP和SNMP陷阱服務: no snmp-server community<COMMUNITY_STRING> no snmp-server host<HOSTNAME_OR_IP_ADDRESS> <COMMUNITY_STRING> 有關如何啟用SNMP版本3的詳細信息,請參閱7.11.3配置SNMP以進行遠程管理。 使用以下配置命令刪除任何行,禁用普通文件傳輸協(xié)議(TFTP): no tftp-server<FILENAME> FTP服務通常不作為偵聽服務啟用,但該協(xié)議可以用作客戶端。使用以下配置命令刪除FTP憑據(jù): no ip ftp username no ip ftp password 7.2確保足夠的加密強度 某些加密服務要求生成公鑰和私鑰對,以便客戶端可以連接到服務器并對其進行身份驗證。此外,加密連接的客戶端和服務器可以為每個唯一連接共同建立一個私有會話密鑰。使用弱算法或少量位的加密連接使攻擊者更容易破解私有會話密鑰并解密在唯一連接期間傳輸?shù)乃袛?shù)據(jù)。 有關哪些算法和密碼經(jīng)國家安全局批準的國家安全系統(tǒng)(NSS)的指導,請參閱CNSSP 15。CNSSP 15要求在IETF文檔草案中進行了解釋:用于Internet協(xié)議安全(IPsec)的商業(yè)國家安全算法套件加密(IPsec)、用于TLS和DTLS 1.2和1.3的商業(yè)國家安全算法(CNSA)套件配置文件,以及用于安全外殼(SSH)的商業(yè)國家安全算法(CNSA)套件加密,https://datatracker./doc/draft-gajcowski-cnsa-ssh-profile/. 有關非NSS美國政府系統(tǒng)的相關要求和指南,請參閱NIST SP 800-52修訂版2附錄F。 這些文檔包含最新推薦的加密參數(shù)。 NSA建議將3072位或更高位用于非對稱(公鑰和私鑰)密鑰生成,384位用于橢圓曲線加密(ECC)密鑰,256位用于對稱加密密鑰。某些系統(tǒng)可能不支持3072位,因此可能需要改用4096位。對于密鑰大小較小的任何設備,請重新生成新的密鑰對,并將加密協(xié)議配置為僅使用批準的算法。較大的密鑰大小可能會增加連接到服務的時間(由于額外的計算),但在大多數(shù)設備上可以忽略不計。有關配置加密服務的詳細信息,請參閱7.11配置遠程網(wǎng)絡管理服務。 7.3利用安全協(xié)議 一些常見的管理服務實現(xiàn)的協(xié)議在實現(xiàn)和信息交換方面存在缺陷,這些漏洞可能被攻擊者利用。某些協(xié)議(如SSH)可以配置為向后兼容,并接受較舊的不安全協(xié)議以及較新的協(xié)議。較舊的協(xié)議受中間人技術的約束,這些技術可能迫使客戶端和服務器協(xié)商較弱的算法,可能沒有用戶意識。 NSA建議確保管理服務使用最新版本的協(xié)議,并充分啟用適當?shù)陌踩O置。SSH版本2是遠程訪問設備的首選方法。應將加密的HTTP服務器配置為僅接受傳輸層安全性(TLS)版本1.2或更高版本。有關將服務限制為特定版本的協(xié)議的詳細信息,請參閱7.11配置遠程網(wǎng)絡管理服務。 7.4限制對服務的訪問 如果允許大量設備連接到管理服務,則它們更容易被利用。NSA建議將ACL配置為僅允許管理系統(tǒng)連接到設備以進行遠程管理。無法支持ACL的設備應放置在單獨的網(wǎng)絡管理網(wǎng)段(例如VLAN)上。 創(chuàng)建后,應將ACL應用于該VLAN或入口路由器,以限制對此網(wǎng)段的訪問??赡苄枰陉P鍵網(wǎng)段前面實施單獨的防火墻,以限制哪些系統(tǒng)可以連接到該VLAN。請考慮使用具有保留IP地址的動態(tài)主機配置協(xié)議(DHCP),或為管理系統(tǒng)分配具有靜態(tài)IP地址,以便更輕松地定義ACL并限制對管理服務的管理訪問。 大多數(shù)管理服務只接受標準ACL??梢允褂胮ermit關鍵字在附加行上列出多個設備或網(wǎng)絡。即使每個ACL在最后都有一個隱含的拒絕語句,但最佳做法是顯式包含它,以便記錄被拒絕的嘗試。創(chuàng)建標準ACL以僅允許管理員使用以下配置命令使用的IP地址: access-list<ACL#>permit<NETWORK><WILDCARD_MASK>log access-list<ACL#> deny any log 有關如何將ACL應用于特定管理服務的詳細信息,請參閱7.11配置遠程網(wǎng)絡管理服務。 NSA還建議從配置中刪除未使用的ACL,以減少有關是否正確應用它們的混淆。驗證未應用標準ACL后,使用以下配置命令將其刪除: no access-list<ACL#> 7.5設置可接受的超時期限 為空閑連接設置超時期限允許會話在規(guī)定的非活動時間后關閉。如果未設置超時期限或設置得太長,則空閑連接可能會無限期地繼續(xù),如果設備上設置了有限的同時連接,甚至會導致DoS。DoS將一直持續(xù)到達到空閑超時期限為止,如果禁用了空閑超時,則該超時期限可能是無限期的。較長的超時期限為攻擊者提供了更多的時間在會話處于空閑狀態(tài)時劫持會話。 NSA建議在所有遠程設備上將管理連接的會話超時設置為五分鐘或更短時間(例如,VTY線路、SSH、控制臺和輔助端口上的執(zhí)行超時)。請勿將超時期限設置為零,因為大多數(shù)設備將使用此設置禁用超時功能。有關限制特定管理服務的會話超時的詳細信息,請參閱7.11配置遠程網(wǎng)絡管理服務。 7.6啟用傳輸控制協(xié)議(TCP)保持活動狀態(tài) 從設備發(fā)送和接收的TCP保持活動狀態(tài)消息允許它在給定時間范圍內未發(fā)生任何活動時評估連接狀態(tài)。這些消息可用于檢測連接中的意外丟失,并減輕潛在的網(wǎng)絡危害。在某些設備上,缺少TCP保持活動狀態(tài)服務會導致已建立的TCP連接在一端意外丟失連接后保持打開狀態(tài),從而使會話容易受到劫持。此外,甚至可能不需要身份驗證,特別是對于未加密的連接,并且攻擊者可以簡單地恢復會話,從而可能獲得特權級別訪問權限。 NSA建議使用以下配置命令為所有TCP連接的入站和出站消息啟用TCP保持活動狀態(tài)設置: service tcp-keepalives-in service tcp-keepalives-out 請注意,某些設備不支持TCP保持活動狀態(tài)消息的配置。 7.7禁用出站連接 通過管理端口對設備進行身份驗證后,用戶通常能夠通過支持的協(xié)議(例如,Telnet和SSH)遠程連接到網(wǎng)絡上的其他系統(tǒng)。如果攻擊者能夠破壞設備或使用管理員賬戶獲得用戶級訪問權限,則此出站連接可能用于通過網(wǎng)絡前進。正確檢查設備配置并利用ACL可以防止未經(jīng)授權的系統(tǒng)訪問網(wǎng)絡資源。 通過管理端口對設備進行身份驗證后,用戶通常能夠通過支持的協(xié)議(例如,Telnet和SSH)遠程連接到網(wǎng)絡上的其他系統(tǒng)。如果攻擊者能夠破壞設備或使用管理員賬戶獲得用戶級訪問權限,則此出站連接可能用于通過網(wǎng)絡前進。 正確檢查設備配置并利用ACL可以防止未經(jīng)授權的系統(tǒng)訪問網(wǎng)絡資源。 line con 0transport output noneline vty 0 4 transport output noneline vty 5 15 transport output none 根據(jù)設備的不同,可能還需要將類似的配置應用于其他線路。如果特定設備上不存在VTY第5行到第15行,則無需執(zhí)行這些命令。請務必注意,必須在控制臺線路上顯式禁用此功能。 如果需要出站連接才能將文件復制到設備或從設備復制文件以進行維護或完整性驗證,請將其限制為僅SSH,并限制可通過出站ACL訪問的設備數(shù)量;任務完成后,恢復為上述配置。 8刪除SNMP讀寫社區(qū)字符串 SNMP版本1或2c讀寫社區(qū)字符串類似于密碼,可用于訪問或修改設備配置和操作系統(tǒng)文件。這些操作通常不能使用只讀社區(qū)字符串完成。由于SNMP讀寫社區(qū)字符串以明文形式發(fā)送,因此攻擊者可以利用它們來完全控制網(wǎng)絡設備。 NSA建議刪除所有SNMP讀寫社區(qū)字符串,并通過加密和身份驗證升級到SNMP版本3。如果遠程管理需要版本1或2c SNMP讀寫社區(qū)字符串并且無法刪除,則建議讀寫社區(qū)字符串與其他社區(qū)字符串明顯不同,以防止攻擊者在獲得只讀社區(qū)字符串時猜測讀寫社區(qū)字符串。 所有版本1和2c SNMP社區(qū)字符串都可以使用以下exec命令列出:show running-config | include snmp-server community 注意:讀寫社區(qū)字符串將包含RW關鍵字,而只讀社區(qū)字符串將包含RO關鍵字。 使用以下配置命令禁用SNMP讀寫團體字符串: no snmp-server community<COMMUNITY_STRING> 9禁用不必要的網(wǎng)絡服務 在設備的初始安裝期間,默認情況下會啟用多個TCP和UDP服務,即使提供的功能對于正常操作是不必要的。 這些服務可能會降低網(wǎng)絡的安全級別,為對手提供額外的接入點來利用設備,并使其容易受到未經(jīng)授權的監(jiān)控,信息收集和破壞。 例如,Cisco智能安裝通常是不必要的,但是當啟用時,未經(jīng)身份驗證的遠程對手可以使用此服務來獲取設備的配置文件、上傳新的配置或操作系統(tǒng)映像文件,或者強制重新啟動。這在思科的安全公告cisco-sa-20170214-smi中已被記錄為對該協(xié)議的濫用,但安全社區(qū)已經(jīng)觀察到并承認這個問題是攻擊者利用的嚴重漏洞來獲取互聯(lián)網(wǎng)上的配置文件。 NSA建議在每臺設備上禁用所有不必要的服務。如果服務是必需的,并且可以支持密碼和ACL,請根據(jù)NSA的強密碼指南創(chuàng)建密碼(請參閱5.5創(chuàng)建強密碼),并應用ACL以僅允許所需的系統(tǒng)連接到服務。如果設備不支持ACL,則可以將其移動到單獨的VLAN,并且可以將ACL應用于VLAN。 NSA還建議使用以下配置命令在所有設備上立即禁用Cisco智能安裝服務: no vstack 盡管此服務是為交換機設計的,但路由器也可以配置為思科智能安裝控制器。因此,應在所有設備上顯式禁用它,尤其是在首次配置它們時。 使用以下配置命令禁用其他不必要的TCP和UDP服務: no service tcp-small-servers no service udp-small-servers no service finger 10禁用特定接口上的發(fā)現(xiàn)協(xié)議 思科發(fā)現(xiàn)協(xié)議(CDP)和鏈路層發(fā)現(xiàn)協(xié)議(LLDP)是廣播協(xié)議,它們定期將網(wǎng)絡拓撲和設備信息通告到支持該協(xié)議并偵聽數(shù)據(jù)包的相鄰設備。默認情況下,此功能處于啟用狀態(tài),對于管理員獲取有關網(wǎng)絡的信息非常有用,但對于可以被動收集網(wǎng)絡配置信息的對手來說,此功能也非常有用。能夠部署嗅探器的對手可以收集設備型號、操作系統(tǒng)版本、VLAN信息以及物理和邏輯地址,從而獲得有價值的信息以利用網(wǎng)絡上的系統(tǒng)。 NSA建議在能夠使用這些服務的所有設備上禁用CDP和LLDP。如果正確的網(wǎng)絡通信(例如,某些Cisco IP 語音 (VoIP) 電話)需要服務,則僅在需要該協(xié)議的設備之間的點對點鏈路上或在啟用語音的端口上啟用該服務。 可以使用以下配置命令全局禁用CDP和LLDP: no cdp run no lldp run 如果特定接口上需要CDP,則必須全局啟用CDP,但在所有其他接口上禁用CDP,如以下單個接口的配置命令所示: interface<INTERFACE> no cdp enable 11配置遠程網(wǎng)絡管理服務 本節(jié)介紹如何正確啟用常見的遠程網(wǎng)絡管理服務。 11.1配置SSH以進行遠程管理 使用以下配置命令允許入站SSH連接: line vty 0 4 transport input ssh line vty 5 15 transport input ssh 注意:默認情況下,這可能會禁用線路上啟用的其他服務,例如Telnet。如果特定設備上不存在VTY第5行到第15行,則無需執(zhí)行這些命令。根據(jù)設備的不同,可能還需要將類似的配置應用于其他線路。 可以使用以下exec命令確認允許的輸入傳輸: show line<LINE> <LINE_NUMBER> 禁用SSH版本1連接,并且僅允許使用以下配置命令的協(xié)議版本2: ip ssh version 2 使用以下配置命令為SSH生成新的非對稱Rivest-Shamir-Adleman(RSA)密鑰對: crypto key generate rsa modulus 3072 注意:此命令將覆蓋現(xiàn)有的RSA密鑰對。 使用以下配置命令為SSH生成新的非對稱ECC密鑰對: crypto key generate ec keysize 384 注意:此命令將覆蓋現(xiàn)有的ECC密鑰對。 使用以下配置命令將最小Diffie-Hellman密鑰大小設置為4096位: ip ssh dh min 4096 注意:某些設備不支持Diffie-Hellman密鑰大小的3072位,因此建議使用4096位。 可以使用以下配置命令指定SSH協(xié)議接受的加密、密鑰交換(KEX)和消息身份驗證代碼算法(以包括首選順序): ip ssh server algorithm mac<ALGORITHM>[<ALGORITHM> ] 有關可接受算法的更多信息,請參閱CNSSP 15。CNSSP 15 要求在 IETF 關于安全外殼(SSH)的商業(yè)國家安全算法(CNSA)套件加密的草案文檔中進行了解釋。https://datatracker./doc/draft-gajcowski-cnsa-ssh-profile/ 可以使用以下exec命令確認SSH服務的配置: show ip ssh 應用標準 ACL 以僅允許管理員使用以下配置命令使用的 IP 地址: line vty 0 4 access-class<ACL#> in line vty 5 15 access-class<ACL#>in 如果特定設備上不存在VTY第5行到第15行,則無需執(zhí)行這些命令。請注意,如果在線路上啟用了此ACL,則此ACL也適用于Telnet。根據(jù)設備的不同,可能還需要將類似的配置應用于其他線路。有關創(chuàng)建標準ACL的詳細信息,請參閱7.4限制對服務的訪問。 使用以下配置命令將會話過期時間設置為 5 分鐘或更短時間: line con 0 exec-timeout 5 0 line vty 0 4 exec-timeout 5 0 line vty 5 15 exec-timeout 5 0 如果特定設備上不存在VTY第5行到第15行,則無需執(zhí)行這些命令。 注意:如果在線路上啟用了Telnet,這也將適用于Telnet。根據(jù)設備的不同,可能還需要將類似的配置應用于其他線路。 11.2 為遠程管理配置HTTP 如果HTTP用于管理目的,請使用以下配置命令啟用基于TLS的HTTP: ip http secure-server 僅使用以下配置命令接受 TLS 版本 1.2: ip http tls-version TLSv1.2 可以使用以下配置命令指定加密 HTTP 服務接受的密碼套件(以包括首選順序): ip http secure-ciphersuite<CIPHERSUITE> [<CIPHERSUITE> ] 有關可接受算法的更多信息,請參閱 CNSSP 15。CNSSP 15 要求在 IETF 關于TLS和DTLS 1.2 和 1.3 的商業(yè)國家安全算法(CNSA)套件配置文件文檔草案中進行了說明。 應用標準 ACL 以僅允許管理員使用以下配置命令使用的 IP 地址: 注意:如果啟用了明文 HTTP 服務,則此 ACL 也將應用于明文 HTTP 服務。有關創(chuàng)建標準ACL 的詳細信息,請參閱 7.4限制對服務的訪問。 HTTP 服務器連接的默認空閑超時為 180 秒(三分鐘),因此無需更改此值。 11.3配置 SNMP以進行遠程管理 如果使用 SNMP 進行管理,請使用以下配置命令啟用具有身份驗證和隱私(加密)功能的 SNMP 版本 3: snmp-server group<SNMPv3_GROUP> v3 priv access <ACL#> snmp-server user<USER> <SNMPv3_GROUP> v3 auth sha <AUTH_PASSWORD>priv aes 首先,必須定義一個組,其中priv 關鍵字等效于 authPriv(身份驗證和隱私)。必須定義一個或多個用戶并將其分配給組。除了身份驗證和加密參數(shù)之外,還必須為每個用戶提供兩個不同的密碼,一個用于身份驗證,一個用于隱私。AES-192 和 AES-256 的互操作性問題已發(fā)現(xiàn),因此可能需要使用 AES-128 進行加密,而不是使用 AES-256 和 aes 128 關鍵字。如上所示,ACL 可以應用于組和每個用戶,方法是在每個命令的末尾使用 access 關鍵字將其指定為單獨的選項。 可以使用以下 shell 命令從 Linux 系統(tǒng)測試上述 SNMP 配置: snmpget -v 3 -u<USER>-a sha -l authPriv -A '<AUTH_PASSWORD>' -x AES \ -X '<PRIV_PASSWORD>'<IP_ADDRESS>1.3.6.1.2.1.1.5.0 |
|
|