INTEGRITYTAB(5) integritytab INTEGRITYTAB(5)

integritytab - جدول پیکربندی دستگاههای بلوکی با اعتبارسنجی یکپارچگی (dm-integrity)

/etc/integritytab

فایل /etc/integritytab دستگاه‌های بلوکی محافظت‌شده با اعتبارسنجی یکپارچگی را که در زمان بوت سیستم راه‌اندازی می‌شوند توصیف می‌کند.

خطوط خالی و خطوطی که با نویسه "#" شروع می‌شوند نادیده گرفته می‌شوند. هر یک از خطوط باقی‌مانده یک دستگاه بلوکی محافظت‌شده با یکپارچگی را توصیف می‌کند. فیلدها با فاصله خالی (white space) از یکدیگر جدا می‌شوند.

هر خط به شکل زیر است:

volume-name block-device
    [keyfile|-] [options|-]

دو فیلد اول اجباری هستند، دو فیلد باقی‌مانده اختیاری بوده و تنها در صورتی نیاز هستند که کاربر در زمان قالب‌بندی (format) یکپارچگی گزینه‌های غیرپیش‌فرض را مشخص کرده باشد.

فیلد اول شامل نام حجم یکپارچگی نهایی است؛ دستگاه بلوکی آن زیر مسیر /dev/mapper/ راه‌اندازی می‌شود.

فیلد دوم حاوی مسیری به دستگاه بلوکی زیرین، یا مشخص‌کننده یک دستگاه بلوکی از طریق "UUID=" به همراه UUID، "PARTUUID=" به همراه UUID پارتیشن، "LABEL=" به همراه برچسب، "PARTLABEL=" به همراه برچسب پارتیشن است.

فیلد سوم در صورت وجود، حاوی مسیر مطلق نام فایل به یک فایل کلید یا علامت "-" برای مشخص کردن نبود آن است. هنگامی که نام فایل وجود داشته باشد، مقدار "integrity-algorithm" به‌طور پیش‌فرض برابر با "hmac-sha256" خواهد بود و طول کلید از تعداد بایت‌های موجود در فایل کلید مشتق می‌شود. در حال حاضر تنها الگوریتم‌های یکپارچگی پشتیبانی‌شده هنگام استفاده از فایل کلید عبارتند از hmac-sha256، hmac-sha512، phmac-sha256 و hmac-sha512. حداکثر اندازه فایل کلید ۴۰۹۶ بایت است.

فیلد چهارم، در صورت وجود، فهرستی از گزینه‌ها است که با کاما از هم جدا شده‌اند، یا علامت "-" برای مشخص کردن عدم وجود گزینه است. گزینه‌های زیر شناخته می‌شوند:

allow-discards

اجازه استفاده از درخواست‌های دور انداختن (discard یا TRIM) را برای دستگاه می‌دهد. این گزینه از نسخه ۵.۷ هسته لینوکس در دسترس است.

اضافه‌شده در نسخه 250.

mode=(journal|bitmap|direct)

حالت وقایع‌نگاری (journaled)، نقشه‌بیتی (bitmapped) یا مستقیم (direct یا passthrough) را فعال می‌کند. در صورت عدم تعیین این گزینه، حالت Journaled پیش‌فرض است. این حالت امنیت در برابر از کار افتادگی‌های ناگهانی (crash) را فراهم می‌کند، اما ممکن است کند باشد زیرا همه داده‌ها باید دو بار نوشته شوند. حالت Bitmap کارآمدتر است چرا که فقط به یک بار نوشتن نیاز دارد، اما قابلیت اطمینان کمتری دارد زیرا اگر هنگام کرش کردن ماشین خرابی داده رخ دهد، ممکن است شناسایی نشود. حالت Direct ژورنال و بیت‌مپ را غیرفعال می‌کند. این حالت متناظر با حالت «نوشتن مستقیم» (direct writes) مستند شده در مستندات dm-integrity[1] است. توجه داشته باشید که بدون ژورنال، اگر کرش رخ دهد، این احتمال وجود دارد که برچسب‌های یکپارچگی و داده‌ها مطابقت نداشته باشند. در صورت استفاده از این حالت، گزینه‌های journal-* زیر در صورت ارسال هیچ تأثیری نخواهند داشت.

اضافه‌شده در نسخه 254.

journal-watermark=[0..100]%

حدآستانه (watermark) ژورنال به درصد. هنگامی که درصد ژورنال از این حدآستانه فراتر رود، تخلیه ژورنال (journal flush) آغاز خواهد شد. تنظیم مقدار "0%" از مقدار پیش‌فرض استفاده می‌کند.

اضافه‌شده در نسخه 250.

journal-commit-time=[0..N]

زمان ثبت (commit) بر حسب میلی‌ثانیه. هنگامی که این زمان سپری شود (و هیچ عملیات تخلیه صریحی صادر نشده باشد)، ژورنال نوشته می‌شود. تنظیم مقدار صفر از مقدار پیش‌فرض استفاده می‌کند.

اضافه‌شده در نسخه 250.

data-device=/dev/disk/by-...

