web-dev-qa-db-ja.com

Ubuntu 18.04のDropbear-initramfs

暗号化されたドライブを備えた専用サーバーをセットアップしようとしていますが、オンラインで起動して実行するためのヘルプが見つかりましたが、dropbear-initramfsを正しく起動するのに苦労しています。 (これらの行に沿ったチュートリアル https://hamy.io/post/0005/remote-unlocking-of-luks-encrypted-root-in-ubuntu-debian/

そこで、dropbear-initramfsパッケージをインストールすると、キーが見つからないというエラーが表示され、機能しません。 dropbearを別のポートで実行するように設定するauthorized_keysを追加し、initramfsを更新しますが、ブート時にdropbearが起動せず、通常のユーザー名/パスワードが要求されるだけです。キーを適切にセットアップしたら、パッケージをdpkg再構成しようとしましたが、エラーメッセージは表示されなくなりましたが、dropbearはまだ起動しません。

誰かが非常に高く評価されるポインタを持っている場合:)

宜しくお願いします

追伸:すでに開かれている質問を見ましたが、それらの大半はかなり古くなり、dropbear + initramfsは、ubuntu 16.04以降(dropbear-initramfsパッケージを使用)より簡単になると思われます。

2
Adraen

あなたはほぼすべきことをしました...

ショートバージョン:

TL; DR

セキュリティ上の問題により、クライアントの公開キーを含むauthorized_keysが削除されました...

  1. Dropbearとopensshは両方ともSSHサーバーですが、秘密鍵と公開鍵の原則は同じですが、鍵の形式は同じではありません。

    • DropbearのDER形式
    • 秘密鍵のopensshのPEM形式
    • サーバー側のauthorized_keysファイル、
    • クライアント側のknown_hostsファイル。

    そのため、sshdbclientの両方を使用してdropbearサーバーに接続できますが、/usr/lib/dropbear/dropbearconvert使用する必要がありますは、sshがdropbearと互換性があること、またはdbclientsshdと互換性があることを確認します。

  2. dropbearはsshdよりもはるかに小さいため、より基本的ですが、Linuxブートプロセスの初期段階で、特にPXEやiPXEなどのブートローダーを使用する場合に、SSH公開キー専用サーバーを使用できると便利です。
    そのためには、dropbearをinitファイルシステムに統合する必要があります(initrdイメージ)。
    Ubuntuパッケージdropbear-initramfsをインストールする必要があります(Ubuntu 18.04でバージョン2017.75-3build1を使用しています)。
    構成ファイル(config)、サーバー秘密鍵、rsa、dss、ecdsa(/etc/dropbear-initramfs/)、および受け入れられるクライアントの公開鍵(dropbear_*_Host_key)を含むすべてのdreopbearの設定は、authorized_keysフォルダーにあります。正しいdropbearフォーマット。
    次に、/boot/ディレクトリ内の現在のinitrdイメージファイルを更新するには、以下を起動する必要があります。

    Sudo update-initramfs -u
    

    このパッケージには、/usr/share/initramfs-tools/hooks/dropbearinitrdイメージを構築するスクリプトと、/usr/share/initramfs-tools/scripts/init-premount/dropbearでブートプロセスの初期段階で実行するスクリプトが付属しており、それらの最後のスクリプトはinitrdイメージ内に埋め込まれています。

  3. 一部のディストリビューションは、特定の条件下でauthorized_keysを削除して、初期段階でssh接続を防止します。これを回避するには、これを確認し、次のように回避する必要があります。

    $ cd /usr/share/initramfs-tools/scripts/
    $ grep -R authorized_keys *
    init-bottom/dropbear:# delete authorized_keys(5) file to forbid new SSH sessions
    init-bottom/dropbear:#rm -f ~root/.ssh/authorized_keys
    init-bottom/dropbear:    # just kill this script), so deleting root's authorized_keys(5) file
    

    ...ここで、initramfsステージで何か問題が発生したときにマシンに接続できるように、authorized_keysの削除を軽減します。

1
Paul-et-Mickey