はじめに
久しぶりにCiscoルータなどを触る場合、特権モードやログインパスワード、telnetやssh接続時のパスワードを忘れたということが多いかと思います。
特権モードのパスワードを失念した場合は、実機にて電源をOFF、ONし、設定レジスタを変更する必要があります。
特権モードに入りさえすれば、他のパスワード変更はできますので、今回のやり方を覚えれば大丈夫だと思います。
ログインパスワードやtelnet、ssh接続時のパスワード変更は、目次から遷移してください。
特権モードのパスワードを変更する際の全体的な流れ
詳しい手順等は後程記載しますが、大まかな流れは以下になります。
手動で電源OFFにし、再度ONにします。
Alt + B を押下し、ROMmomモードに入ります。
「confreg 0x2142」と入力し、Enter。
rommon 1 > confreg 0x2142
「reset」と入力し、Enter。
You must reset or power cycle for new config to take effect
rommon 2 > reset
パスワードなしで特権モードまで昇格できるので、今回パスワードを変更したい箇所をそれぞれ変更します。
ログインパスワードやtelnet、sshのパスワードを変更したい場合は、この箇所からご参照ください。
パスワードの変更が終わったら、設定を保存します。
# write memory
レジスタの値を元に戻します。
(config)# config-register 0x2102
以下のコマンドで、再起動します。
# reload
設定が変更されていることを確認します。
特権モードのパスワードリカバリー手順
Ciscoルータのパスワードリカバリは、ルータの設定レジスタを変更し、設定を一時的に無視して起動することで、特権モードのパスワードを再設定できるようにします。
特権モードのパスワードを変更する場合、Ciscoルータの実機にコンソールケーブルを接続し、電源OFF/ONができる環境である必要があります。
検証用や勉強用のルータであれば手元にあるので問題ないと思いますが、ラック内にマウントしている場合はそこまで行く必要があります。
ルータを再起動
まずは、手動にてCiscoルータの電源をOFFにし、再度ONにして再起動します。
ROMmomモードに入る
ルータが再起動した直後にAlt + B を押して、ROMmonモードに入ります。
Teratermの場合は、メニューから [Control] → [Send Break] を選択します。
設定レジスタを変更
ROMmonモードで以下のコマンドを入力し、設定レジスタを 0x2142 に変更します。この設定により、ルータが再起動時に startup-config(設定ファイル)を無視して起動します。
rommon 1 > confreg 0x2142
ルータを再起動
設定レジスタの変更が完了したら、以下の通り「reset」コマンドでルータを再起動します。
You must reset or power cycle for new config to take effect
rommon 2 > reset
これで、startup-config を無視した状態でルータが起動し、パスワードなしでアクセスできるようになります。
特権モードにアクセス
ルータが再起動したら、初期状態のように通常のユーザーモード(Router>)で起動します。この状態で特権モード(Router#)に昇格します。
Router> enable
この操作で、パスワード入力なしに特権モード(Router#)に入れます。
設定ファイル(startup-config)の読み込み
以前の設定を読み込むために、startup-config を running-config にコピーします。
Router# copy startup-config running-config
Destination filename [running-config]?
「Destination filename [running-config]?」と聞かれますが、そのままEnterキーを押下します。
これで、ルータに以前の設定が反映されます。ただし、この状態だと忘れたパスワードがそのまま反映されているので、今から別のパスワードに変更したいと思います。
特権モードのパスワードを変更:(config)# enable secret
新しい特権モードパスワードを設定
特権モードパスワードを再設定します。暗号化されたパスワードを使用するため、enable secret コマンドを使います。
MyRouter# conf t
Enter configuration commands, one per line. End with CNTL/Z.
MyRouter(config)# enable secret NewPassword123
設定を保存
新しいパスワード設定が再起動後も適用されるよう、現在の設定を保存します。
MyRouter# write memory
Building configuration...
[OK]
MyRouter#
特権モードのパスワード変更は以上です。
あとは、レジスタの値を元に戻してから再起動する必要があります。
コンソール接続時のログインパスワード設定or変更:(config)# line console 0
コンソール接続時のユーザモード用パスワードの設定or変更は、以下になります。
MyRouter(config)# line console 0
MyRouter(config-line)# password <新しいユーザモードパスワード>
MyRouter(config-line)# login
この設定により、コンソールからログインする際にユーザモード用のパスワードが必要になります。
設定を保存
現在の設定を保存します。
MyRouter# write memory
Building configuration...
[OK]
MyRouter#
telnetやssh接続時のログインパスワードを変更:(config)# line vty 0 4
リモート接続(TelnetやSSH)時のパスワードをリセットするには、line vty 0 4 コマンドを使います。
MyRouter(config)# line vty 0 4
MyRouter(config-line)# password <新しいvtyパスワード>
MyRouter(config-line)# login
この設定により、リモート接続時にvtyライン用のパスワードが求められるようになります。
SSH接続用にlogin local を使用する場合
SSH接続でユーザー認証を使用したい場合は、次のように設定します。これにより、vty接続時にローカルユーザーで認証を行います。
MyRouter(config)# username <ユーザー名> secret <ユーザーパスワード>
MyRouter(config)# line vty 0 4
MyRouter(config-line)# login local
MyRouter(config-line)# transport input ssh
設定を保存
現在の設定を保存します。
MyRouter# write memory
Building configuration...
[OK]
MyRouter#
設定レジスタを元に戻す
設定レジスタを通常の起動設定(0x2102)に戻し、次回再起動時に startup-config が読み込まれるようにします。
MyRouter(config)# config-register 0x2102
最新のconfigを取得(バックアップ)
各種設定を変更したので、最新のconfig(running-config)をファイルにバックアップします(# show run)。
バックアップはTeratermのログで取得すれば十分です。
ルータを再起動
最後にルータを再起動し、通常の動作に戻します。再起動時に「System configuration has been modified. Save? [yes/no]」と表示される場合は、yes を入力してEnterキーを押し、設定を保存して再起動します。
MyRouter# reload
System configuration has been modified. Save? [yes/no]: yes
Building configuration...
[OK]
Proceed with reload? [confirm]
「Proceed with reload? [confirm]」と聞かれたら、そのままEnterキーを押下して再起動を完了させます。
変更後のパスワードでログインできることを確認
Ciscoルータの再起動が完了したら、変更後のパスワードでログインできることを確認します。
動作確認に問題がなければ、作業は以上です。
コメント