シナプス技術者ブログ

シナプスの技術者公式ブログ。インターネットで、鹿児島の毎日を笑顔にします。

Catalyst2960Gのパスワードリカバリ方法

技術部ネットワーク課の若松です。

シナプスではシスコシステムズ社製のルータやスイッチを触る機会が比較的多いのですが、そのルータOS(IOSと言いますが、AppleのiOSとは別物です)はローエンドからハイエンドまでほぼ同じコマンド体系であり若手スタッフの育成や、実際のネットワーク増強の際にも非常に役立っています。

ちなみに、私が好きなL2スイッチにCatalyst2960Gという機種があるのですが、この機種は、SDMテンプレートの変更でL3スイッチにもなる(ただし一部制限あり)という優れモノです。

以前、職場とは違う場所で 予備機として置いてあったCatalyst2960G のパスワードが分からず設定変更はおろかログインすら出来ない状況に陥りました。随分前に撤去され予備機として置いてあったものの、撤去時に設定の消去などがなされていなかったようで、当時のことが分かる人も誰もいませんでした。

Cisco社製のルータやスイッチは、

  • 電源ON時に、コンソールポートからブレーク信号を送りROMモニタに移行する。
  • コンフィグレーションレジスタを変更して設定保存されたコンフィグレーションを無視させて(当然パスワードも無視させて)起動する。

という方法で、設定されているパスワードを確認したり、再設定したりする方法がありますが、Catalyst2960Gはその方法が通用せず、改めて調べてみましたので、その方法を紹介したいさせていただきます。

検証に使った機種とIOSバージョンは以下の通りです。

機種 IOSバージョン
Catalyst 2960G-24TC-L
(WS-C2960G-24TC-L)
12.2(55)SE8
(c2960-lanbasek9-mz.122-55.SE8.bin)

なお、コンソールケーブルの接続やターミナルソフトの起動等は省略させていただきます。

1.本体前面のModeボタンを押したまま電源をオンにする。

電源をオンにするといっても、電源スイッチはありません。一旦電源ケーブルを抜いた後、Modeボタンを押した状態で電源ケーブルを接続してください。

SYST LEDが緑色の点滅から一瞬オレンジ色の点滅に変わります。2度オレンジになった後、全てのLEDが消灯しますので、Modeボタンから手を放してください。

ターミナルソフトには以下のような表示が出るはずです。

Boot Sector Filesystem (bs) installed, fsid: 2
Base ethernet MAC Address: 00:0a:b8:f2:50:00
Xmodem file system is available.
The password-recovery mechanism is enabled.

The system has been interrupted prior to initializing the
flash filesystem.  The following commands will initialize
the flash filesystem, and finish loading the operating
system software:

    flash_init
    boot

switch:

なお、このLEDの色や、Modeボタンから手を放すタイミングなどは、細かい機種や型番ごとに異なる場合があるようです。同じCatalyst2960Gでも8ポートのWS-C2960G-8TC-Lでは、Modeボタンを押しっぱなしにしていたところ、上記のような表示になりました。

また上記では flash_init と bootが表示されておりますが、上記以外に load_helper というコマンドが表示される機種もあるようです。詳しくは「スイッチの型番+パスワードリカバリ」などで検索してみてください。

2.フラッシュファイルシステムの初期化

flash_init とコマンドを入れて、フラッシュファイルシステムの初期化をします。

switch: flash_init
Initializing Flash...
flashfs[0]: 540 files, 19 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 32514048
flashfs[0]: Bytes used: 13515264
flashfs[0]: Bytes available: 18998784
flashfs[0]: flashfs fsck took 10 seconds.
...done Initializing Flash.

3.フラッシュメモリの内容確認

dir flash: とコマンドを入れてフラッシュメモリ内にあるファイルを確認します。 必ず flash の後にコロン(:)を入力してください。

switch: dir flash:
Directory of flash:/

    2  -rwx  1250      <date>               config.text
    5  -rwx  5         <date>               private-config.text
    6  -rwx  2072      <date>               multiple-fs
  568  drwx  192       <date>               c2960-lanbasek9-mz.122-55.SE8

18995200 bytes available (13518848 bytes used)

config.textが、起動時に読み込まれる設定ファイルです。

4.コンフィグレーションファイルをリネーム

rename flash:config.text flash:config.text.old と入れてコンフィグレーションファイルをリネームします。 拡張子は「txt」ではなくて「text」なので注意してください。

switch: rename flash:config.text flash:config.text.old

これで起動時に読み込むパスワードの分からなくなったコンフィグレーションファイル(config.text)がなくなり、初期化された状態で起動するようになります。 ただし、以前のコンフィグレーションも使うかもしれないので、config.text.old にリネームしておきます。

再度 dir flash: コマンドを入力して config.text.old にリネームされたことを確認しましょう。

switch: dir flash:
Directory of flash:/

    2  -rwx  1250      <date>               config.text.old
    4  -rwx  3537      <date>               no
    5  -rwx  5         <date>               private-config.text
    6  -rwx  2072      <date>               multiple-fs
  568  drwx  192       <date>               c2960-lanbasek9-mz.122-55.SE8

18995200 bytes available (13518848 bytes used)

5.スイッチを起動

boot コマンドを入力し、スイッチを起動させます。

switch: boot
Loading "flash:/c2960-lanbasek9-mz.122-55.SE9/c2960-lanbasek9-mz.122-55.SE9.bin"...

このあと、IOSが読み込まれ起動するメッセージがずらずらーっと表示されます(1~2分かかります)。

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

Press RETURN to get started! が表示されたらEnterを押します。

Would you like to enter the initial configuration dialog? [yes/no]: が表示されたら[ Ctrl + c」を押します。

Press RETURN to get started!
(途中省略)
Would you like to enter the initial configuration dialog? [yes/no]:
Switch>

7.特権EXECモードに移行

Switchプロンプトで enable と入力し、特権EXECモードに移行します。

Switch>enable
Switch#

プロンプトがSwitch#に変わります。

8.コンフィグレーションファイルのファイル名を元に戻す

さきほどリネームした config.text.old を config.text に戻します。

Switch#rename flash:config.text.old flash:config.text
Destination filename [config.text]?  Enterを押す
Switch#

起動設定ファイルを復元した後、実際の動作にも反映させるため、DRAMにもコピーします。

Switch#copy flash:config.text system:running-config
Destination filename [running-config]?  Enterを押す

これで、コンフィグレーションが即時有効となります。IFの状態など、ずらずらーっとメッセージが表示されるかも知れません。

9.グローバルコンフィグレーションモードに移行

configure terminalと入力し、グローバルコンフィグレーションモードに移行します。

Switch#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#

10.パスワード再設定

enable secre コマンドでパスワード(以下の例では test-pass)を再設定し、endで グローバルコンフィグレーションモードから抜けます。

Switch(config)#enable secret 0 test-pass
Switch(config)#end

11.設定保存

設定を保存します。

Switch#copy running-config startup-config
Destination filename [startup-config]? Enter を押す
Building configuration...
[OK]
0 bytes copied in 0.763 secs (0 bytes/sec)

シナプスではネットワーク機器を撤去し予備機とする場合は、必ずコンフィグレーションを消去するようにしております。これは次に使う人が困らないようにするためのほか、廃棄の際の情報流出防止の意味合いもあります。 ですので、あまりパスワードが分からない機器で困ることはないのですが、実際さまざまなネットワーク機器にそれなりにリカバリする方法があります。今回はCiscoスイッチのパスワードリカバリについて紹介させていただきました。みなさまの一助となれば幸いです。