
أمثلة ودلائل إعدادات preseed للتثبيت الآلي لـ Kali Linux دون تدخّل يدوي، بما في ذلك تقسيم الأقراص واختيار الحزم وخيارات الإقلاع.
تُعد ملفات Debian preseed أدوات مفيدة لأتمتة تثبيت وتكوين توزيعة مبنية على Debian. تستطيع Kali الاستفادة من هذه الملفات لتسريع عمليات التثبيت عبر تثبيت مخصص ومتسق دون الحاجة إلى تدخل يدوي. لمزيد من المعلومات التفصيلية حول ملفات preseed، يُرجى الرجوع إلى دليل تثبيت Debian أو ملف نصي مثال لـ preseed من Debian.
في حين توجد طرق عديدة لتخصيص ملف preseed، حيث توفر الحزم المثبتة المزيد من الخيارات، سيكون هذا المستودع مخصصًا لاستضافة وإنشاء ملفات أبسط تسمح بخيارات تثبيت Kali مخصصة بشكل خفيف.
للحصول على دليل شامل ومفيد جدًا حول استخدام ملفات preseed، يمكننا الاطلاع على ويكي تثبيت Debian. يتضمن هذا الخطوات اللازمة لدمج preseed في ملف iso، أو استخدام USB لحمل ملف preseed، أو الاستفادة من اتصال شبكة لجلب ملف preseed من عنوان URL.
ملاحظة يجب أن نذكرها وهي أنه لاستخدام preseed عبر URL، يجب اتباع موجه الإقلاع التالي:
/install.amd/vmlinuz vga=788 auto=true priority=critical url=link-to-preseed.cfg initrd=/install.amd/initrd.gz --- quiet
يمكننا تعديل معامل الإقلاع على نظام يُقلع عبر BIOS إما بالضغط على ESC للحصول على موجه فارغ أو بالضغط على E لتعديل خيار إقلاع موجود مسبقًا. على أنظمة UEFI يمكننا إما الضغط على C للحصول على موجه فارغ أو E لتعديل خيار إقلاع موجود مسبقًا.
إذا كنا نرغب في استخدام خيار إقلاع موجود مسبقًا، يمكننا إضافة موجهات الإقلاع التالية للحصول على تثبيت آلي:
language=en country=US locale=en_US.UTF-8 keymap=us auto=true priority=critical url=link-to-preseed.cfg
عند إنشاء ملف preseed، هناك علامات معينة يجب على المرء دائمًا استخدامها لضمان تثبيت دون تدخل يدوي. دعنا نلقي نظرة على كل واحدة منها.
ما يلي سيختار تلقائيًا إعداداتنا المستندة إلى الموقع: الإعداد المحلي (locale)، واللغة، والدولة. لمزيد من المعلومات حول الإعدادات المحلية، يمكننا زيارة إدخال ويكيبيديا Debian. إذا كنا غير متأكدين من الإعداد المحلي الذي يجب استخدامه، فيمكننا اختيار الخيار الإنجليزي، وهو ما هو مضبوط أدناه. اختياريًا، لمعرفة إعدادنا المحلي، يمكننا استخدام جهاز مثبت بالفعل وتشغيل الأمر locale. فقط تأكد من إدخال المعلومات قبل .UTF-8.
kali@kali:~$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
خيار preseed:
d-i debian-installer/locale string en_US
ومع ذلك، إذا كنا نرغب إما في تحديد كل هذه الخيارات يدويًا، أو تغيير واحد منها فقط بعد استخدام ما سبق، فيمكننا بعد ذلك استخدام ما يلي لضبط كل خيار:
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i debian-installer/locale string en_US.UTF-8
بعد ذلك سنحتاج إلى ضبط تخطيط لوحة المفاتيح (keymap)، وهو غير مضبوط من خلال الإعداد المحلي. يمكننا استخدام الأمر localectl لمعرفة تخطيطنا، إذا كان لدينا جهاز مثبت بالفعل.
kali@kali:~$ localectl
System Locale: (unset)
VC Keymap: (unset)
X11 Layout: us
X11 Model: pc105
خيار preseed:
d-i keyboard-configuration/xkb-keymap select us
ضع في اعتبارك أنه يمكن تغيير كل من الإعداد المحلي وتخطيط لوحة المفاتيح لاحقًا، باستخدام dpkg-reconfigure locales وdpkg-reconfigure keyboard-configuration على التوالي.
يمكننا الآن تعديل إعدادات الشبكة لدينا. ضع في اعتبارك أن هذا لن يُستخدم إذا كنا نستخدم url preseeding. نحتاج أولاً إلى اختيار الواجهة الخاصة بنا. لهذا الخيار، نستخدم فقط auto لأنه الأسهل. يمكننا مع ذلك اختيار واجهة محددة إذا لزم الأمر، مثل eth0.
d-i netcfg/choose_interface select auto
تُستخدم خيارات preseed التالية لتخطي طلب اسم المضيف واسم النطاق، حيث سيتم توفيرهما عبر DHCP أو باستخدام القيم المضبوطة مسبقًا: 'kali' لاسم المضيف ونطاق فارغ:
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
إذا أردنا ضبط اسم مضيف أو اسم نطاق بأنفسنا، يمكننا فعل ذلك بتعديل السلسلة إلى ما نرغب به. ضع في اعتبارك أن قيم DHCP ستُعطى الأولوية على أي قيمة نضبطها، ولكن يمكن تجنب ذلك عن طريق ترميز القيمة يدويًا (hard coding) كما يلي:
d-i netcfg/hostname string personal-hostname
ننتقل الآن إلى مرايا الشبكة. تُستخدم الخيارات التالية لضبط المرآة التي نرغب في استخدامها لـ Kali وإعدادات الوكيل إذا كان يجب علينا استخدامها. إذا كنت غير متأكد، فغالبًا لا تحتاج إلى ضبط أي شيء. في حالتنا، نقوم بتعديل قيمة اسم المضيف لتكون مرآة Kali Cloudflare، وهي kali.download. إذا كنا نرغب في الحصول على أسرع مرآة متاحة لنا، يمكننا بدلاً من ذلك استخدام الخيار http.kali.org:
d-i mirror/country string manual
d-i mirror/http/hostname string kali.download
d-i mirror/http/directory string /kali
d-i mirror/http/proxy string
هناك خياران آخران يمكننا اختيار تضمينهما أيضًا. سيضبط هذان الخياران البروتوكول المستخدم للاتصال بالمرآة بالإضافة إلى الحزمة (suite) التي نختارها. ما لم تكن لديك حاجة لتغيير أي من الخيارين، فمن الأفضل تركهما خارج ملف preseed الخاص بنا:
d-i mirror/protocol string http
d-i mirror/suite string kali-rolling
ننتقل الآن إلى إنشاء المستخدم. نبدأ أولاً بتعيين اسمنا الكامل ثم اسم المستخدم. يمكن أن يتكون الاسم الكامل من عدة كلمات، أما اسم المستخدم فلا يمكن ذلك. تأكد من استخدام كلمة واحدة لاسم المستخدم الخاص بك. يمكننا بعد ذلك تعيين كلمة المرور كما نشاء. إذا كنت لا ترغب في أن تكون كلمة مرورك نصًا عاديًا، فيمكننا اختيار استخدام تجزئة مشفرة. يمكننا توليدها باستخدام الأمر mkpasswd أو عبر وسائل أخرى عديدة، والتي لن يتم تغطيتها:
d-i passwd/user-fullname string Kali Linux
d-i passwd/username string kali
d-i passwd/user-password password kali
d-i passwd/user-password-again password kali
يمكن استخدام تجزئة مشفرة على النحو التالي:
d-i passwd/user-password-crypted password [hash]
ننتقل الآن إلى إعداد الساعة. تقوم الخيارات المستخدمة بما يلي: إخبار المثبت بأن ساعة النظام مضبوطة على UTC، وتطبيق قيمة منطقة زمنية يجب أن يستخدمها تثبيت Kali كساعته، ثم استخدام NTP لضبط ذلك الوقت.
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
يمكننا البحث عن قيمة لضبط المنطقة الزمنية عليها في المجلد /usr/share/zoneinfo/، أو يمكننا استخدام الأمر التالي:
kali@kali:~$ cat /etc/timezone
US/Eastern
ننتقل الآن إلى تقسيم القرص. هذا بسهولة الجزء الأكثر تعقيدًا في إنشاء ملف preseed، حيث توجد عدة قيم يجب ضبطها بناءً على نوع النظام الذي تستخدمه، ونوع التثبيت الذي تريده.
نبدأ أولاً بضبط الإعدادات التلقائية لـ partman، أداة التقسيم. نقول إن هذا سيكون تثبيتًا عاديًا، بدلاً من استخدام LVM (lvm) أو التشفير (crypto)، ثم نقول باستخدام كامل مساحة القرص الصلب المتاحة. يمكننا أيضًا استخدام أحجام أصغر، مثل 20 GB أو نسبة مئوية من المساحة الحرة. يحدد الخيار الأخير هنا كيفية تكوين ملفاتك، سواء كان كل شيء في قسم واحد (atomic)، أو إذا كان مجلد /home في قسم منفصل (home) أو إذا كانت /home, /var, و/var/tmp جميعها في أقسام منفصلة (multi).
d-i partman-auto/method string regular
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
بعد ذلك لدينا سلسلة من المطالبات التي نوافق عليها. بالموافقة على كل هذه المطالبات، سيقوم partman تلقائيًا بتقسيم القرص وفقًا للقيم التي ضبطناها أعلاه.
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
انتهينا أخيرًا من تقسيم القرص، ويمكننا الانتقال إلى اختيار الحزم. ستؤدي الخيارات التالية إلى تثبيت Kali Xfce نموذجي. لعرض القائمة الكاملة للقيم المتاحة التي يمكننا ضبطها، يمكننا الاطلاع على مستودع حزم tasksel على GitLab الخاص بـ Kali. بعض الخيارات هي desktop-gnome وdesktop-kde وmeta-top10 وmeta-everything وmeta-purple. نضيف ببساطة الحزم التي نرغب في استخدامها وتأكد من استخدام فاصلة كفاصل.
tasksel tasksel/first multiselect standard,core,desktop-xfce,meta-default
من الممكن تحديد حزم إضافية للتثبيت بشكل فردي:
d-i pkgsel/include string openssh-server build-essential
من الممكن أيضًا ترقية الحزم بعد debootstrap إما باستخدام safe-upgrade أو full-upgrade أو عدم الترقية على الإطلاق باستخدام none:
d-i pkgsel/upgrade select none
بقي قسم واحد فقط: خيارات grub وإعادة التشغيل. هذه الخيارات واضحة نسبيًا. نُعلم grub أنه من الآمن إعداد قسم الإقلاع إذا اكتشف Debian فقط، ثم نخبره أنه من الآمن إعداد قسم الإقلاع إذا اكتشف نظام تشغيل آخر مثبتًا. بينما يكون الخيار الأول آمنًا في معظم الظروف، يمكن أن يكون الخيار الثاني محفوفًا بالمخاطر عند استخدام الإقلاع المزدوج. إذا كنت لا تستخدم الإقلاع المزدوج، يمكننا ضبطه على true، وإلا فقد نرغب في إزالة الخيار واختيار اختيارنا يدويًا.
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
سيضبط هذان الخياران الأخيران جهاز الإقلاع ثم يخبران النظام بإعادة التشغيل إلى Kali. في مثالنا نقوم بترميز جهاز الإقلاع يدويًا ليكون /dev/sda، لأننا قد نستخدم محرك أقراص USB لتثبيت Kali. إذا كنا لا نستخدم محرك أقراص USB، فيمكننا اختيار استخدام القيمة default، ولكن من الأكثر أمانًا ترميز القيمة يدويًا.
d-i grub-installer/bootdev string /dev/sda
d-i finish-install/reboot_in_progress note