یک دستگاه بلوکی مجزا را مشخص می‌کند که حاوی داده‌های موجود است. در این حالت، فیلد دوم مشخص‌شده در integritytab برای دستگاه بلوکی حاوی برچسب‌های یکپارچگی محاسبه‌شده و ژورنال برای data-device خواهد بود، اما نه داده‌های کاربر نهایی.

اضافه‌شده در نسخه 250.

integrity-algorithm=[crc32c|crc32|xxhash64|sha1|sha256|hmac-sha256|hmac-sha512|phmac-sha256|phmac-sha512]

الگوریتم مورد استفاده برای بررسی یکپارچگی. مقدار پیش‌فرض crc32c است. باید با گزینه استفاده‌شده در زمان قالب‌بندی (format) مطابقت داشته باشد.

اضافه‌شده در نسخه 250.

_netdev

این دستگاه را به عنوان نیازمند شبکه علامت‌گذاری می‌کند. این دستگاه پس از در دسترس قرار گرفتن شبکه راه‌اندازی خواهد شد، مشابه واحدهای systemd.mount(5) که با _netdev علامت‌گذاری شده‌اند. واحد سرویس راه‌اندازی این دستگاه به جای integritysetup-pre.target و integritysetup.target، بین remote-fs-pre.target و remote-integritysetup.target مرتب‌سازی خواهد شد.

راهنمایی: اگر این دستگاه برای نقطه اتصالی (mount point) استفاده می‌شود که در fstab(5) مشخص شده است، گزینه _netdev باید برای آن نقطه اتصال نیز استفاده شود. در غیر این صورت، ممکن است یک حلقه وابستگی ایجاد شود که در آن نقطه اتصال توسط local-fs.target فراخوانی می‌شود، در حالی که سرویس پیکربندی شبکه معمولاً تنها پس از اتصال فایل‌سیستم محلی راه‌اندازی می‌شود.

اضافه‌شده در نسخه 258.

noauto

این دستگاه به integritysetup.target اضافه نخواهد شد. این بدان معناست که در زمان بوت به‌طور خودکار فعال نمی‌شود، مگر اینکه چیز دیگری آن را فراخوانی کند. به ویژه، اگر دستگاه برای یک نقطه اتصال استفاده شود، در طول بوت به‌طور خودکار فعال خواهد شد، مگر اینکه خود نقطه اتصال نیز با گزینه noauto غیرفعال شده باشد.

اضافه‌شده در نسخه 258.

nofail

این دستگاه وابستگی سخت (hard dependency) برای integritysetup.target نخواهد بود. این دستگاه همچنان فراخوانی و راه‌اندازی می‌شود، اما سیستم منتظر ظاهر شدن و فعال شدن دستگاه نخواهد ماند و در صورت ناموفق بودن این کار، بوت سیستم با شکست مواجه نمی‌شود. توجه داشته باشید واحدهای دیگری که به دستگاه فعال‌شده وابسته هستند ممکن است همچنان با شکست مواجه شوند. به ویژه، اگر این دستگاه برای یک نقطه اتصال استفاده شود، خود نقطه اتصال نیز باید گزینه nofail را داشته باشد، در غیر این صورت اگر دستگاه با موفقیت فعال نشود، فرآیند بوت با شکست مواجه خواهد شد.

اضافه‌شده در نسخه 258.

در مراحل اولیه بوت و زمانی که پیکربندی مدیر سیستم دوباره بارگذاری می‌شود، این فایل توسط systemd-integritysetup-generator(8) به واحدهای بومی systemd ترجمه می‌شود.

مثال 1. /etc/integritytab

راه‌اندازی دو دستگاه بلوکی محافظت‌شده با اعتبارسنجی یکپارچگی.

home PARTUUID=4973d0b8-1b15-c449-96ec-94bab7f6a7b8 - journal-commit-time=10,allow-discards,journal-watermark=55%
data PARTUUID=5d4b1808-be76-774d-88af-03c4c3a41761 - allow-discards

مثال 2. /etc/integritytab

راه‌اندازی ۱ دستگاه بلوکی محافظت‌شده با یکپارچگی با استفاده از مقادیر پیش‌فرض

home PARTUUID=4973d0b8-1b15-c449-96ec-94bab7f6a7b8

مثال 3. /etc/integritytab

راه‌اندازی ۱ دستگاه یکپارچگی با استفاده از دستگاه بلوکی داده‌های موجود که حاوی داده‌های کاربر است

home PARTUUID=4973d0b8-1b15-c449-96ec-94bab7f6a7b8 - data-device=/dev/disk/by-uuid/9276d9c0-d4e3-4297-b4ff-3307cd0d092f

مثال 4. /etc/integritytab

راه‌اندازی ۱ دستگاه یکپارچگی با استفاده از یک فایل کلید HMAC با مقادیر پیش‌فرض

home PARTUUID=4973d0b8-1b15-c449-96ec-94bab7f6a7b8 /etc/hmac.key

systemd(1), systemd-integritysetup@.service(8), systemd-integritysetup-generator(8), integritysetup(8)

1.
مستندات dm-integrity
systemd 261.2