CRYPTTAB(5)

الاسم
crypttab - معلومات ساكنة حول نظم الملفات المعماة

الوصف

يحتوي الملف /etc/crypttab على معلومات وصفية حول الأجهزة المعماة. تُقرأ crypttab فقط بواسطة البرامج (مثل cryptdisks_start و cryptdisks_stop)، ولا تُكتب؛ يقع على عاتق مدير النظام إنشاء هذا الملف وصيانته بشكل صحيح. تُعامل مدخلات crypttab بالتتابع، لذا فإن ترتيبها مهم (يجب إدراج التبعيات أولاً).

يُوصَف كل جهاز معمى في سطر منفصل. تُفصل الحقول في كل سطر بواسطة علامات التبويب أو المسافات. الخطوط التي تبدأ بـ '#' هي تعليقات، وتُتجاهل الأسطر الفارغة. يجري فك ترميز المتتاليات الثمانية \0num داخل الحقل، والتي يمكن استخدامها للقيم التي تحتوي على مسافات أو محارف خاصة. الشرطة المائلة العكسية التي لا تبدأ متتالية ثمانية تؤدي إلى سلوك غير محدد.

يصف الحقل الأول، target، اسم الجهاز المخطط. يجب أن يكون اسم ملف بسيطًا دون أي مكونات دليل. سيُنشأ جهاز مخطط يعمي/يفك تعمية البيانات من/إلى جهاز المصدر في /dev/mapper/target بواسطة cryptsetup.

يصف الحقل الثاني، جهاز المصدر، إما الجهاز الكتلي الخاص أو الملف الذي يحتوي على البيانات المعماة. بدلاً من إعطاء جهاز المصدر صراحةً، يُدعم أيضًا UUID (أو بالترتيب LABEL و PARTUUID و PARTLABEL)، باستخدام “UUID=<uuid>” (أو بالترتيب “LABEL=<label>”، و “PARTUUID=<partuuid>” و “PARTLABEL=<partlabel>”).

يصف الحقل الثالث، ملف المفتاح، الملف المراد استخدامه كمفتاح لفك تعمية بيانات جهاز المصدر. في حالة وجود keyscript، تُعطى قيمة هذا الحقل كمعامل لـ keyscript. لاحظ أن ملف المفتاح بأكمله سيُستخدم كعبارة مرور؛ يجب ألا تكون عبارة المرور متبوعة بمحرف سطر جديد.

يمكن أن يكون أيضًا اسم جهاز (مثل /dev/urandom)، ولكن لاحظ أن LUKS يتطلب مفتاحًا مستمرًا وبالتالي فإنه لا يدعم مفاتيح البيانات العشوائية.

إذا كان ملف المفتاح هو السلسلة none، فستُقرأ عبارة المرور تفاعليًا من الطرفية. في هذه الحالة، قد تكون الخيارات check و checkargs و tries مفيدة.

الحقل الرابع، الخيارات، عبارة عن قائمة اختيارية مفصولة بفاصلة من الخيارات و/أو الأعلام التي تصف نوع الجهاز (luks أو tcrypt أو bitlk أو fvault2 أو plain وهو أيضًا المبدئي) وخيارات cryptsetup المرتبطة بعملية التعمية. الخيارات المدعومة موصوفة أدناه. بالنسبة لأجهزة dm-crypt البسيطة (plain)، فإن خيارات cipher و hash و size مطلوبة. يمكن تغيير بعض الخيارات في المخططات النشطة باستخدام cryptsetup refresh [<الخيارات>] <الاسم>. علاوة على ذلك، يمكن كتابة بعض الخيارات بشكل دائم في البيانات الوصفية لترويسات LUKS2 باستخدام علم --persistent الخاص بـ cryptsetup.

لاحظ أن الحقول الثلاثة الأولى مطلوبة وأن أي حقل مفقود سيؤدي إلى سلوك غير محدد.

حول تنسيقات CRYPTTAB المختلفة

يرجى ملاحظة أن هناك العديد من أغلفة cryptsetup المستقلة مع تنسيق crypttab الخاص بها. تغطي صفحة الدليل هذه تطبيق دبيان لبرامج نصية initramfs وبرامج بدء التشغيل SysVinit. يأتي systemd بتطبيق crypttab الخاص به. نحاول تغطية الاختلافات بين تطبيق systemd وتطبيقنا في صفحة الدليل هذه، ولكن إذا كنت في شك، فمن الأفضل مراجعة صفحة دليل systemd crypttab(5)، على سبيل المثال عبر الإنترنت على https://www.freedesktop.org/software/systemd/man/crypttab.html.

الخيارات

cipher=<الخوارزمية>
    خوارزمية التعمية (تُتجاهل لأجهزة LUKS و TCRYPT). انظر cryptsetup -c.

size=<الحجم>
    حجم مفتاح التعمية (يُتجاهل لأجهزة LUKS و TCRYPT). انظر cryptsetup -s.

sector-size=<البايتات>
    حجم القطاع. انظر cryptsetup(8) لمعرفة القيم الممكنة والقيمة المبدئية لهذا الخيار.

hash=<الهاش>
    خوارزمية الهاش (تُتجاهل لأجهزة LUKS و TCRYPT). انظر cryptsetup -h.

offset=<الإزاحة>
    إزاحة البداية (تُتجاهل لأجهزة LUKS و TCRYPT). تستخدم cryptsetup -o.

skip=<التخطي>
    تخطي القطاعات في البداية (يُتجاهل لأجهزة LUKS و TCRYPT). يستخدم cryptsetup -p.

keyfile-offset=<حجم_ملف_المفتاح>
    يحدد عدد البايتات التي ينبغي تخطيها عند بداية ملف المفتاح.

keyfile-size=<حجم_ملف_المفتاح>
    يحدد الحد الأقصى لعدد البايتات المقروءة من ملف المفتاح. الخيار المبدئي هو قراءة الملف بأكمله حتى الحد الأقصى المدمج أثناء التصريف، والذي يمكن الاستعلام عنه عبر cryptsetup --help. يُتجاهل هذا الخيار مع أجهزة dm-crypt المجردة، حيث يُحدد حجم ملف المفتاح حينها بواسطة حجم مفتاح التعمية (الخيار size).

keyslot=<فتحة>،‏ key-slot=<فتحة>
    فتحة المفتاح (تُتجاهل مع الأجهزة التي لا تستخدم LUKS). انظر cryptsetup -S.

header=<مسار>
    ملف ترويسة منفصل (يُتجاهل مع أجهزة dm-crypt المجردة). انظر cryptsetup --header.

verify
    تحقق من كلمة السر. يستخدم cryptsetup -y.

readonly،‏ read-only
    إعداد مخطط للقراءة فقط.

tries=<رقم>
    محاولة فك قفل الجهاز <num> من المرات قبل الفشل. يفيد هذا خصيصًا عند استخدام عبارة مرور أو نص برمجى للمفاتيح keyscript يتطلب مدخلات تفاعلية. إذا أردت تعطيل إعادات المحاولة، مرر “tries=1”. القيمة المبدئية هي “3”. ضبط الخيار إلى “tries=0” يعني إعادات محاولة غير محدودة.

discard
    السماح باستخدام طلبات الإهمال (TRIM) للجهاز.

    بدءًا من دبيان 10 (باستر)، يضيف مُثبّت دبيان هذا الخيار آليًا إلى أجهزة dm-crypt الجديدة. إذا كنت لا تبالي بتسريب أنماط الوصول (نوع نظام الملفات، والمساحة المستخدمة) ولم تكن تملك مجلدات truecrypt مخفية داخل هذا المجلد، فمن الآمن تفعيل هذا الخيار. انظر التحذير التالي لمزيد من المعلومات.

    تحذير: قيم المخاطر الأمنية المحددة بعناية قبل تفعيل هذا الخيار. على سبيل المثال، قد يؤدي السماح بالإهمال على الأجهزة المعماة إلى تسريب معلومات عن جهاز النص المعمى (نوع نظام الملفات، والمساحة المستخدمة إلخ.) إذا أمكن تحديد موقع الكتل المهملة بسهولة على الجهاز لاحقًا.

luks
    فرض وضع LUKS. عند استخدام هذا الوضع، تُتجاهل الخيارات التالية نظرًا لتوفيرها بواسطة ترويسة LUKS على الجهاز: cipher=،‏ hash=،‏ size=

plain
    فرض نمط التعمية البسيط (plain).

bitlk
    فرض وضع BITLK (المتوافق مع BitLocker من ويندوز). تحذير: دعم crypttab تجريبي حاليًا.

fvault2
    فرض وضع FileVault2 من آبل. يُدعم حاليًا تنسيق FileVault2 (الموروث) المعتمد على Core Storage ونظام ملفات +HFS فقط (والذي قُدّم في نظام MacOS X 10.7 Lion)؛ ولا يُدعم الإصدار الجديد من FileVault المعتمد على نظام ملفات APFS المستخدم في إصدارات macOS الحديثة.

