一.進入 特權模式 密碼
設置訪問網絡設備特權模式口令
cisco>enable
cisco#config terminal
cisco(config)#enable password 密碼
enable password存在的問題是它將口令以可閱讀文本的形式儲存在 running-config和startup-config中
特別說明:
Router(config)#enable password ?
7 Specifies a HIDDEN password will follow
LINE The UNENCRYPTED (cleartext) 'enable' password
level Set exec level password
7
是思科自有的加密協議type7,比較簡單,容易破解,這裏的用法是 enable password 7 ……
後面是加入密文才有效。這個密文通常要在以前備份的配置裏拷貝纔行,用於配置恢復時使用。
比如你設置enable password cisco
然後使用service password-encryption命令開啓加密
在show running-config裏面能夠看到enable password 7 104D000A0618
104D000A0618這個值你就可以直接寫在enable password 7後面,實際就是cisco密文加密的結果
LINE
直接輸入密碼,不加密,明文顯示
level (後面講)
設置用戶級別密碼 指定密碼作用於哪個級別(實際操作中會將密碼加密保存)
共15個等級 最低爲1 最高爲15(相當於root權限)
進入對應的級別輸入 相應的密碼
如:Router>enable 5 (此時應輸入5級密碼)
在網絡設備中,默認情況下,除了使能加密口令外,其它所有口令都以明文格式儲存在startup-config 和 running-config中。使用 service password-encryption 命令後,所有系統口令都將以加密形式存儲。
加密系統所有口令
cisco(config)# service password-encryption
加密的方式是cisco私有加密方式
取消系統口令加密
cisco(config)# no service password-encryption
取消加密不會將已加密的口令恢復爲可閱讀文本,但是新設置的密碼將會以明文存在
二.使能密碼
思科引入新的口令控制特權模式訪問,即加密口令,使能密碼
設置訪問網絡設備特權模式加密口令
cisco>enable
cisco#config terminal
cisco(config)#enable secret 密碼
採用了MD5加密,如果配置了加密口令,則不在使用未加密口令,兩種口令不能並列使用
特別說明:
Router(config)#enable secret ?
0 Specifies an UNENCRYPTED password will follow
5 Specifies an ENCRYPTED secret will follow
LINE The UNENCRYPTED (cleartext) 'enable' secret
level Set exec level password
其實對於Secret 選項來說,密碼肯定是會被加密的。
假設我要設置的密碼爲cisco
0 是指:我現在即將輸入的密碼是原始密碼,是:cisco
5 是指:就是輸入cisco 的MD5值:$1$XNRo$8FSa/XSF9DbmF6VbK6L6K
level : 設置用戶級別密碼 指定密碼作用於哪個級別
三.控制檯登錄密碼
配置console 訪問密碼
cisco>enable
cisco# config terminal
cisco(config)# line console 0 切換爲控制檯0號 線路配置模式
cisco(config)# password 密碼 設置密碼
cisco(config)# login 將控制檯線路設置爲登陸需要輸入口令 才能訪問(否則即使設置密碼也不需要輸入)
四.輔助線路
配置vty訪問密碼
cisco>enable
cisco#config terminal
cisco(config)#line aux 0 對aux0號 線路進行配置
cisco(config)#password 密碼 設置密碼
cisco(config)#login 將控制檯線路設置爲登陸需要輸入口令 才能訪問(否則即使設置密碼也不需要輸入)
五.虛擬終端線路(vty 同步)(tty異步) telnet ssh
配置vty訪問密碼
cisco>enable
cisco#config terminal
cisco(config)#line vty 0 15 對vty0到15號 線路進行配置(最大允許16個人同時登陸,VTY線路的編號)
cisco(config)#password 密碼 設置密碼
cisco(config)#login 將控制檯線路設置爲登陸需要輸入口令 才能訪問(否則即使設置密碼也不需要輸入)
特別說明:
Router(config-line)#login ?
authentication authenticate using aaa method list
local Local password checking
authentication 配置Telnet口登錄進行AAA認證(後面講)
local 如果設置 local 則指明使用本地數據庫進行身份驗證,將要輸入 用戶名 和 密碼
首先必須要用username xxx password xxx命令
來創建你的用戶並且給你的用戶設置密碼
特別說明,在默認情況下,除了password secret外,所有cisco密碼都以明文形式,存貯在路由器的配置,這些密碼通過 show running-config命令來查看。這是非常不安全的行爲。
爲提高密碼安全性,可進行如下配置。
1.設置最短密碼長度
cisco IOS 12.3 以後的版本,可以利用命令
security passwords min-length 長度
設置0~16位的最短字符長度,啓用後,user passwords、enable secret、line passwords、都會遵循此設置
2.禁用無用連接
在線路配置模式下,使用
Router(config-line)#exec-timeout 時間
該命令來控制管理接口連接時間,
3.加密配置文件中的所有密碼
加密系統所有口令
cisco(config)# service password-encryption
加密的方式是cisco私有加密方式,是一種可逆的加密,建議使用與enable 不同的密碼
取消系統口令加密
cisco(config)# no service password-encryption
取消加密不會將已加密的口令恢復爲可閱讀文本,但是新設置的密碼將會以明文存在
4.使用本地數據庫中的用戶和密碼執行登陸驗證,有兩種配置方式
Router(config)# username 用戶名 passwords 密碼
Router(config)# username 用戶名 secret 密碼 (用md5加密,安全性更高)
然後在線路配置中,啓用本地登陸驗證
Router(config-line)#login local
5.其它的登陸安全措施
R1(config)#login block-for 60 attempts 3 within 30
//30s內連續登錄失敗3次後,等待60s(進入安靜期)後才能再次登錄
R1(config)#login quiet-mode access-class 10
//安靜期內ACL10指定的計算機仍可以遠程訪問本路由器
R1(config)#login delay 2 //登錄成功後有2s延遲,即2s後才能再次登錄
R1(config)#login on-failure log //登錄失敗會在日誌中記錄
R1(config)#login on-success log //登錄成功會在日誌中記錄
R1(config)#security authentication failure rate 5 log
//連續登錄失敗5次後,默認等待15s後才能再次登錄,並會產生日誌,IOS12.3(1)
驗證配置可以使用 show login
6.設置標語
配置旗標消息:
R1(config)#banner motd @ @ //每日報告旗標(MOTD Message-of-the-day banner) 連接時
R1(config)#banner login@ @ //登錄旗標 登錄前
R1(config)#banner exec @ @ //EXEC旗標 登陸後
R1(config)#banner incoming@ @ //傳入旗標
在與反向Telnet線路連接的終端上顯示,該旗標有助於向用戶提供指令;
R1(config)#banner slip-ppp@ @ //SLIP-PPP旗標
常用於兼容非Cisco系列線路Internet協議(如:SLIP和PPP撥號軟件連接中),如果使用默
認旗標,會導致連接問題。
用戶級別控制:
Cisco IOS提供從0到15的16個優先權等級:
①默認情況下IOS有3個預定義的用戶等級,分別爲:
優先權等級0:包括disable、enable、exit、help和logout命令;
優先權等級1:User EXEC mode,即用戶模式(R1>)的所有用戶級命令;
優先權等級15:Privileged EXEC mode(啓用模式),包括R1#提示的所有啓動級命令。
②2至14等級用於用戶自定義的模式;
cisco(config)# enable secret level 級別 密碼
設置從用戶模式進入各級別 特權模式的密碼
R1(config)# username user3 privilege 5 secret 密碼
創建優先權等級5的user3用戶
③ R1(config)# privilege mode level 級別 命令
命令可以更改、移動或設置上述任一級別的命令優先權,
mode:是指路由器上的不同模式
cisco(config)#privilege ?
configure Global configuration mode
exec Exec mode
interface Interface configuration mode
line Line configuration mode
router Router configuration mode
示例: R1(config)#privilege configure level 5 interface
//移動等級15的“interface”命令到等級5
R1(config)#privilege configure level 5 ping
//等級5及以上纔可以使用 ping 命令
④“R1(config-line)#privilege level level 命令可以修改給定線路的優先權等級。
示例:R1(config)#line vty 3 4
R1(config-line)#privilege level 1 //修改VTY線路3-4的默認優先權等級爲1
使用 show privilege 命令顯示當前級別
AAA認證:
一、簡介
AAA是Authentication(認證)Authorization授權 Account記帳的簡稱;
它們不是必須的也不是要同時一起使用的;
他們可以使用路由器設備本地數據庫,也可以使用外部數據庫(ACS);
首先我們要認證,即通過密碼驗證;我們就算沒有設置其實也用到了認證,就是登陸路由器要輸入的密碼,
這個叫enable,
我們在配置了,username abc password aaa
username abc secret password
使用這個帳號的話,叫local;
這二種是本地的數據庫。
如果要用到認證服務器,如 tacacs+ radius 就屬於group 服務器組方式了,這時你必須要在tacacs+ radius中選一個,同時還最多可選三個其它的認證方式;當然如果你對你的服務器和網絡環境有信心的話可以不選。
二、配置教程
1、使用它們都是三個步驟
1、建立帳戶數據庫(本地或認證服務器);
2、定義列表;
3、應用到接口和鏈路;
2、首先我們要啓用AAA功能
Router(config)# aaa new-model
3、一般來說第二步定義一個本地數據庫防止配置失誤造成無法登陸
Router(config)# Username abc password aaa
4、定義認證配置
認證相當於在問你是誰,你要回答我是哪個;但不可能不停的在問就算不煩嗓子也疼啊,只有在進門時我會問下你是誰,開保險櫃時我在問下你是誰,或者是檢查指紋測試瞳孔什麼的等等;所以我們要對動作進行認證定義。
Router(config)#aaa authentication 行爲 列表名 認證方法
行爲主要有以下三種:
aaa authentication login ――――――當有一個登陸行爲時進行認證;
aaa authentication ppp ――――――對基於PPP協議的一些網絡應用進行認證;
aaa authentication enable ――――――對使用enable命令進入特權模式時進行認證;
列表名是自己定義的,這樣我們可以把各種認證方式互相組合保存成一個個列表,用的時候方便,修改起來也方便,我改了一個列表裏的認證方式那麼所有使用這個列表的地方都改了,不需要去一個個地方去改了。
Dedautl列表是一個系統自己建立的列表名作爲缺省列表。它與我們自己建的列表沒有任何區別,只不過他是系統建的而已。
3、認證方法,就是指我們是查口令呢還是看指紋還是其它等等,也就是把我們的回答和誰進行分析比較。主要有以
下幾種:
關鍵字 |
描述 |
enable | 使用enabel口令認證; |
krb5 | 使用Kerberos5來認證; |
line | 使用線路口令來認證; |
local | 使用本地用戶數據庫來認證; |
none | 不認證; |
group radius | 使用radius服務器來認證; |
group tacacs+ | 使用tacacs+服務器來認證; |
local-case 使用本地驗證(對大小寫敏感)
每個列表中必須定義一種認證方法,最多可以定義四種方法,當第一種認證不通過再使用第二種,以此類推。
例如我們定義
Router(config)# aaa authentication login 二號方案 group tacacs+ local
//我們定義了一個名叫二號方案認證方式,就是先去tacacs+服務器驗證,如果不成功在試試用本地帳號來試;
Router(config)# aaa authentication login 三號方案 group local enable
//我們定義了一個名叫三號方案認證方式,就是先用本地帳號驗證,如果不成功就用enable密碼來驗證;
五、應用到接口和鏈路
我們上面做了那麼多但是還沒有效果爲什麼呢,就好像我們做好了報警器,指紋驗證器但沒裝到門上你說可有效果,那當然是不行的了,我們是定義了當登陸時就啓用一個列表名字叫二號方案的認證方式,但只有我們把他裝到門上纔能有效果啊,有人說太麻煩應該定義好了就能用,那就慘了,你給自己家的門上裝了二號方案沒關係,如果樓道門、院子門,都給裝上了那就有問題了,所以我們要把定義好的認證方法列表裝到我們需要使用認證的門上,例如我們可能對Telnet要認證,但通過console登陸的就不要認證。
Router(config)# line vty 0 //我們先要進入接口
Router(config-line)# aaa authentication 二號方案 //線路vty0使用名爲二號方案的方式進行認證;
或者:
Router(config)# line vty 1
Router(config-line)# login authentication 三號方案
aaa的一些其他命令:
鎖死失敗超過限制的賬號
Router(config)# aaa local authentication at tempts max-fail 失敗次數
顯示所有被鎖死的用戶
Router# show aaa local user lockout
解除鎖定
Router(config)# clear aaa local user lockout {username 用戶名| all}
只顯示aaa認證授權的用戶
Router# show aaa user {all | 唯一id}
顯示一個會話的唯一id
Router# show aaa sessions
AAA授權:
配置供用戶通過認證之後的AAA授權
aaa authorization 命令
aaa authorization {network | exec | commands level | reverse-access | configuration} {default
|list-name} method1 [method2~~~]
network 爲所有網絡相關的服務請求進行授權,包括SLIP,PPP,PPP NCP和ARA
exec 使用授權,以確定是否用戶可以運行一個EXEC shell.
commands 爲所有處於規定的特權級別的命令使用授權
level 規定應該被授權的命令級別,有效值 0-15
reverse-access 爲反向訪問連接使用授權,例如反向Telnet
configuration 從AAA服務器上下載配置
default 使用此變量後列出的認證方法,作爲缺省方法列表供認證
listname 用來命令認證方法列表的字符串
method 規定以下關鍵字的至少一種
group 用radius或tacacs+服務器的一個子集來認證,這些服務器定義在aaa group server radius
或aaa group server tacacs+命令中
if-authenticated 如果用戶爲認證,允許用戶訪問請求的功能;
krb5-instance 使用被kerberos instance map命令定義的實例;
local 用本地用戶名數據庫來授權
none 不用授權
例子:
enable secret level 1 *** 爲級別1的用戶建立一個enable secret口令
enable secret level 15 *** 爲級別15的用戶建立一個enable secret口令
aaa new-model 啓用AAA
aaa authentication login default enable 將enable口令作爲缺省的登入方式
aaa authentication login console-in group tacacs+ local 無論何時使用名爲console-in的列
表,都使用TACACS+認證,如果TACACS+認證失敗,己用本地用戶名和口令
aaa authentication login dial-in group tacacs+ 無論何時使用名爲dial-in的列表,都使用
TACACS+認證.
username *** password **** 建立一個本地用戶名和口令,最可能與console-in登錄方法列
表一起使用
aaa authorization commands 1 alpha local 用本地用戶名數據庫來爲所有級別1命令的使用進行
授權 www.2cto.com
aaa authorization commands 15 bravo if-authenticated group tacplus local 如果用戶已經認
證了,讓其運行級別15的命令,如果還未認證,在允許其訪問級別15的命令之前,必須基於tacplus組中的
TACACS+服務器來認證
aaa authorization network charlie local none 使用本地數據庫來對所有網絡服務的使用授權,
如果本地服務器不可用,此命令執行並不授權,用戶能使用所有的網絡服務
aaa authorization exec delta if-authenticated group tacplus 如果用戶已經認證,讓其運行
EXEC過程,如果沒有認證,在允許EXEC之前,必須基於tacplus組中的TACACS+服務器來認證
privilege exec level 1 ping 爲級別1的用戶啓用PING
line console 0
login authentication console-in 使用console-in列表作爲控制檯端口0的登錄認證
line s3/0
ppp authentication chap dial-in 使用dial-in列表作接口S3/0 的PPP CHAP的登錄認證
AAA記賬:
配置規定如何寫記帳記錄的AAA記帳
aaa accounting [auth-proxy |system |network |exec |connection |commands level]{default
|list-name} [vrf vrf-name] [start-stop|stop-only|none][broadcast][method][method2]
auth-proxy 提供有關所有認證代理用戶事件的信息
system 爲所有非用戶相關的系統級事件執行記帳
network 爲所有網絡相關的服務請求運行記帳
exec 爲EXEC shell會話運行記帳。
connection 提供所有有關源子NAS的外出連接的信息
commands 爲所有處於特定特權級別的命令運行記帳,有效的特權級別取值0-15
default 使用本參數之後列出的記帳方式
list-name 用來命令記帳方式列表的字符串
vrf vrf-name 規定一個VRF配置
start-stop 在一個過程的開端,發送一個開始記帳通知,在過程結束時,發送一個停止記帳通知
。
stop-only 在被請求用戶工程結束時發送一個停止記帳通知
none 禁止此鏈路或接口上的記帳服務
broadcast 啓用發送記帳記錄到多個3A服務器,同時向每個組中第一臺服務器發送記帳記
錄 www.2cto.com
method 規定一下關鍵子中的至少一個
group radius 用所有RADIUS服務器列表作爲記帳
group tacacs+ 用所有列出的TACACS+服務器來記帳
group group-name 用RADIUS或TACACS+服務器的一個子集作爲記帳
在路由器上啓用下列命令以啓用幾張
aaa accounting system wait-start local 用記帳方法審計系統事件
aaa accounting network stop-only local 當網絡服務中斷,發送停止記錄通知
aaa accounting exec start-stop local 當EXEC過程開始時,發送一個開始記錄通知,結束時,發
送停止記錄
aaa accounting commands 15 wait-start local 在任何級別15的命令開始之前,發送一個開始記錄通
知,並等待確認,當命令中止時,發送一個停止記錄通知。
6 校驗配置
debug aaa authentication 顯示有關認證功能的調試信息
debug aaa authorization 顯示有關授權功能的調試信息
debug aaa accounting 顯示有關記帳功能的調試信息