systemd system manager نسخه 248

پس از چهار ماه توسعه، نسخه مدیریت سیستم systemd 248 ارائه شد. نسخه جدید پشتیبانی از تصاویر برای گسترش دایرکتوری های سیستم، فایل پیکربندی /etc/veritytab، ابزار systemd-cryptenroll، باز کردن قفل LUKS2 با استفاده از تراشه های TPM2 و FIDO2 را فراهم می کند. توکن ها، واحدهای در حال اجرا در یک فضای شناسایی IPC ایزوله، پروتکل بتمن برای شبکه های مش، بک اند nftables برای systemd-nspawn. Systemd-oomd تثبیت شده است.

تغییرات اصلی:

  • مفهوم تصاویر پسوند سیستم پیاده سازی شده است که می تواند برای گسترش سلسله مراتب دایرکتوری های /usr/ و /opt/ و افزودن فایل های اضافی در زمان اجرا استفاده شود، حتی اگر دایرکتوری های مشخص شده فقط خواندنی نصب شده باشند. هنگامی که یک تصویر پسوند سیستم نصب می شود، محتویات آن با استفاده از OverlayFS روی سلسله مراتب /usr/ و /opt/ قرار می گیرد.

    یک ابزار جدید، systemd-sysext، برای اتصال، قطع، مشاهده و به‌روزرسانی تصاویر برنامه‌های افزودنی سیستم پیشنهاد شده است. برای اتصال خودکار تصاویر از قبل نصب شده در هنگام بوت، سرویس systemd-sysext.service اضافه شده است. پارامتر "SYSEXT_LEVEL=" به فایل os-release برای تعیین سطح پسوندهای پشتیبانی شده سیستم اضافه شد.

  • برای واحدها، تنظیمات ExtensionImages پیاده‌سازی شده است که می‌تواند برای پیوند تصاویر پسوند سیستم به سلسله‌مراتب فضای نام FS سرویس‌های مجزای مجزا استفاده شود.
  • فایل پیکربندی /etc/veritytab را برای پیکربندی تأیید اطلاعات در سطح بلوک با استفاده از ماژول dm-verity اضافه کرد. فرمت فایل شبیه به /etc/crypttab است - "section_name device_for_data device_for_hashes check_hash_root options." گزینه systemd.verity.root_options هسته خط فرمان برای پیکربندی رفتار dm-verity برای دستگاه ریشه اضافه شد.
  • systemd-cryptsetup توانایی استخراج URI توکن PKCS#11 و کلید رمزگذاری شده را از سربرگ ابرداده LUKS2 با فرمت JSON اضافه می‌کند و به اطلاعات مربوط به باز کردن یک دستگاه رمزگذاری شده اجازه می‌دهد بدون درگیر کردن فایل‌های خارجی در خود دستگاه یکپارچه شود.
  • systemd-cryptsetup از باز کردن قفل پارتیشن‌های رمزگذاری‌شده LUKS2 با استفاده از تراشه‌های TPM2 و توکن‌های FIDO2، علاوه بر توکن‌های PKCS#11 پشتیبانی می‌کند. بارگیری libfido2 از طریق dlopen() انجام می شود. در دسترس بودن در پرواز بررسی می شود، نه به عنوان یک وابستگی سخت.
  • گزینه های جدید "no-write-workqueue" و "no-read-workqueue" به /etc/crypttab برای systemd-cryptsetup اضافه شده اند تا پردازش همزمان I/O مرتبط با رمزگذاری و رمزگشایی را فعال کند.
  • ابزار systemd-repart توانایی فعال کردن پارتیشن های رمزگذاری شده با استفاده از تراشه های TPM2 را اضافه کرده است، به عنوان مثال، برای ایجاد یک پارتیشن رمزگذاری شده /var در اولین بوت.
  • ابزار systemd-cryptenroll برای اتصال توکن‌های TPM2، FIDO2 و PKCS#11 به پارتیشن‌های LUKS، و همچنین برای برداشتن پین و مشاهده توکن‌ها، اتصال کلیدهای یدکی و تنظیم رمز عبور برای دسترسی اضافه شده است.
  • پارامتر PrivateIPC اضافه شده است، که به شما امکان می دهد فایل واحد را برای اجرای فرآیندها در یک فضای IPC ایزوله با شناسه های جداگانه و صف پیام خود پیکربندی کنید. برای اتصال یک واحد به یک فضای شناسه IPC از قبل ایجاد شده، گزینه IPCNamespacePath پیشنهاد شده است.
  • تنظیمات ExecPaths و NoExecPaths را اضافه کرد تا امکان اعمال پرچم noexec در بخش های خاصی از سیستم فایل را فراهم کند.
  • systemd-networkd پشتیبانی از پروتکل مش BATMAN (Better Approach To Mobile Adhoc Networking) را اضافه می کند که امکان ایجاد شبکه های غیرمتمرکز را فراهم می کند که در آن هر گره از طریق گره های همسایه متصل می شود. برای پیکربندی، بخش [BatmanAdvanced] در netdev.، پارامتر BatmanAdvanced در فایل‌های شبکه، و نوع دستگاه جدید «batadv» پیشنهاد شده‌اند.
  • اجرای مکانیسم پاسخ اولیه برای حافظه کم در سیستم systemd-oomd تثبیت شده است. گزینه DefaultMemoryPressureDurationSec را برای پیکربندی زمان انتظار برای انتشار منبع قبل از تأثیرگذاری بر یک واحد اضافه کرد. Systemd-oomd از زیرسیستم هسته PSI (اطلاعات توقف فشار) استفاده می کند و به شما امکان می دهد شروع تاخیرهای ناشی از کمبود منابع را تشخیص دهید و به طور انتخابی فرآیندهای فشرده منابع را در مرحله ای خاتمه دهید که سیستم هنوز در وضعیت بحرانی نیست و این کار را انجام نمی دهد. شروع به برش فشرده کش و جابجایی داده ها به پارتیشن swap کنید.
  • پارامتر خط فرمان هسته "root=tmpfs" اضافه شده است، که به شما امکان می دهد پارتیشن ریشه را در حافظه موقت واقع در RAM با استفاده از Tmpfs سوار کنید.
  • پارامتر /etc/crypttab که فایل کلید را مشخص می کند اکنون می تواند به انواع سوکت AF_UNIX و SOCK_STREAM اشاره کند. در این حالت، هنگام اتصال به سوکت باید کلید داده شود، که به عنوان مثال، می توان از آن برای ایجاد سرویس هایی استفاده کرد که به صورت پویا کلیدها را صادر می کنند.
  • نام میزبان جایگزین برای استفاده توسط مدیر سیستم و systemd-hostnamed اکنون می‌تواند به دو صورت تنظیم شود: از طریق پارامتر DEFAULT_HOSTNAME در os-release و از طریق متغیر محیطی $SYSTEMD_DEFAULT_HOSTNAME. systemd-hostnamed همچنین "localhost" را در نام میزبان کنترل می‌کند و توانایی صادر کردن نام میزبان و همچنین ویژگی‌های "HardwareVendor" و "HardwareModel" را از طریق DBus اضافه می‌کند.
  • بلوک با متغیرهای محیطی در معرض نمایش را اکنون می توان از طریق گزینه ManagerEnvironment جدید در system.conf یا user.conf پیکربندی کرد و نه تنها از طریق خط فرمان هسته و تنظیمات فایل واحد.
  • در زمان کامپایل، می توان از فراخوانی سیستم ()fexecve برای شروع فرآیندها به جای execve() استفاده کرد تا تاخیر بین بررسی زمینه امنیتی و اعمال آن کاهش یابد.
  • برای فایل‌های واحد، عملیات شرطی جدید ConditionSecurity=tpm2 و ConditionCPUFeature اضافه شده‌اند تا وجود دستگاه‌های TPM2 و قابلیت‌های جداگانه CPU را بررسی کنند (به عنوان مثال، ConditionCPUFeature=rdrand می‌تواند برای بررسی اینکه آیا پردازنده از عملیات RDRAND پشتیبانی می‌کند یا خیر استفاده می‌شود).
  • برای هسته های موجود، تولید خودکار جداول فراخوانی سیستم برای فیلترهای seccomp پیاده سازی شده است.
  • امکان جایگزینی اتصالات جدید به فضای نام mount های موجود سرویس ها، بدون راه اندازی مجدد سرویس ها اضافه شده است. جایگزینی با دستور 'systemctl bind انجام می شود ...» و «systemctl mount-image …'.
  • اضافه شدن پشتیبانی برای تعیین مسیرها در تنظیمات StandardOutput و StandardError به شکل “truncate: » برای تمیز کردن قبل از استفاده.
  • قابلیت ایجاد اتصال به جلسه کاربر مشخص شده در یک ظرف محلی به sd-bus اضافه شده است. به عنوان مثال "systemctl -user -M lennart@ start quux".
  • پارامترهای زیر در فایل های systemd.link در بخش [Link] پیاده سازی می شوند:
    • Promiscuous - به شما امکان می دهد دستگاه را به حالت "بی رویه" تغییر دهید تا همه بسته های شبکه را پردازش کنید، از جمله آنهایی که به سیستم فعلی خطاب نمی شوند.
    • TransmitQueues و ReceiveQueues برای تنظیم تعداد صف های TX و RX.
    • TransmitQueueLength برای تنظیم اندازه صف TX. GenericSegmentOffloadMaxBytes و GenericSegmentOffloadMaxSegment برای تعیین محدودیت برای استفاده از فناوری GRO (Generic Receive Offload).
  • تنظیمات جدیدی به فایل های systemd.network اضافه شده است:
    • [شبکه] RouteTable برای انتخاب جدول مسیریابی.
    • [RoutingPolicyRule] نوع مسیریابی را تایپ کنید ("سیاهچاله، "دست نیافتنی"، "ممنوع");
    • [IPv6AcceptRA] RouteDenyList و RouteAllowList برای لیست تبلیغات مسیر مجاز و رد شده.
    • [DHCPv6] از Addres برای نادیده گرفتن آدرس صادر شده توسط DHCP استفاده کنید.
    • [DHCPv6PrefixDelegation] ManageTemporaryAddress.
    • ActivationPolicy برای تعریف خط مشی مربوط به فعالیت رابط (همیشه حالت UP یا DOWN را حفظ کنید یا به کاربر اجازه دهید با دستور "ip link set dev" حالت ها را تغییر دهد).
  • گزینه‌های [VLAN] Protocol، IngressQOSMaps، EgressQOSMaps و [MACVLAN] BroadcastMulticastQueueLength به فایل‌های systemd.netdev برای پیکربندی پردازش بسته‌های VLAN اضافه شد.
  • نصب دایرکتوری /dev/ در حالت noexec متوقف شد زیرا هنگام استفاده از پرچم اجرایی با فایل‌های /dev/sgx باعث تداخل می‌شود. برای برگرداندن رفتار قدیمی، می توانید از تنظیمات NoExecPaths=/dev استفاده کنید.
  • مجوزهای فایل /dev/vsock به 0o666 تغییر یافته است و فایل های /dev/vhost-vsock و /dev/vhost-net به گروه kvm منتقل شده اند.
  • پایگاه داده شناسه سخت افزار با خوانندگان اثر انگشت USB که به درستی از حالت خواب پشتیبانی می کنند، گسترش یافته است.
  • systemd-resolved پشتیبانی اضافه شده برای صدور پاسخ به پرس و جوهای DNSSEC از طریق یک حلال خرد. کلاینت های محلی می توانند اعتبار DNSSEC را روی خودشان انجام دهند، در حالی که کلاینت های خارجی بدون تغییر به سرور DNS والد پروکسی می شوند.
  • گزینه CacheFromLocalhost را به solved.conf اضافه کرد، در صورت تنظیم، systemd-resolved حتی برای تماس با سرور DNS در 127.0.0.1 از حافظه پنهان استفاده می کند (به طور پیش فرض، کش کردن چنین درخواست هایی غیرفعال است تا از ذخیره سازی مضاعف جلوگیری شود).
  • systemd-resolved پشتیبانی از RFC-5001 NSID را در حل‌کننده DNS محلی اضافه می‌کند و به کلاینت‌ها اجازه می‌دهد بین تعاملات با حل‌کننده محلی و سرور DNS دیگر تفاوت قائل شوند.
  • ابزار Resolctl توانایی نمایش اطلاعات مربوط به منبع داده (حافظه محلی، درخواست شبکه، پاسخ پردازنده محلی) و استفاده از رمزگذاری در هنگام انتقال داده ها را پیاده سازی می کند. گزینه های --cache، --synthesize، --network، --zone، --trust-anchor و --validate برای کنترل فرآیند تعیین نام ارائه شده اند.
  • systemd-nspawn علاوه بر پشتیبانی از iptables موجود، پشتیبانی از پیکربندی فایروال با استفاده از nftables را اضافه می کند. راه اندازی IPMasquerade در systemd-networkd توانایی استفاده از یک باطن مبتنی بر nftables را اضافه کرده است.
  • systemd-localed پشتیبانی برای فراخوانی locale-gen برای تولید محلی‌های گمشده اضافه شده است.
  • گزینه های --pager/-no-pager/-json= به ابزارهای مختلف برای فعال/غیرفعال کردن حالت صفحه بندی و خروجی در فرمت JSON اضافه شده است. قابلیت تنظیم تعداد رنگ های استفاده شده در ترمینال از طریق متغیر محیطی SYSTEMD_COLORS ("16" یا "256") اضافه شده است.
  • ساخت با سلسله مراتب دایرکتوری جداگانه (split / و /usr) و پشتیبانی cgroup v1 منسوخ شده است.
  • شاخه اصلی در Git از 'master' به 'main' تغییر نام داده است.

منبع: opennet.ru

اضافه کردن نظر