Ciscoルータのパスワードリカバリ手順とコンフィグリストア手順

パスワードリカバリ

「ログインパスワードを忘れてしまった!!」
「ヤフオクで購入したルータにパスワードが設定してあってログインできない!!」

そんなときに便利なのが、パスワードリカバリです。ネットワーク管理者としてパスワードを忘れるなんてことはあってはならないことですが、いざというときのためにパスワードのリカバリ方法は覚えておきましょう。

手順は以下の通りです。

1. ルータにコンソール接続する。

2. ルータを再起動します。

3. 60秒以内にブレイク信号を送信します。

ブレイク信号の送信方法は、
* HyperTerminalの場合
[Ctrl]キーと[Break]キーを同時に押します。
* TeraTermの場合
[Alt]キーと[B]キーを同時に押します。
正常にブレイク信号が送信されると rommon1> というプロンプトが表示されます。

4. コンフィグレーションレジスタを0x2142に変更する

レジスタの値を0x2142にすることで、ルータ起動時に保存されているstartup-configを使用せずに初期状態の設定で起動します。
コマンドは、

rommon1\>confreg 0x2142

5. reset コマンドを使用してルータを再起動させます。

rommon2\>reset

6. セットアップモードをスキップする

ルータは初期状態で起動しますので、セットアップモードが立ち上がります。
すべての設問に no を入力するか、[Ctrl + c]でセットアップモードをスキップさせます。

--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog? [yes/no]: 

セットアップモードを抜ける時には確認のメッセージに対してすべて“no”を入力するか、[Ctrl + c]でスキップさせます。

7. 特権モードに移行する

ルータは初期状態ですから、もちろんパスワードは設定されていません。
特権モードにもパスワードなしで移行できます。

Router\>enable
Router\#

8. startup-configをrunning-configにコピーする

nvram に保存されている startup-config を、running-configにコピーします。

Router#copy startup-config running-config

9. パスワードを再設定する

コンフィグレーションモードに移行して、パスワードを再設定します。

Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#enable secret [password]
Router(config)#exit

10. コンフィグレーションレジスタを0x2102に変更する

さきほど変更したレジスタ値を 0x2102 に戻します。
レジスタ値を戻さないと、ルータの起動時に初期状態の設定で起動してしまうので、忘れずに変更しましょう。

Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#config-register 0x2102
Router(config)#exit

11. インタフェース状態を確認

インターフェースが shutdown されている場合があるので、show interface コマンドでインタフェースの状態を確認してください。
shutdown されていた場合は、no shutdown コマンドでインタフェースを up させます。

12. 設定の保存

最後に設定を startup-config に保存します。

Router#copy running-config startup-config

コンフィグのリストア方法

ルータを交換する場合や、バックアップしておいた設定を1行ずつ設定していくのは非常に面倒くさいですし、間違える可能性もあります。

そこでバックアップしておいたコンフィグをルータに再設定する場合に効率的な方法をご紹介しておきましょう。

まずバックアップしておいたコンフィグを準備します。
ここでは例として以下のコンフィグを使用します。

service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname Router
!
boot-start-marker
boot-end-marker
!
logging buffered 4096 debugging
enable secret 5 $1$G.XJ$8O8mfiYBdeRStW9ytXoPG0
!
clock timezone JST 9
no aaa new-model
ip subnet-zero
ip cef
!
!         
ip audit po max-events 100
!
!
interface Ethernet0/0
 description ### To Router ###
 ip address 192.168.11.100 255.255.255.0
 half-duplex
!
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.11.1
!
!
logging history debugging
!
line con 0
line aux 0
line vty 0 4
 exec-timeout 0 0
 password 7 060F1B23434102
 login
 exec prompt timestamp
!
ntp server 210.173.160.57
!
end

ここでパスワードの部分はあらかじめ削除しておきましょう。
削除する理由は後述します。

それではルータにコンソールで接続して、電源を立ち上げましょう。
ルータには何も設定されていないのでセットアップモード立ち上がってきます。

--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog? [yes/no]: 

セットアップモードを抜ける時には確認のメッセージに対してすべて“no”を入力するか“Ctrl + C”を入力します。
セットアップモードは使用しませんので、「Ctrl + C」を押すか、すべて「no」を入力してセットアップモードから抜けます。

続いてグローバルコンフィグレーションモードに移行します。

Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#

さきほど準備しておいたバックアップファイルをテキストで開いて、すべてコピーします。

TeraTermの場合はターミナルソフトのメニューから【編集】-【貼り付け】を選択します。
(英語版の場合は【Edit】-【Paste】)

すると、コピーした設定を次々とルータへ転送してくれます。設定が終わったら先ほどバックアップファイルから削除したパスワードを手動で設定していきます。先ほど削除したのは、暗号化されたパスワードをそのままコピーして転送してしまうと、その暗号文自体がパスワードになってしまうからです。

例えば、
「$1$G.XJ$8O8mfiYBdeRStW9ytXoPG0」と暗号化されたものをそのまま転送してしまうと、「$1$G.XJ$8O8mfiYBdeRStW9ytXoPG0」というパスワードが設定されてしまいます。
そんな間違いを防ぐためにもパスワードは手動で設定する方が良いでしょう。

さてバックアップファイルを転送したあとにしなければいけないことがもう1つあります。それは使用するインタフェースのシャットダウンを外すことです。

ルータのインタフェースはデフォルトではシャットダウンになっています。そのためリストアしたあとは必ず使用するインタフェースのシャットダウンを外すことを忘れずに行いましょう。

Router#conf terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#interface ethernet 0/0
Router(config-if)#no shu
Router(config-if)#no shutdown
Router(config-if)#end
Router#

以上でバックアップファイルからのリストアは終了です。
…と言いたいところなのですが最後に注意点を1つ。

コンソール接続でリストアを使用とすると、転送速度が遅いためコンフィグの転送に追いつかずに一部設定がうまく転送できない場合があります。そんな時は事前にターミナルソフトの設定でDelayの設定を変更しておきましょう。

TeraTermの場合は、メニューバーの【Setup】-【Serial port setup】からTransmit delay部分を変更します。

デフォルトでは 0 になっているので、この値を変更します。
設定する値については一概には言えませんが、 50 ぐらいに設定しておけば良いでしょう。

関連記事

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: