Ushioです。
我々のサーバはサービス貸しの「レンタルサーバ」でなく「VPS(仮想専用サーバ)」で運用している。サーバ1台丸々好きに使えないと不便だし、いろいろできないし。
今回本当に自分の馬鹿野郎と思ったのだが、rootパスワードを失念してしまったのだ。そう、3人で運営しているZacoプロジェクトのサーバなら誰かに聞けばいいわけだが、自分でポコポコ借りてる他のConoHaサーバでソレは起きた。いろいろ使って比較してみないとね。
うん、パスワードを統一なんてことせず、サーバ毎でキチンとパスワードを変えていて、しかも思い出せないくらいの桁数にしていて、何処にもメモを残していないという点は「おぉ、自分偉いゾ」と思った。
…自分の馬鹿野郎。
Contents
忘れたrootパスワードのリカバリ方法
概ねのリカバリアイデアはこんな感じ
- 思い出せる限りトライ、兎に角トライ
- クラックツールで解析かけちゃう
- シングルユーザモードで起動
1つ目は、2日粘って、頭を抱えて諦めた。ばぁかやるぉう。だんだん北野映画の感じが出てくる。
2つ目、3つ目でなやんだ。なんせ、VPS(仮想専用サーバ)とはいえ、大元の筐体は共有な訳だ。クラックツールで攻撃なんぞした日には叱られるだろう、きっと。
そして3つ目だ。VPSで出来るの?と調べるも、さくらの情報はあってもConoHaの情報は出てこない。試行錯誤して成功したので手順を紹介する。
シングルユーザモードでパスワードリカバリする流れ
まずは下記の流れを把握してからトライしてみてほしい。
- VPSのコンソール画面を開く
- 特殊キー「ctrl+alt+delete」キーを送出
- Booting CentOS ~~~ seconds…の画面で「Enter(Return)キー」押下
- GRUBが起動するのでKernelを確認し「eキー」で選択
- kernel設定を編集し「Enter(Return)キー」で決定
- 「bキー」押下するとboot開始。シングルユーザモードで起動できる。
- 新しいrootパスワードを設定して再起動
1.VPSのコンソール画面を開く
以下はConoHaのVPSの画面を例とする。
サーバ一覧から該当のサーバを選ぶ。
横に並ぶメニューから「コンソール」をクリック
2.コンソール画面にて特殊キーで再起動
左上のメニューの「特殊キー」をクリックし、「Ctrl+Alt+Del」をクリック。
送信して良いか聞かれるので「はい」をクリック
・さくらの場合
-サーバ一覧を表示
-該当サーバを選択(チェックマークをつける)
-強制再起動を実行
-すぐに該当サーバを再度選択し、VNCコンソールをクリック
3.ブート画面でキーを押下しGrubメニューを表示
Bootのカウントダウン中にAnyKeyを押す。ここでは「Enter(Return)」としよう
成功した?モタモタしてると1.からやり直しね
4.Kernelを選択し、設定メニューへ
GRUBが起動する。Kernel選択だが、VPSの仕様によると思う。かくいう私は「なんで3つもある?」と悩んだがここは1番上で成功したので他は試していない。
(私の環境では) 一番上を選択した状態で「eキー」を押下
5.Kernel設定をEdit
上下キーで上から2番めのkernel〜〜を選択し「e」を押下
こんな画面。長〜い設定が一行に表示されているため途切れている。左キーを押していけば表示以前の部分が見れる。
◆結論
行末尾から下記部分は削除
console=tty0 console=ttyS0,~~~~~
シングルユーザモードで起動する設定「1」「S」「single」いずれかを削除した部分に入力し、「Enter(Return)キー」で編集終了する。
quitの手前まで消す。半角スペースは残しておくのだ。
シングルユーザ起動設定の1と入力、Enter押下。
Enterするとこのメニューに戻りますね。
※余談
Grub設定はLPIC lv1で結構勉強した気がしたが、すっかり忘れている。
上記のconsole=…の設定を消さずに末尾に1を書いてブートすると、途中でブートが(表示が?)止まる。そして、末尾からもっと設定を消して「root=」まで消しちゃうとkernelパニックで起動しなくなってしまう。…まぁVPSのWebコンソールメニューで強制終了かけてどうにか起動するわけですが。勉強します。
参考:https://www.shoshin.co.jp/c/lsi/scs/faqlinux_grub.html
6.「b」でブート開始、シングルユーザモードで起動
上記5.の最後の画像、メニュー画面で「bキー」を押下する。すると設定した内容でブート開始。
…
成功した?「#プロンプト」が返ってきていたら成功!おめでとう、ここまで来たら解決したも同然。
7.rootパスワード設定
passwdコマンドでルートパスワード再設定。
設定したら普通に再起動。私はrebootコマンドは使わずshutdownコマンド派。
無事に起動したら成功ですね。
あとは設定したパスワードでログイン出来るか試してみてください。
おつかれさまでした。
まとめ
サーバの基本のセキュリティ設定で、簡単にrootログイン出来るシングルユーザモードに関しても言及される。普通はシングルユーザモードも停止するだろう。
また、VPSであればWebコンソールからパスワードリセットできてしまう事がわかる。要するに、サーバ本体のrootパスワードも重要だが、サーバのWebコンソールログインのユーザとパスワードも厳重に管理すべきだ。十分に気をつけよう。
ZacoUshio