tcrypt
    استخدام وضع تعمية TrueCrypt. عند استخدام هذا الوضع، تُتجاهل الخيارات التالية نظرًا لتوفيرها بواسطة ترويسة TrueCrypt على الجهاز أو لعدم انطباقها: cipher=،‏ hash=،‏ keyfile-offset=،‏ keyfile-size=،‏ size=

veracrypt, tcrypt-veracrypt
    استخدام امتداد VeraCrypt لجهاز TrueCrypt. يفيد فقط بالاقتران مع خيار tcrypt (ويُتجاهل مع الأجهزة التي لا تتبع TrueCrypt).

tcrypthidden, tcrypt-hidden
    استخدام ترويسة TCRYPT مخفية (يُتجاهل مع الأجهزة التي لا تتبع TCRYPT).

same-cpu-crypt
    تنفيذ التعمية باستخدام نفس وحدة المعالجة المركزية التي أُرسلت منها عمليات الإدخال والإخراج.

submit-from-crypt-cpus
    تعطيل ترحيل عمليات الكتابة إلى خيط معالجة منفصل بعد التعمية.

no-read-workqueue, no-write-workqueue
    تجاوز صف العمل الداخلي لـ dm-crypt ومعالجة طلبات القراءة أو الكتابة تزامنيًا.

swap
    تشغيل mkswap على الجهاز المنشأ.

    يُتجاهل هذا الخيار مع أجهزة initramfs.

tmp[=<tmpfs>]
    تشغيل mkfs مع تحديد نوع نظام ملفات <tmpfs> (أو ext4 في حال أغفل) على الجهاز المنشأ.

    يُتجاهل هذا الخيار مع أجهزة initramfs.

check[=<check>]
    فحص محتوى الجهاز الهدف بواسطة برنامج مناسب؛ وفي حال فشل الفحص، يُغلق الجهاز على الفور. يُشغّل البرنامج مع تمرير المجلد المُفك تعميته (الجهاز الهدف) كمعامل موضعي أول، وقيمة خيار checkargs كمعامل ثانٍ إذا استُخدم. انظر قسم CHECKSCRIPTS لمزيد من المعلومات.

    يُحدد البرنامج إما بالمسار الكامل أو بمسار نسبي لـ /lib/cryptsetup/checks/. وإذا أغفل، تُستخدم قيمة $CRYPTDISKS_CHECK المضبوطة في /etc/default/cryptdisks (وهي blkid مبدئيًا).

    هذا الخيار خاص بتنسيق crypttab في دبيان. وهو غير مدعوم في systemd.

checkargs=<arguments>
    تمرير المعاملات <arguments> كمعامل ثانٍ لنص الفحص البرمجي. انظر قسم CHECKSCRIPTS لمزيد من المعلومات.

    هذا الخيار خاص بتنسيق crypttab في دبيان. وهو غير مدعوم في systemd.

initramfs
    تعالج خطّافة initramfs الجهاز الجذر، وأي أجهزة استئناف، وأي أجهزة ضُبط معها خيار initramfs. تُعالج هذه الأجهزة خلال مرحلة initramfs من الإقلاع. يتيح هذا، على سبيل المثال، استخدام فك القفل عن بعد بواسطة dropbear.

    هذا الخيار خاص بتنسيق crypttab في دبيان. وهو غير مدعوم في systemd.

noearly
    تُستدعى نصوص الإعداد المبدئي لـ cryptsetup مرتين أثناء عملية الإقلاع - الأولى قبل بدء ليرات lvm و raid إلخ. والأخرى بعد ذلك. قد تحتاج أحيانًا إلى بدء تشغيل أقراصك المعماة بترتيب خاص. يتيح هذا الخيار تجاهل الجهاز خلال الاستدعاء الأول لنصوص إعداد cryptsetup.

    يُتجاهل هذا الخيار مع أجهزة initramfs وهو خاص بتنسيق crypttab في دبيان. وهو غير مدعوم في systemd.

noauto
    تجاهل الجهاز تمامًا أثناء عملية الإقلاع. ولا يزال من الممكن تخطيط الجهاز يدويًا باستخدام cryptdisks_start.

    يُتجاهل هذا الخيار مع أجهزة initramfs وهو خاص بتنسيق crypttab في دبيان.

loud
    إخراج مفصل. طباعة تحذيرات إذا كان الجهاز غير موجود. يتجاوز هذا الخيار الخيار quiet.

    يُتجاهل هذا الخيار مع أجهزة initramfs وهو خاص بتنسيق crypttab في دبيان. وهو غير مدعوم في systemd.

quiet
    إخراج صامت. عدم طباعة تحذيرات إذا كان الجهاز غير موجود. يتجاوز هذا الخيار الخيار loud.

    يُتجاهل هذا الخيار مع أجهزة initramfs وهو خاص بتنسيق crypttab في دبيان. وهو غير مدعوم في systemd.

