技術部ネットワーク課の若松です。
シナプスではシスコシステムズ社製のルータやスイッチを触る機会が比較的多いのですが、そのルータ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スイッチのパスワードリカバリについて紹介させていただきました。みなさまの一助となれば幸いです。