رمزگذاری دیسک سرور راه دور
پاسخ
رمزگذاری کامل دیسک روی سرور راه دور از LUKS2 با وارد کردن عبارت عبور در بوت از طریق کنسول خارج از باند یا پوسته dropbear SSH در initramfs استفاده میکند. از ضبط دیسک و بازیابی درایو از رده خارج شده محافظت میکند. از سرور در حال اجرا محافظت نمیکند، زیرا کلیدهای آن در RAM هستند.
دقیق باشید درباره تهدیدی که به آن میپردازد
رمزگذاری کامل دیسک از دادهها در حالت سکون محافظت میکند. وقتی ماشین بوت شد و حجم باز شد، کلید در حافظه هسته است و سیستم فایل برای هر چیزی با امتیاز کافی قابل خواندن است — از جمله، در یک پلتفرم مجازیسازی، اپراتور hypervisor که میتواند RAM مهمان را تخلیه کند.
بنابراین FDE شکست میخورد: ضبط سختافزار در حالت خاموش، درایوهایی که در پایان عمر از مرکز داده خارج میشوند، و کپی سرد از تصویر دیسک مجازی شما. شکست نمیخورد: مهاجمی روی سیستم در حال اجرا، یا دشمنی در سطح hypervisor در برابر VM در حال اجرا. اینها مرزهای صادقانه هستند و هر راهنمایی که از آنها بگذرد، آسایش میفروشد.
مشکل باز کردن قفل از راه دور
در لپتاپ، عبارت عبور را در بوت تایپ میکنید. در سروری دو هزار کیلومتر دورتر، چیزی باید آن را تأمین کند، و راهحلهای آشکار همگی هدف را شکست میدهند — یک فایل کلید روی همان دیسک، یا کلیدی که توسط ارائهدهنده ذخیره شده، به این معنی است که رمزگذاری تزئینی است.
دو پاسخ صحیح وجود دارد. در سرورهای اختصاصی و GPU ما، از کنسول خارج از باند استفاده کنید: IPMI صفحه بوت را به شما میدهد و عبارت عبور را مانند حالت محلی تایپ میکنید. در VPS، dropbear-initramfs را در ramdisk اولیه قرار دهید تا ماشین به اندازه کافی بوت شود که اتصال SSH را بپذیرد، از طریق آن اتصال باز کنید و بوت ادامه یابد.
راهاندازی آن
مسیر تمیز این است که در زمان نصب رمزگذاری کنید. یک ISO سفارشی را از طریق رسانه مجازی بوت کنید، با یک /boot رمزگذارینشده و یک ظرف LUKS2 برای بقیه چیزها پارتیشنبندی کنید و در آن نصب کنید. Argon2id را به عنوان تابع مشتق کلید انتخاب کنید — پیشفرض LUKS2 است و حافظهسخت است، که در برابر brute force مهم است.
در هر پلن اختصاصی، GPU یا ذخیرهسازی، LUKS را در زمان تهیه سفارش دهید و ما پارتیشنبندی را انجام میدهیم؛ شما عبارت عبور را در اولین بوت از طریق کنسول وارد میکنید و هرگز به زیرساخت ما دست نمیزند. هیچ هزینهای نیست و هیچ مسیر بازیابی وجود ندارد، که همان جمله است که دو بار گفته شده.
- cryptsetup luksFormat --type luks2 --pbkdf argon2id /dev/sdaX
- /boot رمزگذارینشده، بقیه در داخل ظرف
- apt install dropbear-initramfs روی VPS برای باز کردن قفل از راه دور
- کلید SSH خود را به /etc/dropbear/initramfs/authorized_keys اضافه کنید
- قبل از قرار دادن هر چیزی روی آن، یک راهاندازی مجدد کامل را آزمایش کنید
- یک شکاف کلید دوم با یک عبارت عبور ذخیرهشده در جای امن نگه دارید
دو چیزی که مردم اشتباه میکنند
اولین داشتن تنها یک شکاف کلید است. LUKS2 از هشت پشتیبانی میکند؛ حداقل از دو استفاده کنید، با دومی که یک عبارت عبور تصادفی طولانی نگه داشته شده در مدیریت رمز عبور دارد. یک عبارت عبور فراموش شده غیرقابل بازیابی است، و غیرقابل بازیابی یعنی غیرقابل بازیابی.
مورد دوم، تست نکردن راهاندازی مجدد قبل از قرار دادن دادهها روی سرور است. یک dropbear-initramfs که درست پیکربندی نشده باشد، اولین راهاندازی مجدد برنامهریزینشده را به دستگاهی تبدیل میکند که هرگز برنمیگردد. در حالی که دستگاه هنوز خالی است، عمداً دو بار آن را راهاندازی مجدد کنید.
سوالات متداول
01 آیا ارائهدهنده من میتواند دیسک رمزنگاریشده را بخواند؟
در حالت ذخیرهسازی نه. در یک ماشین مجازی در حال اجرا، اپراتور هایپروایزر در اصل میتواند حافظه مهمان را بخواند که کلید را در خود دارد — این برای هر ارائهدهنده مجازیسازی صادق است. سرور اختصاصی با LUKS آن رابط را حذف میکند.
02 چگونه سروری را که نمیتوانم لمس کنم باز کنم؟
کنسول IPMI خارج از باند در سرورهای اختصاصی و GPU، یا dropbear-initramfs در VPS — ماشین به اندازه کافی بالا میآید که SSH را بپذیرد، شما از طریق آن باز میکنید و بوت ادامه مییابد.
03 اگر عبارت عبور را فراموش کنم چه؟
دادهها از بین رفتهاند. هیچ بازیابی، درب پشتی یا کلید در اختیار ارائهدهنده وجود ندارد. حداقل از دو اسلات کلید LUKS استفاده کنید و دومی یک عبارت عبور تصادفی طولانی در مدیریت رمز عبور داشته باشد.
مرتبط