Bài viết chuyên đề
Hướng Dẫn Khôi Phục Mật Khẩu Router Cisco (Chuyên Đề IP Services)
08/04/2021 12:35:51
Sơ đồ:
Sơ đồ bài lab
Mô tả:
Như ta biết, để thực hiện bảo mật cho thiết bị, người quản trị thường cài đặt các password như enable password, console password hay telnet password để ngăn chặn việc truy nhập không hợp lệ vào thiết bị. Tuy nhiên, vì một số lý do nào đó, người quản trị có thể quên mất các password này hoặc cấu hình sai một vài ký tự nào đó khi thiết lập các password dẫn đến không thể đăng nhập được vào thiết bị.
Chúng ta cùng nhau điểm qua cách thức khôi phục lại mật khẩu của Router trong những trường hợp như trên, giúp người quản trị có thể truy nhập lại được thiết bị của mình khi gặp sự cố.
Thực hiện:
Đầu tiên, giả sử rằng, ta có dự định đặt password enable cho Router là “cisco”, tuy nhiên, vì thao tác gõ bàn phím không cẩn thận, ta lại gõ thành “ciscowrong” và lưu password sai này vào file cấu hình:
R1(config)#enable password ciscowrong
R1(config)#exit
*Feb 25 03:03:39.603: %SYS-5-CONFIG_I: Configured from console by console
R1#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]
R1#
Sau một thời gian, khi từ mode User đi vào mode Privilege, ta được hỏi về enable password, vì đã ghi chú lại trong tài liệu về thiết bị rằng enable password là “cisco” nên ta đăng nhập bằng password này. Tuy nhiên, như đã đề cập ở trên, trước đó ta cấu hình sai nên Router không chấp nhận password đúng mà ta nhập:
R1>enable
Password:
Password:
Password:
% Bad passwords
R1>
Ta đã không thể đăng nhập được vào Router do mình quản lý. Vì vậy, ta phải thực hiện thao tác khôi phục mật khẩu cho Router.
Quy trình khôi phục mật khẩu cho Router được thực hiện dựa trên việc thay đổi giá trị của thanh ghi cấu hình để tác động đến bước thứ 4 trong tiến trình khởi động của Router. Thanh ghi cấu hình (Configuration Register) là một thanh ghi mềm 16 bit lưu trên bộ nhớ NVRAM của Router, thay đổi giá trị thanh ghi này sẽ ảnh hưởng đến một số hoạt động của Router. Một số giá trị tiêu biểu của thanh ghi cấu hình thường được sử dụng: 0x2102, 0x2142,… (kí hiệu “0x” chỉ ra rằng đây là giá trị Hexa).
Tiến trình khởi động của Router gồm các bước như sau:
- Bước 1 – P.O.S.T (Power On Self Test): Tại bước đầu tiên này, khi Router mới được bật lên, nó chạy một chương trình kiểm tra phần cứng (Hardware Diagnostic) kiểm tra tình trạng của mọi module phần cứng của Router. Khi mọi module đều qua được kỳ kiểm tra này, Router mới tiến hành chuyển sang bước thứ 2.
- Bước 2 – Load chương trình Bootstraps từ bộ nhớ ROM vào RAM: Chương trình này chịu trách nhiệm tìm kiếm và load IOS để vận hành Router.
- Bước 3 – Load IOS cho Router:
Chương trình bootstraps sẽ thực hiện load IOS cho Router.
- Bước 4 – Load file cấu hình cho Router:
Tùy thuộc vào giá trị của bit thứ 6 của thanh ghi cấu hình mà Router sẽ thực hiện các phương thức load cấu hình khác nhau.
· Nếu bit 6 = 0 (vd: 0x2102): load file startup-config trong NVRAM vào RAM thành running-config để chạy.
· Nếu bit 6 =1 (vd: 0x2142): bỏ qua file startup-config trong NVRAM, load vào một cấu hình trắng.
- Bước 1 – P.O.S.T (Power On Self Test): Tại bước đầu tiên này, khi Router mới được bật lên, nó chạy một chương trình kiểm tra phần cứng (Hardware Diagnostic) kiểm tra tình trạng của mọi module phần cứng của Router. Khi mọi module đều qua được kỳ kiểm tra này, Router mới tiến hành chuyển sang bước thứ 2.
- Bước 2 – Load chương trình Bootstraps từ bộ nhớ ROM vào RAM: Chương trình này chịu trách nhiệm tìm kiếm và load IOS để vận hành Router.
- Bước 3 – Load IOS cho Router: Chương trình bootstraps sẽ thực hiện load IOS cho Router.
- Bước 4 – Load file cấu hình cho Router:
- Tùy thuộc vào giá trị của bit thứ 6 của thanh ghi cấu hình mà Router sẽ thực hiện các phương thức load cấu hình khác nhau.
- Nếu bit 6 = 0 (vd: 0x2102): load file startup-config trong NVRAM vào RAM thành running-config để chạy.
- Nếu bit 6 =1 (vd: 0x2142): bỏ qua file startup-config trong NVRAM, load vào một cấu hình trắng.
Nguyên tắc khôi phục mật khẩu cho Router là đổi bit 6 của thanh ghi cấu hình thành 1 (sử dụng giá trị thanh ghi là 0x2142) từ đó bỏ qua file cấu hình của Router khi khởi động. Vì file cấu hình lưu password nên nếu ta bỏ qua file cấu hình thì ta cũng bỏ qua được password trong quá trình đăng nhập Router.
Các bước thực hiện như sau:
Bước 1: Tắt/mở Router.
Ta thực hiện tắt cứng Router bằng công tắc nguồn rồi bật lại công tắc nguồn để khởi động lại Router. Chú ý rằng, để đảm bảo an toàn điện cho Router, sau khi tắt xong, ta chờ một khoảng thời gian từ 15 đến 30 giây rồi hãy mở lại Router.
Bước 2: Sử dụng tổ hợp phím ngắt để đưa Router vào mode ROMMON
Trong khi Router đang khởi động, ta nhấn tổ hợp phím ngắt “Ctrl – Break” để đưa Router vào mode ROMMON. Ta không nên nhấn ngắt quá sớm vì điều này có thể gây treo Router mà nên chờ khi màn hình Console hiện ra kích thước bộ nhớ chính thì hãy thực hiện ngắt.
System Bootstrap, Version 12.4(13r)T11, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 2009 by cisco Systems, Inc.
Initializing memory for ECC
....
This platform does not support 1 GB Memory
Total Memory is Restricted to 768 MB
c2811 platform with 786432 Kbytes of main memory
Main memory is configured to 64 bit mode with ECC enabled
(Nhấn “Ctrl – Break” tại đây)
Upgrade ROMMON initialized
PC = 0xbfcd0d54, Cause = 0x2000, Status Reg = 0x3040a803
rommon 1 >
Bước 3: Thay đổi giá trị thanh ghi cấu hình
Tại mode ROMMON, ta thực hiện thay đổi giá trị của thanh ghi cấu hình từ giá trị mặc định là 0x2102 thành giá trị mới là 0x2142 để đảm bảo bit 6 được chuyển thành giá trị 1. Câu lệnh để thiết lập giá trị thanh ghi cấu hình ở ROMMON là “confreg”. Sau khi thay đổi xong, ta phải thực hiện khởi động lại Router để giá trị mới được áp dụng. Câu lệnh để khởi động lại Router ở ROMMON là “reset”.
rommon 1 > confreg 0x2142 <-Đổi giá trị thanh ghi thành 0x2142
You must reset or power cycle for new config to take effect
rommon 2 > reset <-Khởi động lại Router
c2811 platform with 786432 Kbytes of main memory
Main memory is configured to 64 bit mode with ECC enabled
(…)
Bước 4: Chỉnh sửa password.
Sau khi khởi động lại, vì giá trị thanh ghi cấu hình đã được đổi thành 0x2142 với bit số 6 = 1 nên ở bước thứ 4, Router sẽ bỏ qua file startup-config và đưa ra câu hỏi để chọn setup mode hoặc load vào một cấu hình trắng, ta chọn “no” như thường lệ để load vào một cấu hình trắng:
--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog? [yes/no]: no
Press RETURN to get started!
*Feb 25 04:04:04.663: %VPN_HW-6-INFO_LOC: Crypto engine: onboard 0 State changed to: Initialized
*Feb 25 04:04:04.667: %VPN_HW-6-INFO_LOC: Crypto engine: onboard 0 State changed to: Enabled
*Feb 25 04:04:06.075: %LINEPROTO-5-UPDOWN: Line protocol on Interface VoIP-Null0, changed state to up
*Feb 25 04:04:06.075: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Feb 25 04:04:06.075: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up
(Đã bỏ bớt một số dòng trong kết quả hiển thị)
Router>
Router>enable
Router# <- Đi được vào mode Privilege mà không bị hỏi password
Như trên ta thấy, ta đã bỏ qua được file cấu hình cũ có lưu password và đi được vào mode Privilege của Router khi sử dụng cấu hình trắng. Để thực hiện sửa lại password cũ cho đúng, chúng ta thực hiện load file cấu hình cũ vào Router bằng lệnh “copy startup-config running-config”:
Router#copy startup-config running-config
Destination filename [running-config]?
1527 bytes copied in 0.552 secs (2766 bytes/sec)
R1#
Ta thấy, cấu hình cũ đã được load lại vào thành running-config (kết quả chỉ rõ có bao nhiêu byte cấu hình đã được copy và tên của Router đổi lại từ tên mặc định là “Router” thành tên đã lưu từ trước ở file cấu hình là “R1”).
Ta tiến hành sửa lại password cho đúng, sau khi sửa xong, nhớ thực hiện lưu password mới này lại:
R1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#enable password cisco
R1(config)#exit
R1#
*Feb 25 04:23:54.031: %SYS-5-CONFIG_I: Configured from console by console
R1#write memory
Building configuration...
[OK]
R1#
Bước 5: Trả lại giá trị thanh ghi cấu hình về mặc định.
Sau khi hoàn tất xong việc chỉnh sửa password, ta thực hiện trả lại giá trị thanh ghi cấu hình về mặc định (0x2102). Câu lệnh để thay đổi lại giá trị thanh ghi cấu hình là “config-register” ở mode Global Configuration.
R1(config)#config-register 0x2102
Ta có thể kiểm tra sự thay đổi này bằng lệnh “show version” ở mode Privilege:
R1#show version
(Đã bỏ bớt một số dòng trong kết quả hiển thị)
Cisco 2811 (revision 53.50) with 774144K/12288K bytes of memory.
Processor board ID FTX1412AKYT
2 FastEthernet interfaces
8 Low-speed serial(sync/async) interfaces
1 Virtual Private Network (VPN) Module
DRAM configuration is 64 bits wide with parity enabled.
239K bytes of non-volatile configuration memory.
253008K bytes of ATA CompactFlash (Read/Write)
Configuration register is 0x2142 (will be 0x2102 at next reload)
Ta thấy rằng giá trị của thanh ghi cấu hình vẫn là 0x2142, nhưng sẽ được đổi thành 0x2102 ở lần khởi động kế tiếp. Vì vậy, để hoàn tất tiến trình khôi phục mật khẩu cho Router, ta cần thực hiện lưu cấu hình rồi khởi động lại Router.
Bài lab trên đây được thực hiện trên dòng Router được sử dụng rất phổ biến hiện nay là dòng 2800. Cách khôi phục mật khẩu trên các dòng Router khác có thể có một vài khác biệt nhưng nguyên tắc cơ bản thì vẫn giống như đã trình bày.
Cảm ơn các bạn!
Hẹn gặp lại các bạn trong các bài viết tiếp theo!