keyscript=<path>
    يُنفّذ الملف التنفيذي في المسار المحدد مع تمرير قيمة الحقل الثالث كمعامل وحيد له. يُمرر المخرج القياسي للنص البرمجي للمفاتيح إلى cryptsetup كمفتاح لفك التعمية. تُتجاهل حالة الخروج الخاصة به حاليًا، ولكن لا ينبغي بناء أي افتراضات بناءً على ذلك. عند استخدامه في initramfs، يجب أن يكون الملف التنفيذي إما مستقلًا بذاته (أي لا يعتمد على أي برنامج خارجي غير موجود في بيئة initramfs) أو يجب إضافة الاعتماديات إلى صورة initramfs بوسائل أخرى. يُحدد البرنامج إما بالمسار الكامل أو بمسار نسبي لـ /lib/cryptsetup/scripts/.

    القيود: يجب أن تكون جميع الملفات والبرامج الثنائية التي يعتمد عليها النص البرمجي للمفاتيح متاحة في وقت التنفيذ. يجب توخي الحذر الشديد مع أنظمة الملفات المعماة مثل /usr أو /var. على سبيل المثال، يجب ألا يعتمد فك قفل /usr المعمى على برامج ثنائية موجودة داخل /usr/(s)bin.

    هذا الخيار خاص بتنسيق crypttab في دبيان. وهو غير مدعوم في systemd.

    تحذير: قد يُتجاهل هذا الخيار عندما يكون systemd هو نظام الإعداد المبدئي. في وقت كتابة هذا النص (ديسمبر 2016)، لا يدعم مساعد cryptsetup في systemd خيار keyscript في /etc/crypttab. في الوقت الحالي، الخيار الوحيد لاستخدام النصوص البرمجية للمفاتيح مع systemd هو فرض معالجة أجهزة التعمية المقابلة في initramfs. انظر خيار 'initramfs' لمزيد من المعلومات.

    تتاح جميع حقول مُدخل crypttab المناسب للنص البرمجي للمفاتيح كمتغيرات بيئة مُصدّرة:

    CRYPTTAB_NAME, _CRYPTTAB_NAME
        الاسم الهدف (بعد أو قبل فك ترميز التسلسل الثماني).

    CRYPTTAB_SOURCE, _CRYPTTAB_SOURCE
        الجهاز المصدر (بعد أو قبل فك ترميز التسلسل الثماني وحل اسم الجهاز).

    CRYPTTAB_KEY, _CRYPTTAB_KEY
        قيمة الحقل الثالث (بعد أو قبل فك ترميز التسلسل الثماني).

    CRYPTTAB_OPTIONS, _CRYPTTAB_OPTIONS
        قائمة بخيارات crypttab المُصدّرة (بعد أو قبل فك ترميز التسلسل الثماني).

    CRYPTTAB_OPTION_<option>
        قيمة خيار crypttab المناسب، وتُضبط القيمة إلى 'yes' في حال كان الخيار مجرد علامة وسم. بالنسبة لأسماء الخيارات البديلة، مثل 'readonly' و 'read-only'، يشير اسم المتغير إلى البديل الأول المدرج (وبالتالي 'CRYPTTAB_OPTION_readonly' في هذه الحالة). إذا كان اسم خيار crypttab يحتوي على محارف '-'، فستُستبدل بـ '_' في اسم المتغير المُصدّر. على سبيل المثال، تُضبط قيمة متغير البيئة 'CRYPTTAB_OPTION_keyfile_offset' إلى قيمة خيار crypttab المدعو 'keyfile-offset'.

    CRYPTTAB_TRIED
        عدد المحاولات السابقة منذ بدء تشغيل cryptdisks (يستمر العد حتى الوصول إلى الحد الأقصى لعدد المحاولات).

CHECKSCRIPTS

blkid
    يفحص وجود أي نظام ملفات معروف. يدعم نوع نظام الملفات كوسيط عبر <checkargs>:

        • no checkargs - ينجح في حال العثور على أي نظام ملفات صالح على الجهاز.

        • "none" - ينجح في حال عدم العثور على أي نظام ملفات صالح على الجهاز.

        • "ext4" [أو نوع نظام ملفات آخر مثل xfs، وswap، وcrypto_LUKS، ...] - ينجح في حال العثور على نظام الملفات ext4 على الجهاز.

un_blkid
    يفحص عدم وجود أي نظام ملفات معروف. يدعم نوع نظام الملفات كوسيط عبر <checkargs>:

        • no checkargs - ينجح في حال عدم العثور على أي نظام ملفات صالح على الجهاز.

        • "ext4" [أو نوع نظام ملفات آخر مثل xfs، وswap، وcrypto_LUKS، ...] - ينجح في حال عدم العثور على نظام الملفات ext4 على الجهاز.

أمثلة

    # جهاز swap معمي
    cswap /dev/sda6 /dev/urandom plain,cipher=aes-xts-plain64,size=256,hash=sha1,swap

    # قرص LUKS معمي بكلمة مرو تفاعلية، ومُعرّف بـ UUID الخاص به، مع تفعيل الإهمال (discard)
    cdisk0 UUID=12345678-9abc-def012345-6789abcdef01 none luks,discard

    # قرص TCRYPT معمي بكلمة سر تفاعلية، مع تفعيل الإهمال (discard)
    tdisk0 /dev/sr0 none tcrypt,discard

    # قرص ext4 معمي بكلمة سر تفاعلية، مع تفعيل الإهمال (discard)
    # - أعد المحاولة 5 مرات إذا فشل الفحص
    cdisk1 /dev/sda2 none plain,cipher=aes-xts-plain64,size=256,hash=sha1,check,checkargs=ext4,tries=5,discard

    # قرص معمي بكلمة سر تفاعلية، مع تفعيل الإهمال (discard)
    # - استخدم سكريبت فحص غير مبدئي
    # - بلا إعادات محاولة
    cdisk2 /dev/sdc1 none plain,cipher=aes-xts-plain64,size=256,hash=sha1,check=customscript,tries=1,discard

    # قرص معمي بكلمة سر تفاعلية، مع تفعيل الإهمال (discard)
    # - استخدم Twofish كشفرة تعمية، و RIPEMD-160 كدالة هاش
    cdisk3 /dev/sda3 none plain,cipher=twofish,size=256,hash=ripemd160,discard

البيئة

CRYPTDISKS_ENABLE
    اضبطه على yes لتشغيل سكريبتات بدء cryptdisks عند الإقلاع. واضبطه على no لتعطيل سكريبتات بدء cryptdisks. القيمة المبدئية هي yes.

CRYPTDISKS_MOUNT
    يحدد نقاط الوصل التي تُوصل قبل استدعاء cryptdisks. يقبل نقاط الوصل المضبوطة في /etc/fstab كوسائط. افصل بين نقاط الوصل بمسافة. هذا مفيد مفيد للمفاتيح المخزنة على أجهزة قابلة للإزالة، مثل الأقراص المدمجة، وعصا الذاكرة (usbstick)، وبطاقات الذاكرة، إلخ. القيمة المبدئية هي غير معين.

CRYPTDISKS_CHECK
    يحدد سكريبت الفحص المبدئي ليُشغّل على الجهاز الهدف، بعد استدعاء cryptdisks. يُمرّر الجهاز الهدف كوسيط أول ووحيد لسكريبت الفحص. يُطبّق هذا الخيار إذا أُعطي الخيار check في crypttab بدون قيمة. انظر توثيق الخيار check أعلاه لمزيد من المعلومات.

مشاكل الترقية المعروفة

تغيرت القيم المبدئية للمصدر لشفرة التعمية، ودالة الهاش، وحجم المفتاح عدة مرات في الماضي، ويُتوقّع أن تتغير مجددًا في المستقبل، على سبيل المثال في حال ظهور مشاكل أمنية. تخزن الإعدادات المستخدمة في ترويسة LUKS على أجهزة LUKS، وبالتالي لا حاجة لضبطها في /etc/crypttab. أما بالنسبة لأجهزة dm-crypt الصرفة (plain)، فلا تتوفر أي معلومات عن شفرة التعمية، والهاش، وحجم المفتاح المستخدم على الإطلاق. بناءً على ذلك، نقترح بشدة ضبط شفرة التعمية، والهاش، وحجم المفتاح في /etc/crypttab لأجهزة dm-crypt الصرفة، حتى وإن كانت تطابق القيمة المبدئية الحالية.

انظر أيضًا
cryptsetup(8), cryptdisks_start(8), cryptdisks_stop(8), /usr/share/doc/cryptsetup-initramfs/README.initramfs.gz

المؤلف

كُتبت صفحة الدليل هذه في الأصل بواسطة Bastian Kleineidam <calvin@debian.org> لتوزيعة دبيان من cryptsetup. وحُسّنت لاحقًا بواسطة Michael Gebetsroither <michael.geb@gmx.at>، و David Härdeman <david@hardeman.nu>، و Jonas Meurer <jonas@freesources.org>.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.