كيفية تثبيت Ubuntu 22.04 مع تشفير القرص الكامل

0 الأسهم
0
0
0
0

  مقدمة

نص تثبيت الصورة يقدم Hetzner Rescue System طريقة سهلة لتثبيت توزيعات Linux المختلفة.

يوضح هذا البرنامج التعليمي كيفية استخدام installimage لتثبيت نظام Ubuntu 22.04 المشفر وإضافة إلغاء القفل عن بعد عبر SSH (dropbear) في initramfs المخزن على قسم منفصل. /التمهيد العروض.

المتطلبات الأساسية
  • حساب هيتزنر
  • تم تشغيل الخادم إلى نظام الإنقاذ.
  • مفتاح عام SSH RSA أو ECDSA أو ED25519
  • لا توجد شبكات خاصة متصلة في Hetzner Cloud

الخطوة 1 - إنشاء أو نسخ المفتاح العام لـ SSH

لفتح النظام المشفر عن بُعد، ستحتاج إلى مفتاح SSH. ستستخدم هذا المفتاح لاحقًا لتسجيل الدخول إلى النظام المُشغَّل. يدعم خادم Dropbear SSH المُضمَّن في نظام Ubuntu 22.04 مفاتيح 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 دون خيارات، يبدأ في الوضع التفاعلي ويفتح محررًا بعد اختيار صورة التوزيع. بعد الخروج من المحرر، يستمر التثبيت ويُحفظ التكوين المقابل باسم /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

يقوم هذا التكوين بتثبيت Ubuntu على محرك أقراص (/dev/sda) مزود بـ /boot غير مشفر منفصل مطلوب لإلغاء القفل عن بعد.

الخطوة 3 - إنشاء أو نسخ البرنامج النصي لما بعد التثبيت

لفتح القسم المشفر عن بُعد، نحتاج إلى تثبيت خادم Dropbear SSH وإضافته إلى ملف initramfs المخزن على قسم /boot غير المشفر. يؤدي هذا أيضًا إلى تضمين 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. الآن، سجّل دخولك إلى Dropbear عبر SSH وشغّل أمر 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 المؤقتة.

بعد بضع ثوانٍ، يمكنك تسجيل الدخول إلى نظامك الجديد.

انتباه

هذا الدليل مُصمم خصيصًا لنظام أوبونتو 22.04 فقط. قد لا يعمل مع توزيعات أخرى.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً