EC2からロックアウトされたルート


8

AWS EC2インスタンスでrootログインを無効にする処理を行っていました。PermitRootLogin noを設定してsshdを再起動した直後に、私は誤って端末を閉じました-sudo特権を持つユーザーを設定する前に。その結果、ルートとしてインスタンスにアクセスするためのキーが機能せず(sshdで禁止されています)、通常のユーザーを使用してインスタンスにログインすると、ルート権限を取得できません(ルートパスワードが設定されていません)。インスタンスはubuntu 8.10を実行しています。誰もがこれをどのように修正できるか考えていますか?

回答:


9

いいえ、インスタンスを終了しないでください。すべてが失われるわけではありません。

  1. 別のインスタンスを起動し、不良インスタンスをシャットダウンします。
  2. EBSボリュームを不良インスタンスから切り離し、新しいインスタンスに接続します。
  3. 新しいインスタンスにマウントします(つまり、sudo mount / dev / xvdf1 / mnt /のようなもの)
  4. その中にchroot(sudo chroot / mnt)し、passwdと入力します。
  5. パスワードをリセットするか、その他の変更を加えます(たとえば、vi / etc / ssh / sshd_config!)
  6. control-Dを押すか、exitと入力してchrootを終了します。
  7. umount / mnt
  8. EBSボリュームを一時インスタンスから切り離します
  9. 再接続またはスナップを取り、そのスナップショットに基づいて新しいAMIを作成します
  10. 固定ボックスを起動してください!

PS次回Userifyでユーザーのキーを管理してみてください:)


1
注:AWSマーケットプレイスからインスタンスを起動した場合、これは機能しません(これらのインスタンスは、他の場所にルートボリュームをマウントできません)。これには、CentOSなどの特定のオープンソースディストリビューションが含まれます。
fatal_error

3

脆弱性を見つけることなく、Linuxマシンでrootアクセスを取得する唯一の方法は、シングルユーザーモードで起動してパスワードをリセットすることです。ただし、EC2インスタンスにはKVMレベルのアクセス権がないため、これは不可能です。

そのEC2インスタンスを終了して、別のインスタンスを起動する必要があります。ただし、ルートログインを無効にすることは、EC2の一般的なパラダイムに反しています。Amazonでは、インスタンスの起動時に公開鍵を提供し、initスクリプトでそれを/root/.ssh/authorized_keysにインストールし、sshdを「PermitRootLogin without-password」に設定して、キーペアのログインのみを強制することを推奨しています。このようにして、誤って自分のrootアカウントからロックアウトされることは決してありません(秘密鍵を紛失しない限り)。

将来的には、sudoアクセスを持つユーザーを作成し、ログイン後すぐに「画面」セッションを開始して、切断によって作業が停止または中断されないようにすることをお勧めします。アプリを構成してインストールしたら、AMIをバンドル、アップロード、およびバンドルして、必要に応じて新しいインスタンスを起動できるようにします。


画面の提案では+1ですが、私はtmuxを好みます。
h0tw1r3

以下の解決策-EBSボリュームのマウントはこの場合は機能します-インスタンスにEBSがあると仮定します
AliGibbs 2014年

1

rootログインを無効にする前にインスタンスに加えた変更でAMIを保存しましたか?そうでない場合は、最初に使用したベースAMIに戻って、新しいEC2インスタンスを作成する必要があります。


-1

これを行う1つの方法は、ルートシェルを付与できるシステム内のローカルの脆弱性を見つけることです。ボックスにインストールされているソフトウェアのリストを取得し、それぞれにgoogle / securityfocusします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.