0×1.思科路由密碼安全淺析
對(duì)路由器最直接有效的攻擊手段就是獲取管理密碼(vty密碼和特權(quán)密碼等)蹈胡,保護(hù)路由器密碼安全的方法包括:
設(shè)置一個(gè)復(fù)雜的密碼:一個(gè)強(qiáng)密碼應(yīng)該具有的特點(diǎn)是"包含數(shù)字土铺、包含大寫字母火鼻、包含小寫字母舱呻、包含特殊符號(hào)";不要在密碼中使用生日格式如:19901203;不要在密碼中使用英文字典中最常用的單詞如:hello等;不要在密碼中包含電話號(hào)碼避乏、區(qū)號(hào)、手機(jī)號(hào)等甘桑。因?yàn)檫@些東西能很容易的放入壞人暴力猜解的字典中進(jìn)行組合拍皮,最后就能獲得你的密碼。對(duì)配置文件中的密碼實(shí)行加密:在全局配置模式下輸入這條命令"service password-encryption"能夠?qū)λ忻艽a進(jìn)行加密跑杭,雖然這種加密可以破解铆帽,但至少增加了一道防線。特權(quán)密碼的設(shè)置:創(chuàng)建特權(quán)密碼應(yīng)該使用"enable secret"而不是"enable password"德谅。設(shè)置密碼最小長(zhǎng)度:在全局配置模式下輸入"security passwords min-length 12"爹橱,可以將密碼的最小長(zhǎng)度設(shè)置成12位。密碼存放:不要將密碼隨便的記錄在一臺(tái)不安全的計(jì)算機(jī)的文本文件里窄做;如果你將密碼寫在紙上愧驱,在密碼更改以前不要隨便將這張紙丟進(jìn)垃圾桶慰技,因?yàn)閴娜丝梢詮睦胺龊芏嗝舾行畔ⅲ渲芯桶愕拿艽a冯键,或者你習(xí)慣的編碼方式。
0×2.如何限制遠(yuǎn)程訪問(wèn)
可以使用ACL來(lái)設(shè)置僅允許管理員的IP登錄這臺(tái)設(shè)備的VTY終端:
01
R1>
en
02
R1#
conf
t
03
/啟用路由密碼加密庸汗,會(huì)將所有配置中的明文密碼都加密存放/
04
R1(config)#service
password
-encryption
05
06
/設(shè)置密碼最小長(zhǎng)度是12/
07
R1(config)#security passwords min-length 12
08
09
/如果密碼長(zhǎng)度不夠?qū)⒉粫?huì)配置成功/
10
R1(config)#
enable
secret
123
11
% Password too short - must be at least 12 characters. Password configuration failed
12
R1(config)#
enable
secret
www.qingsword.com
13
14
/*
15
- 使用ACL允許192.168.1.200訪問(wèn)惫确,這里演示使用了一個(gè)簡(jiǎn)單ACL,
16
- 如果使用其他網(wǎng)管軟件管理路由蚯舱,可以使用復(fù)雜ACL允許管理IP和軟件相應(yīng)的端口改化。
17
*/
18
R1(config)#
access-list
1
permit
192.168.1.200
19
R1(config)#line
vty
0 4
20
R1(config-line)#
password
ccna
21
/因?yàn)榍懊嬖O(shè)置了密碼最小長(zhǎng)度是12個(gè)字符,所以這里報(bào)錯(cuò)了枉昏。/
22
% Password too short - must be at least 12 characters. Password configuration failed
23
R1(config-line)#
password
www.qingsword.com
24
R1(config-line)#
access-class
1 in /將ACL 1應(yīng)用于VTY/
25
R1(config-line)#
login
26
R1(config-line)#
end
這樣設(shè)置后陈肛,VTY 0-4號(hào)線路就只有IP是192.168.1.200這個(gè)用戶可以連上了。
0×3.如何使用SSH代替Telnet
Telnet使用明文的方式傳輸密碼兄裂,在Internet上使用明文傳輸密碼是非常不安全的句旱,可以通過(guò)SSH(Secure Shell)遠(yuǎn)程登錄和管理路由,SSH傳輸?shù)臅r(shí)候使用RSA加密晰奖,就算數(shù)據(jù)包被捕獲谈撒,也是RSA加密后的數(shù)據(jù)包。
下面在GNS3中來(lái)做一下這個(gè)實(shí)驗(yàn)匾南,設(shè)備連線與IP地址如下圖(圖1)所示啃匿,在R1上配置允許ssh連接的vty線路:
![圖1](https://www.qingsword.com/qing/images/Cisco-CCNA-route-security-1.jpg)
R1配置:
01
Router>
en
02
Router#
conf
t
03
04
/一定要改變路由默認(rèn)的名稱并且配置一個(gè)域名,用來(lái)生成密鑰/
05
Router(config)#
host
R1
06
R1(config)#
ip
domain name www.qingsword.com
07
08
/生成
rsa
非對(duì)稱密鑰蛆楞,可以看到輸出中
key
的名字就是我們上面配置的路由名稱和域名的組合/
09
R1(config)#
crypto
key
generate
rsa
10
The name for the keys will be: R1.www.qingsword.com
11
Choose the size of the
key
modulus in the range of 360 to 2048 for your
12
General Purpose Keys. Choosing a
key
modulus greater than 512 may take
13
a few minutes.
14
15
/*
16
- 輸入密鑰長(zhǎng)度溯乒,直接回車則使用默認(rèn)長(zhǎng)度,
17
- 長(zhǎng)度可以是360到2048豹爹。
18
*/
19
How many bits in the modulus [512]:
20
% Generating 512 bit RSA keys, keys will be non-exportable...[OK]
21
22
/配置本地的用戶名和密碼用于
ssh
驗(yàn)證登陸/
23
R1(config)#
username
qingsword
password
www.qingsword.com
24
25
/配置
vty
線路0~4/
26
R1(config)#line
vty
0 4
27
/僅允許
ssh
登陸/
28
R1(config-line)#
transport
input
ssh
29
/使用本地創(chuàng)建的用戶密碼驗(yàn)證/
30
R1(config-line)#
login
local
31
R1(config-line)#
exit
32
33
/*
ssh
選項(xiàng)裆悄,連接
ssh
后30秒未操作則超時(shí)*/
34
R1(config)#
ip
ssh
time-out 30
35
/允許三次密碼錯(cuò)誤嘗試/
36
R1(config)#
ip
ssh
authentication
-retries 3
37
38
/配置特權(quán)密碼/
39
R1(config)#
enable
secret
www.qingsword.com
40
41
/配置接口IP/
42
R1(config)#
int
s 0/0
43
R1(config-if)#
ip
add
12.1.1.1 255.255.255.0
44
R1(config-if)#
no
shut
45
R1(config-if)#
end
R2配置:
01
R2(config)#
int
s 0/0
02
R2(config-if)#
ip
add
12.1.1.2 255.255.255.0
03
R2(config-if)#
no
shu
04
R2(config-if)#
end
05
06
/完成后確保R2可以
ping
通R1,然后在R2上使用
ssh
命令登陸R1臂聋,-l參數(shù)后面是R1上創(chuàng)建的用戶名/
07
R2#
ssh
-l qingsword 12.1.1.1
08
Password: www.qingsword.com
09
R1>/登陸成功/
10
11
/大家可以嘗試下R2上telnet連接R1灯帮,如果配置無(wú)誤此時(shí)telnet是無(wú)法連接的/
0×4.如何記錄日志
通常使用Console端口對(duì)路由進(jìn)行配置時(shí),可以看到來(lái)自路由的監(jiān)控提示消息逻住,比如開啟或關(guān)閉一個(gè)端口就會(huì)出現(xiàn)相應(yīng)的提示钟哥,但是通過(guò)VTY遠(yuǎn)程登錄的時(shí)候卻看不到這些提示,也看不到Debug命令的輸出瞎访,這是因?yàn)樘摂M終端默認(rèn)情況下是關(guān)閉監(jiān)控的腻贰,可以使用下面的命令來(lái)打開監(jiān)控:
01
/接著上面的實(shí)驗(yàn),在R2
ssh
登陸R1后扒秸,在R1上創(chuàng)建一個(gè)回環(huán)接口/
02
R2#
ssh
-l qingsword 12.1.1.1
03
Password: www.qingsword.com
04
R1>
en
05
Password: www.qingsword.com
06
R1#
conf
t
07
R1(config)#
int
lo
0
08
/切換到R1的控制臺(tái)播演,控制臺(tái)中出現(xiàn)了下面這種新接口啟用的輸出冀瓦,但是在
ssh
或telnet登陸窗口卻看不到這樣的輸出/
09
*Mar 1 00:21:00.599: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
10
11
/在
ssh
登陸窗口,使用下面的命令打開遠(yuǎn)程登錄窗口的監(jiān)控提示/
12
R1(config)#
exit
13
R1#
terminal
monitor
14
% Console already monitors
15
16
/再次創(chuàng)建一個(gè)回環(huán)接口写烤,這一次
ssh
窗口也出現(xiàn)了提示/
17
R1#
conf
t
18
R1(config)#
int
lo
1
19
*Mar 1 00:23:55.303: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback1, changed state to up
20
21
/關(guān)閉遠(yuǎn)程終端監(jiān)控功能/
22
R1(config)#
end
23
R1#
terminal
no
monitor
下面是一些和日志記錄有關(guān)的命令翼闽,僅供參考:
01
/關(guān)閉日志記錄/
02
R1(config)#
no
logging
on
03
04
/開啟日志記錄/
05
R1(config)#
logging
on
06
07
/設(shè)置日志記錄緩存,后面的7是最高級(jí)別洲炊,記錄所有信息/
08
R1(config)#
logging
buffered 7
09
10
/給記錄的debug消息添加時(shí)間戳感局,單位精確到毫秒/
11
R1(config)#service timestamps debug datetime msec
12
13
/給記錄的log消息添加時(shí)間戳,單位精確到毫秒/
14
R1(config)#service timestamps log datetime msec
15
R1(config)#
end
16
17
/顯示本地緩存中的日志信息/
18
R1#
show
logging
路由緩存的空間是有限的暂衡,一般的做法是配置一臺(tái)日志服務(wù)器询微,將路由和交換機(jī)的日志信息發(fā)送到服務(wù)器上,這樣可以避免路由重啟或者其他原因?qū)е氯罩拘畔⒌膩G失狂巢。
0×5.如何禁用思科路由不必要的服務(wù)和端口
可以使用下面這條命令來(lái)手動(dòng)或者自動(dòng)的配置路由撑毛,禁用一些不必要的服務(wù)和端口:
1
/不帶參數(shù),進(jìn)入交互配置模式唧领,根據(jù)提示設(shè)置即可/
2
Router#auto secure
3
4
/還有一種簡(jiǎn)便模式藻雌,非交互式,使用的是思科推薦的安全配置(除非你知道自己在做什么斩个,否則不要隨意在真實(shí)環(huán)境中配置下面的語(yǔ)句)/
5
R1#auto secure
no
-interact