بیاموزید که چگونه با تغذیه آنتروپی از سیستم میزبان با استفاده از VirtIO RNG یا روشهای دیگر، تأخیرهای راهاندازی OpenSSH را در ماشینهای مجازی برطرف کنید. عملکرد ماشین مجازی را به راحتی بهبود بخشید!
چگونه یک ماشین مجازی مهمان را با آنتروپی کافی از /dev/urandom تغذیه کنیم #
مشکل: OpenSSH باعث تأخیر در راهاندازی سیستم میشود #
ماشینهای مجازی مهمان (VM) میتوانند هنگام شروع سرویسها، به OpenSSHdدلیل کمبود آنتروپی، تأخیرهایی را تجربه کنند. این امر به ویژه در هنگام بوت شدن قابل توجه است، زمانی که سرویسها در انتظار آنتروپی از /dev/[u]randomیا getrandom()(در نسخههای جدیدتر لینوکس) مسدود میشوند. کمبود آنتروپی منجر به تأخیرهایی میشود که به طور بالقوه زمان بوت را تا یک دقیقه افزایش میدهد.
نمای کلی راهکار #
شما میتوانید با استفاده از قابلیت QEMU در ارسال یک منبع آنتروپی، مانند /dev/urandom، به ماشین مجازی مهمان، مستقیماً از دستگاه میزبان، آنتروپی را برای ماشینهای مجازی مهمان فراهم کنید. این روش، تأمین مداوم آنتروپی را بدون ایجاد بار اضافی بر سیستم میزبان تضمین میکند.
آنتروپی چیست؟ #
در زمینه محاسبات، آنتروپی به تصادفی بودن جمعآوریشده توسط یک سیستم عامل برای انجام عملیات رمزنگاری یا سایر عملیاتهایی که به دادههای تصادفی نیاز دارند، اشاره دارد. منابع آنتروپی شامل رویدادهای سختافزاری مانند حرکات ماوس، ورودیهای صفحهکلید یا وقفههای سیستم است.آنتروپی برای تضمین امنیت و غیرقابل پیشبینی بودن کلیدهای رمزنگاری، ارتباطات امن و تولید اعداد تصادفی بسیار مهم است. در محیطهای مجازی، که رویدادهای ورودی فیزیکی محدود هستند، آنتروپی موجود ممکن است ناکافی باشد و منجر به تأخیر در عملیاتی شود که به آن متکی هستند.با ارائه منابع آنتروپی اضافی، مثلاً از طریق VirtIO RNG یا روشهای دیگر، ماشینهای مجازی مهمان میتوانند بر این محدودیتها غلبه کرده و عملکرد روان سرویسهایی را که به تصادفی بودن وابسته هستند، تضمین کنند.
مراحل اجرا #
۱. از VirtIO RNG (مولد اعداد تصادفی) استفاده کنید #
VirtIO روشی کارآمد برای تأمین آنتروپی برای ماشین مجازی مهمان ارائه میدهد. برای فعال کردن آن، این مراحل را دنبال کنید:ویرایش خط فرمان QEMU پارامترهای زیر را به خط فرمان QEMU برای ماشین مجازی خود اضافه کنید:
rng-random: منبع آنتروپی ( /dev/urandom) را از میزبان مشخص میکند.virtio-rng-pci: منبع آنتروپی را با استفاده از رابط VirtIO به مهمان منتقل میکند.max-bytes and period : اعمال محدودیت سرعت برای جلوگیری از مصرف بیش از حد CPU توسط ارائه دهنده آنتروپی.اطمینان از سازگاریسیستمهای مهمان با هستههای لینوکس قدیمی ۲.۶.۳۲میتوانند پس از راهاندازی مجدد، بهطور خودکار از منبع آنتروپی VirtIO استفاده کنند. برای هستههای قدیمیتر یا سایر انواع سیستمعامل، اطمینان حاصل کنید که درایور VirtIO RNG پشتیبانی و فعال شده است.برای هستههای قدیمیتر یا سایر انواع سیستم عامل، مطمئن شوید که درایور VirtIO RNG پشتیبانی و فعال شده است.
۲. نصب PRNG روی سیستم مهمان (اختیاری) #
اگر اضافه کردن رابط VirtIO RNG امکانپذیر نیست، یک مولد اعداد شبهتصادفی (PRNG) روی سیستم مهمان نصب کنید:
سرویس را شروع و فعال کنید:
مزایای استفاده از VirtIO RNG #
- آنتروپی ثابت و سریعی از میزبان ارائه میدهد.
- از تأخیرهای قابل توجه برای خدمات مهمان وابسته به تولید اعداد تصادفی جلوگیری میکند.
- محدود کردن نرخ تضمین میکند که منابع CPU میزبان بیش از حد استفاده نشوند.
ملاحظات #
- اطمینان حاصل کنید که میزبان، آنتروپی کافی برای پاسخگویی به نیازهای همه ماشینهای مجازی متصل را دارد.
- برای موارد استفاده با امنیت بالا، ارزیابی کنید که آیا آنتروپیِ تأمینشده از منابع،
/dev/urandomالزامات شما را برآورده میکند یا خیر.
نتیجهگیری #
با پیکربندی VirtIO RNG یا استفاده از PRNG مانند haveged، میتوانید تأخیرهای راهاندازی سرویسها را در ماشین مجازی مهمان خود به میزان قابل توجهی کاهش داده و عملکرد کلی سیستم را بهبود بخشید.