フルディスク暗号化を使用してUbuntu 22.04をインストールする方法

0 株式
0
0
0
0

  導入

スクリプト インストールイメージ Hetzner Rescue System は、さまざまな Linux ディストリビューションを簡単にインストールする方法を提供します。.

このチュートリアルでは、installimage を使用して暗号化された Ubuntu 22.04 システムをインストールし、別のパーティションに保存されている initramfs に SSH (dropbear) 経由でリモート ロック解除を追加する方法を説明します。 /ブート ショー。.

前提条件
  • ヘッツナーアカウント
  • サーバーはレスキューシステムに起動されました。
  • RSA、ECDSA、またはED25519 SSH公開鍵
  • Hetzner Cloudにはプライベートネットワークは接続されていません

ステップ1 – SSH公開鍵を作成またはコピーする

暗号化されたシステムをリモートでロック解除するには、SSHキーが必要です。このキーは、後で起動したシステムにログインする際に使用します。Ubuntu 22.04に含まれるdropbear SSHデーモンは、RSAキーとECDSAキーのみをサポートしています。これらのキーをお持ちでない場合は、作成する必要があります。ED25519キーまたはECDSAキーの使用をお勧めします。.

たとえば、SSH キー ED25519 を作成するには、次のコマンドを実行します。

ssh-keygen -t ed25519

公開鍵をレスキューシステムにコピーします (例: scp を使用)。

scp ~/.ssh/id_ed25519.pub root@<your-host>:/tmp/authorized_keys

ステップ2 – インストールイメージ構成ファイルを作成またはコピーする

installimage をオプションなしで実行すると、対話モードで起動し、ディストリビューションイメージを選択した後にエディタが開きます。エディタを終了した後、インストールが続行され、対応する設定がインストールされたシステムの /installimage.conf に保存されます。このチュートリアルでは、直接インストールを行うために、この設定ファイルを渡します。.

次の内容を含む /tmp/setup.conf ファイルを作成するか、レスキュー システム上のサーバーにコピーします。.

注: Secret を安全なパスワードに置き換え、必要に応じてドライブ名とパーティションを調整します。.

CRYPTPASSWORD secret
DRIVE1 /dev/sda
BOOTLOADER grub
HOSTNAME host.example.com
PART /boot/efi esp 256M
PART /boot ext4 1G
PART / ext4 all crypt
IMAGE /root/images/Ubuntu-2204-jammy-amd64-base.tar.gz
SSHKEYS_URL /tmp/authorized_keys

この構成では、リモート ロック解除に必要な、暗号化されていない別の /boot を持つドライブ (/dev/sda) に Ubuntu がインストールされます。.

ステップ3 – インストール後のスクリプトを作成またはコピーする

暗号化されたパーティションをリモートでロック解除するには、dropbear SSHサーバーをインストールし、暗号化されていない/bootパーティションに保存されているinitramfsに追加する必要があります。これにより、ネットワーク設定のためにdhclientも追加されますが、追加の設定は行われません。Hetzner Cloudのサポートを有効にするには、RFC3442ルートのサポートを含むフックを追加する必要があります。.

これらの追加手順を実行するには、installimage のインストール後スクリプトが必要です。

レスキュー システムに次の内容のファイル /tmp/post-install.sh を作成します。

#!/bin/bash
add_rfc3442_hook() {
cat << EOF > /etc/initramfs-tools/hooks/add-rfc3442-dhclient-hook
#!/bin/sh
PREREQ=""
prereqs()
{
echo "\$PREREQ"
}
case \$1 in
prereqs)
prereqs
exit 0
;;
esac
if [ ! -x /sbin/dhclient ]; then
exit 0
fi
. /usr/share/initramfs-tools/scripts/functions
. /usr/share/initramfs-tools/hook-functions
mkdir -p \$DESTDIR/etc/dhcp/dhclient-exit-hooks.d/
cp -a /etc/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes \$DESTDIR/etc/dhcp/dhclient-exit-hooks.d/
EOF
chmod +x /etc/initramfs-tools/hooks/add-rfc3442-dhclient-hook
}
remove_unwanted_netplan_config() {
cat << EOF > /etc/initramfs-tools/scripts/init-bottom/remove_unwanted_netplan_config
#!/bin/sh
if [ -d "/run/netplan" ]; then
interface=\$(ls /run/netplan/ | cut -d'.' -f1)
if [ \${interface:+x} ]; then
rm -f /run/netplan/"\${interface}".yaml
fi
fi
EOF
chmod +x /etc/initramfs-tools/scripts/init-bottom/remove_unwanted_netplan_config
}
# Install rfc3442 hook
add_rfc3442_hook
# Adding an initramfs-tools script to remove /run/netplan/{interface}.yaml,
# because it is creating unwanted routes
remove_unwanted_netplan_config
# Update system
apt-get update >/dev/null
apt-get -y install cryptsetup-initramfs dropbear-initramfs
# Copy SSH keys for dropbear and change the port
cp /root/.ssh/authorized_keys /etc/dropbear/initramfs/
sed -ie 's/#DROPBEAR_OPTIONS=/DROPBEAR_OPTIONS="-I 600 -j -k -p 2222 -s"/' /etc/dropbear/initramfs/dropbear.conf
dpkg-reconfigure dropbear-initramfs
update-initramfs -u

重要: インストール後にスクリプトを実行可能にします。

chmod +x /tmp/post-install.sh

ステップ4 – インストールを開始する

インストールを開始する前に、次のファイルの内容を再確認してください。

  • /tmp/authorized_keys – 公開SSH鍵(RSA、ECDSA、またはED25519)
  • /tmp/setup.conf – インストールイメージの設定
  • /tmp/post-install.sh – 実行可能ファイルで、インストール後のスクリプトが含まれています。.

次のコマンドでインストールを開始する準備が整いました。

installimage -a -c /tmp/setup.conf -x /tmp/post-install.sh

インストールが完了するまで待って、debug.txt にエラーがないか確認します。.

ステップ5 – インストールしたシステムを起動する

インストールが完了し、エラーが解決したら、再起動を実行してサーバーを再起動し、新しくインストールしたシステムを起動できます。KVMを接続している場合、またはクラウドインスタンス上のリモートコンソール経由で起動プロセスを確認することもできます。.

しばらくすると、サーバーがpingに応答するはずです。SSH経由でdropbearにログインし、cryptroot-unlockを実行して暗号化されたパーティションのロックを解除してください。.

  • キーED25519またはECDSAを使用
ssh -p 2222 root@<your-host>
  • RSAキーを使用

RSA の場合、このキーが受け入れられることを明示的に指定する必要があります。.

ssh -o "PubkeyAcceptedKeyTypes +ssh-rsa" -p 2222 root@<your-host> -i ~/.ssh/id_rsa

例:

$ ssh -o "PubkeyAcceptedKeyTypes +ssh-rsa" -p 2222 root@<your-host> -i ~/.ssh/id_rsa
BusyBox v1.30.1 (Ubuntu 1:1.30.1-7ubuntu3) built-in shell (ash)
Enter 'help' for a list of built-in commands.
# cryptroot-unlock 
Please unlock disk luks-80e097ad-c0ab-47ce-9302-02dd316dc45c:

パスワードが正しい場合、ブート処理は続行され、一時的な SSH セッションから自動的に切断されます。.

数秒後、新しいシステムにログインできるようになります。.

注意

このガイドはUbuntu 22.04専用です。他のディストリビューションでは動作しない可能性があります。.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

あなたも気に入るかもしれない