路由器是網絡中的神經中樞,廣域網就是靠一個個路由器連接起來組成的,局域網中也已經普片的應用到了路由器,在很多企事業單位,已經用到路由器來接入網絡進行數據通訊了,可以說,曾經神秘的路由器,現在已經飛入尋常百姓家了.
隨著路由器的增多,路由器的安全性也逐漸成為大家探討的一個熱門話題了,巖冰今天也講一講網絡安全中路由器的安全配置吧.以下文章是本人在工作過程中所記錄的學習筆記,今天整理出來,跟大家共享,也算是拋磚引玉吧.
1.配置訪問控制列表:
使用訪問控制列表的目的就是為了保護路由器的安全和優化網絡的流量.訪問列表的作用就是在數據包經過路由器某一個端口時,該數據包是否允許轉發通過,必須先在訪問控制列表里邊查找,如果允許,則通過.所以,保護路由器的前提,還是先考慮配置訪問控制列表吧.
訪問列表有多種形式,最常用的有標準訪問列表和擴展訪問列表.
創建一個標準訪問控制列表的基本配置語法:access-list access-list-number{deny|permit} source [source-wildcard]
注釋:access-list-number是定義訪問列表編號的一個值,范圍從1--99.參數deny或permit指定了允許還是拒絕數據包.參數source是發送數據包的主機地址.source-wildcard則是發送數據包的主機的通配符.在實際應用中,如果數據包的源地址在訪問列表中未能找到,或者是找到了未被允許轉發,則該包將會被拒絕.為了能詳細解釋一下,下面是一個簡單訪問列表示例介紹:
1) access-list 3 permit 172.30.1.0 0.0.0.255 */指明一個列表號為3的訪問控制列表,并允許172.30.1.0這個網段的數據通過.0.0.0.255是通配符.
2) access-list 3 permit 10.1.1.0 0.0.15.255 */允許所有源地址為從10.1.0.0到10.1.15.255的數據包通過應用了該訪問列表的路由器接口.
3) access-list 3 deny 172.31.1.0 0.0.0.255 */拒絕源IP地址為172.31.1.0到172.31.1.255的數據包通過該訪問列表.
配置了訪問列表后,就要啟用訪問控制列表,我們可以在接口配置模式下使用access-group或ip access-class命令來指定訪問列表應用于某個接口.使用關鍵字in(out)來定義該接口是出站數據包還是入站數據包.
示例:ip access-group 3 in */定義該端口入站數據包必須按照訪問列表3上的原則.
由于標準訪問控制列表對使用的端口不進行區別,所以,引入了擴展訪問控制列表(列表號從100--199).擴展訪問列表能夠對數據包的源地址,目的地址和端口等項目進行檢查,這其中,任何一個項目都可以導致某個數據包不被允許經過路由器接口.簡單的配置示例:
1) ip access-list 101 permit tcp any host 10.1.1.2 established log
2) ip access-list 101 permit tcp any host 172.30.1.3 eq www log
3) ip access-list 101 permit tcp any host 172.30.1.4 eq ftp log
4) ip access-list 101 permit tcp any host 172.30.1.4 log
注釋:
第一行允許通過TCP協議訪問主機10.1.1.2,如果沒個連接已經在主機10.1.1.2和某個要訪問的遠程主機之間建立,則該行不會允許任何數據包通過路由器接口,除非回話是從內部企業網內部發起的.第二行允許任何連接到主機172.30.1.3來請求www服務,而所有其他類型的連接將被拒絕,這是因為在訪問列表自動默認的在列表尾部,有一個deny any any語句來限制其他類型連接.第三行是拒絕任何FTP連接來訪問172.30.1.4主機.第四行是允許所有類型的訪問連接到172.30.1.4主機.
2.保護路由器的密碼
1)禁用enable password命令,改密碼加密機制已經很古老,存在極大安全漏洞,必須禁用,做法是:no enable password
2)利用enable secret命令設置密碼,該加密機制是IOS采用了MD5散列算法進行加密,具體語法是:enable secret[level level] {password|encryption-type encrypted-password}
舉例:
Ro(config-if)#enable secret level 9 ~@~!79#^&^089^ */設置一個級別為9級的~@~!79#^&^089^密碼
Ro(config-if)#service router-encryption */啟動服務密碼加密過程
enable secret命令允許管理員通過數字0-15,來指定密碼加密級別.其默認級別為15.
3.控制telnet訪問控制
為了保護路由器訪問控制權限,必須限制登陸訪問路由器的主機,針對VTY(telnet)端口訪問控制的方法,具體配置要先建立一個訪問控制列表,如下示例,建立一個標準的訪問控制列表(編號從1--99任意選擇):
access-list 90 permit 172.30.1.45
access-list 90 permit 10.1.1.53
該訪問列表僅允許以上兩個IP地址之一的主機對路由器進行telnet訪問,注意:創建該列表后必須指定到路由器端口某個端口上,具體指定方法如下:
line vty E0 4
access-class 90 in
以上配置是入站到E0端口的telnet示例,出站配置采用out,在這里將不再詳細贅述.為了保護路由器的安全設置,也可以限制其telnet訪問的權限,比如:通過分配管理密碼來限制一個管理員只能有使用show命令的配置如下:
enable secret level 6 123456
privilege exec 6 show
給其分配密碼為123456,telnet進入路由器后,只能用show命令,其他任何設置權限全部被限制.另外,也可以通過訪問時間來限制所有端口的登陸訪問情況,在超時的情況下,將自動斷開,下面是一個配置所有端口訪問活動3分30秒的設置示例:
exec-timeout 3 30
4.禁止CDP
CDP(Cisco Discovery Protocol)CISCO查找協議,該協議存在CISCO11.0以后的IOS版本中,都是默認啟動的,他有一個缺陷就是:對所有發出的設備請求都做出應答.這樣將威脅到路由器的泄密情況,因此,必須禁止其運行,方法如下:
no cdp run
管理員也可以指定禁止某端口的CDP,比如:為了讓路由器內部網絡使用CDP,而禁止路由器對外網的CDP應答,可以輸入以下接口命令:
no cdp enable
5.HTTP服務的配置
現在許多CISCO設備,都允許使用WEB界面來進行控制配置了,這樣可以為初學者提供方便的管理,但是,在這方便的背后,卻隱藏了很大的危機,為了能夠配置好HTTP服務,本文也提一下如何配置吧.
使用ip http server命令可以打開HTTP服務,使用no ip http server命令可以關閉HTTP服務.為了安全考慮,如果需要使用HTTP服務來管理路由器的話,最好是配合訪問控制列表和AAA認證來做,也可以使用enable password命令來控制登陸路由器的密碼.具體的配置是在全局模式下來完成的,下面是我們創建一個簡單的標準訪問控制列表配合使用HTTP服務的示例:
ip http server */打開HTTP服務
ip http port 10248 */定義10248端口為HTTP服務訪問端口
access-list 80 permit host 10.0.0.1 */創建標準訪問列表80,只允許10.0.0.1主機通過
ip http access-class 80 */定義了列表號為80的標準訪問列表為HTTP服務允許訪問的
ip http authentication aaa tacacs */增加AAA認證服務來驗證HTTP控制的主機
6.寫在最后的話
保護路由器并不是這樣簡單的事情,在很多實際應用中,還需要很多輔助配置.為了保護路由器,各種各樣的安全產品都相繼出現,比如給路由器添加硬件防火墻,配置AAA服務認證,設置IDS入侵檢測等等吧.為了維護路由器的安全穩定工作,我要告訴大家最重要的還是配置最小化IOS,沒有服務的設備,肯定沒有人能夠入侵,最小化的服務就是我們最大化的安全