MX204でのRootパスワードリカバリー手順
はじめに
今回は、私たちが遭遇したJuniper MX204におけるパスワード設定ミスによるログイン不可事象と、その切り分け過程で判明したJUNOSがFreeBSD 10化した後の変更点について記載します。
従来のJUNOSパスワードリカバリー手順では解消しなかった事例として、皆さんの参考になるであろう技術情報となります。
問題の発生経緯
事象概要
発生日時:2025年9月19日
対象機器:Juniper MX204
起因:構築メンバーによるパスワード設定ミス
設定ミスの詳細
- 構築時に行うべき設定
[edit system root-authentication]
user@host# 'set plain-text-password'
New password: [実際のパスワード入力]
- 誤って以下のように設定してしまいました:
[edit system root-authentication]
user@host# 'set encrypted-password "[平文パスワード]"'
問題の本質
encrypted-passwordオプションは、既に暗号化済みのハッシュ値を設定するためのものです。平文パスワードをencrypted-passwordで設定すると、システムはそれを既に暗号化されたハッシュ値として扱い、さらに暗号化処理を施すため、ログインが不可能になります。
正しい理解:
- plain-text-password: 平文パスワードを入力→システムが自動暗号化
- encrypted-password: 暗号化済みハッシュ値を直接設定
Juniper公式ドキュメント
によると、この設定ミスについて以下の警告文で明確に注意が促されています:
⚠️ 注意: encrypted-passwordオプションは、パスワードが既に暗号化されており、暗号化されたバージョンのパスワードを入力する場合以外は使用しないでください。平文パスワードまたは空の引用符(" ")でencrypted-passwordオプションをコミットすると、rootとしてデバイスにログインできなくなり、このパスワードリカバリープロセスを繰り返す必要があります。
従来手順の試行
Juniper公式ドキュメント Recover a Root Password
従来のJUNOS Rootパスワードのリカバリー手順を試行
- 1.起動中、以下のプロンプトが表示されたら、スペースバーを押して、ルーターのブートストラップ ローダーのコマンド プロンプトにアクセスします。
Hit [Enter] to boot immediately, or space bar for command prompt.
Booting [kernel] in 9 seconds...
- 2.'boot -s' と入力し、システムをシングルユーザー モードで起動します。
boot -s
- 3.リカバリーコマンド実行。
Enter full pathname of shell or 'recovery' for root password recovery or RETURN for /bin/sh: recovery
- 4.root パスワードを設定
[edit]
user@host# set system root-authentication plain-text-password
失敗の原因
- Junos kernel upgrade to FreeBSD 10+に記載されたMX204のJUNOSカーネルのFreeBSD 10へのアップグレード情報に気づかず、従来のパスワードリカバリー手順をそのまま適用したため、うまくいきませんでした。
新しいリカバリー手順の試行
- "①-1"Main Menuに移動
Autoboot in 3 seconds... (press Ctrl-C to interrupt) Autoboot in 2 seconds... **(press Ctrl-C to interrupt)** Main Menu
- "①-2"Main Menu表示
1. Boot [J]unos volume
2. Boot Junos volume in [S]afe mode
3. [R]eboot
4. [B]oot menu
5. [M]ore options
- "②"More optionを選択
1. Boot [J]unos volume
2. Boot Junos volume in [S]afe mode
3. [R]eboot
4. [B]oot menu
5. **[M]ore options**
Choice: Main Menu
- "③"Recovery mode - [C]LIを選択する
1. Recover [J]unos volume
2. **Recovery mode - [C]LI**
3. Check [F]ile system
4. Enable [V]erbose boot
5. [B]oot prompt
6. [M]ain menu
Choice: Main Menu
- "④"パスワードリカバリー&再起動
root> configure
Entering configuration mode
[edit]
root# show | display set
set version 23.4R2.13
set system root-authentication encrypted-password "C1sco12345"
[edit]
root# delete system root-authentication encrypted-password
[edit]
root# set system root-authentication plain-text-password
New password:[実際のパスワード入力]
Retype new password:[実際のパスワード入力]
root# commit and-quit
root> request system reboot at now
Reboot the system at now? [yes,no] (no) yes
まとめ
今回、これをお読みの皆さんはそもそも"set encrypted-password"を設定してしまうようなミスはしないかもしれませんが、実際に今回の設定ミスが発生した場合は、メーカーサイトに記載された従来の手順でリカバリーができないため、焦ると同時に作業が止まってしまい、調査に時間を要してしまいます。
そんな時に皆さんがこのサイトへたどり着いてくれて、皆さんのお力になることができれば非常に嬉しいです。
私たちも今回の経験により、FreeBSD10化されたJUNOS機器に対する理解が深まり、今後同様の問題が発生した際には焦ることなく素早い対応が可能となりました。
今後への活用
本件で得られた知見は以下の場面で活用できますし、私たちも活用していきます:
- 新規機器導入及びバージョン変更時:FreeBSD 10化の事前確認
- 障害対応時:適切なリカバリー手順の選択
- 技術研修時:実際のトラブル事例を用いた教育
- 手順書整備:機器の世代別対応手順標準化
参考資料