BitVPS
رمزنگاری کامل دیسک روی VPS: LUKS، باز کردن قفل از راه دور، و این‌که توقیف واقعاً چه چیزی را بازیابی می‌کند
راهنمای گام‌به‌گام سخت‌سازی

رمزنگاری کامل دیسک روی VPS: LUKS، باز کردن قفل از راه دور، و این‌که توقیف واقعاً چه چیزی را بازیابی می‌کند

«دیسک را رمزنگاری کن، سرور امن است» شکلِ تقریباً هر پاسخی در این موضوع است، و به شکلی که اهمیت دارد اشتباه است. رمزنگاری کامل دیسک روی یک ماشین اجاره‌ای در برابر یک رویداد مشخص دفاع می‌کند — کسی که هنگام خاموش‌بودنِ ماشین، فضای ذخیره‌سازی را می‌خواند. در برابر ماشینی که روشن است، کار چندانی نمی‌کند، چون کلیدی که والیوم را باز می‌کند از لحظه‌ی بوت در RAM نشسته است. این راهنما نشان می‌دهد این مرز دقیقاً کجا می‌افتد، چطور با این‌حال رمزنگاری را درست پیاده کنیم، و از دیسکی که ایمیج گرفته شده واقعاً چه چیزی قابل بازیابی است.

بدون KYC، هرگز DMCA نادیده گرفته می‌شود بدون لاگ ترافیک در 60 ثانیه فعال

رمزنگاری یک دیسک اجاره‌ای واقعاً چه چیزی به شما می‌دهد

یک سرور دو حالت دارد و رمزنگاری دیسک فقط درباره‌ی یکی از آن‌ها حرف برای گفتن دارد. در حالت خاموش، والیوم متن رمزشده است: فضای ذخیره‌سازی بایت‌هایی نگه می‌دارد که بدون کلید از نویز قابل تشخیص نیستند. در حالت روشن، والیوم مانت شده است، یعنی کلید اصلی استخراج شده، در حافظه‌ی هسته بارگذاری شده و تا زمانی که ماشین روشن است همان‌جا مانده. هر فایلی که سیستم‌عامل می‌تواند بخواند، می‌تواند بخواند چون آن کلید در حافظه حاضر است. رمزنگاری از کار نیفتاده — دقیقاً همان کاری را می‌کند که از آن خواسته شده.

این تضمینی محدودتر از چیزی است که تبلیغات نشان می‌دهد، و بازهم ارزش داشتنش را دارد، چون رویدادهایی که پوشش می‌دهد همان‌هایی هستند که واقعاً رخ می‌دهند. یک درایو از رده خارج و دوباره فروخته می‌شود. یک NVMe خراب همراه با داده‌های شما تحت RMA به فروشنده برمی‌گردد. یک نود خاموش می‌شود و دیسک‌هایش ایمیج گرفته می‌شوند. یک آرشیو بکاپ روی رسانه‌ای که کسی رمزنگاریش نکرده از ساختمان خارج می‌شود. کسی با دسترسی فیزیکی به یک رک، وسیله‌ی اشتباهی را با خودش می‌برد. این‌ها بی‌جلوه‌اند، اما اکثریت قریب‌به‌اتفاق افشاهای دنیای واقعی همین‌ها هستند — بسیار رایج‌تر از یورشی به یک ماشین روشن که همه تصورش را می‌کنند.

سناریووضعیت ماشینآیا LUKS کمک می‌کند؟چه چیزی افشا می‌شود
درایو از رده خارج، فروخته یا RMA شدهخاموشبله، کاملاًمتن رمزشده و هدر LUKS
نود خاموش شده، دیسک‌ها ایمیج گرفته شدهخاموشبلهمتن رمزشده، چیدمان پارتیشن، /boot به‌صورت متن ساده
آرشیو بکاپ به بیرون از سایت کپی شدهنداردفقط اگر خودِ آرشیو رمزنگاری شده باشدهرچه آرشیو نگه دارد، به‌صورت خوانا
اکتساب زنده از یک نمونه‌ی درحال‌اجراروشنعملاً نههمه‌چیز — کلید در RAM است
نفوذ به سیستمِ درحال‌اجراروشننههرچه والیومِ مانت‌شده افشا کند

هایپروایزر داخل مدل تهدید شما نشسته، و رمزنگاری آن را حذف نمی‌کند

روی یک VPS، هسته‌ی شما یک مهمان است. هرکس هایپروایزر را اداره کند، حافظه‌ی آن مهمان را همان‌طور در دست دارد که شما محتوای یک فایل را در دست دارید، و هیچ گامِ رمزنگارانه‌ای بین این دو نیست. virsh dump به‌عنوان یک عملیات روتین، RAM یک دامنه‌ی درحال‌اجرا را در یک فایل می‌نویسد؛ مهاجرت زنده هم دقیقاً همان حافظه را طبق طراحی روی شبکه کپی می‌کند، چون مهاجرت یعنی همین. یک کلید اصلیِ LUKS که در حافظه‌ی مهمان زندگی می‌کند، داخل همه‌ی این‌هاست.

پس جمله‌ی صادقانه این است: رمزنگاری کامل دیسک روی یک VPS داده‌ی شما را از همه به‌جز طرفی که هایپروایزر را اجرا می‌کند محافظت می‌کند — و از آن طرف هم، اما فقط وقتی ماشین خاموش است. هر میزبانی که ادعا کند رمزنگاریِ دیسک مهمانِ شما داده‌تان را روی یک نمونه‌ی درحال‌اجرا برای خودش غیرقابل‌خواندن می‌کند، دارد ماشینی را توصیف می‌کند که وجود ندارد. ترجیح می‌دهیم این را صریح بنویسیم تا این‌که بگذاریم شما چیزِ راحت‌تری را نتیجه بگیرید.

اگر ارائه‌دهنده واقعاً در مدل تهدید شما جای دارد، پاسخ یک رمزِ قوی‌تر نیست. پاسخ حذفِ هایپروایزر است: یک سرور اختصاصی هسته‌ی شما را مستقیماً روی سخت‌افزار اجرا می‌کند، پس خواندنِ حافظه‌اش یعنی داشتن ماشین به‌صورت فیزیکی و اجرای یک حمله‌ی سبکِ DMA یا cold-boot علیه RAM — کند، پرسروصدا، و نیازمند سطحی از دسترسی که یک درخواستِ روتین آن را نمی‌دهد. راهنمای VPS در برابر اختصاصی جاهایی که این تعویض از نظر دیگر هم به‌صرفه است را هم پوشش می‌دهد. افزونه‌های محاسبات محرمانه مثل AMD SEV-SNP و Intel TDX دقیقاً همین شکاف را هدف می‌گیرند، اما امروز روی VPSهای اجاره‌ای یک کالای رایج نیستند و اعتماد را به‌جای حذف‌کردن، به سازنده‌ی CPU منتقل می‌کنند.

سه شکل برای پیاده‌سازی آن، و هرکدام چه هزینه‌ای برای شما دارد

در عمل سه شکل وجود دارد که امنیت را در برابر میزانِ دردسرِ ریبوت‌هایتان معامله می‌کنند. یک روتِ رمزنگاری‌شده که از کنسول باز می‌شود قوی‌ترین و آزاردهنده‌ترین حالت است: بدون حضور یک انسان، هیچ‌چیز از یک ریبوت جان سالم به‌در نمی‌برد. یک روتِ رمزنگاری‌شده با یک سرور SSH داخل initramfs همان امنیت را با بازکردن قفل از راه دور می‌دهد، و همان چیزی است که اکثر افراد باید بسازند. یک والیوم داده‌ی رمزنگاری‌شده روی روتِ متن‌ساده گزینه‌ی ساده و همان چیزی است که آرام‌آرام ناامیدتان می‌کند.

ناامیدتان می‌کند چون یک روتِ متن‌ساده، چه بخواهید چه نخواهید، رازهای شما را جمع می‌کند. journal مربوط به systemd همان‌جا نوشته می‌شود. تاریخچه‌ی shell، کش پکیج‌ها، core dumpها، /tmp، روتِ پیش‌فرضِ داده‌ی Docker هم همین‌طور، و — چیزی که تقریباً همه را گیر می‌اندازد — swap، همان‌جایی که حافظه‌ی یک پروسه وقتی ماشین تحت فشار است می‌رود. رمزنگاریِ /var/lib/mysql درحالی‌که swap کنارش بدون رمزنگاری نشسته، یک دفاع نصفه نیست، یک دفاع کامل با یک سوراخ وسطش است.

پیکربندیباز کردن قفلجان سالم به‌دربردن از ریبوتِ بدون‌ناظرحکمِ صادقانه
روت رمزنگاری‌شده، بازکردن از کنسولKVM-over-VNC یا IPMIنه — تا وقتی یک انسان بازش نکند خاموش می‌ماندقوی‌ترین؛ برای ماشینی که به‌ندرت ریبوت می‌کنید مناسب است
روت رمزنگاری‌شده، dropbear داخل initramfsSSH به پورتِ بازکردنِ قفلنه — اما از هرجا می‌توانید بازش کنیدپیش‌فرضِ معقول
والیوم داده‌ی رمزنگاری‌شده، روتِ متن‌سادهاسکریپت یا دستی بعد از بوتبلهضعیف مگر این‌که swap، لاگ‌ها و temp مدیریت شوند
روت رمزنگاری‌شده، فایل کلید روی /boot متن‌سادهخودکاربلهفقط در برابر یک درایوِ فروخته‌شده دفاع می‌کند و نه چیز دیگری

نصبِ یک روتِ رمزنگاری‌شده، گام‌به‌گام

1. یک نصب‌کننده را بوت کنید، نه یک قالب را. یک ایمیجِ از‌پیش‌ساخته نمی‌تواند یک روتِ رمزنگاری‌شده به شما بدهد، چون دیسک پیش از این‌که شما به‌عنوان مشتری وجود داشته باشید نوشته شده. هر پلن BitVPS از rebuild-from-ISO، آپلود ISO سفارشی و netboot پشتیبانی می‌کند، و هر پلن یک کنسول اضطراریِ KVM-over-VNC دارد — که بخش مهم همین است، چون باید نصب‌کننده‌ای را که قرار است سؤال بپرسد تماشا کنید. سرورهای اختصاصی همین قابلیت را از طریق یک اندپوینتِ IPMI پشتِ VPN، با mount کردنِ ISO و دسترسی به BIOS ارائه می‌دهند.

2. پارتیشن‌بندی با یک ناحیه‌ی بوتِ کوچک و متن‌ساده. یک پارتیشن کوچک برای /boot یا پارتیشن سیستمیِ EFI، و بقیه‌ی همه‌چیز داخل یک کانتینر LUKS. بوت‌لودر و initramfs باید پیش از وجودِ هر کلیدی خوانا باشند، پس آن پارتیشن برای هرکسی که دیسک را ایمیج بگیرد خوانا می‌ماند. طراحی‌تان را بر همین اساس بچینید، نه این‌که وانمود کنید طور دیگری است.

3. کانتینر را بسازید. cryptsetup luksFormat --type luks2 --pbkdf argon2id /dev/vda2. LUKS2 همراه با argon2id کل نکته‌ی ماجراست: argon2id از نظر حافظه سنگین است، در RFC 9106 مشخص شده، و یک حمله‌ی حدسِ آفلاین را به‌جای این‌که فقط در نرم‌افزار کند کند، در سخت‌افزار گران می‌کند — فرقِ بین یک فارمِ GPU که دارد گذرواژه‌ی شما را می‌جود و یک فارمِ GPU که ارزشِ نشانه‌گرفتنش را ندارد. هزینه‌ی حافظه را داخلِ چیزی نگه دارید که ماشین می‌تواند در اوایلِ بوت تخصیص دهد؛ روی یک نمونه‌ی 4 GB، هزینه‌ای که روی لپ‌تاپ 64 GB خودتان تنظیم کرده‌اید ساده باز نخواهد شد.

4. آن را باز کنید و نصب کنید. cryptsetup open /dev/vda2 cryptroot، سپس LVM یا یک فایل‌سیستم مستقیماً روی /dev/mapper/cryptroot، سپس نصب‌کننده‌ی توزیع را با /boot روی پارتیشنِ متن‌ساده روی آن اجرا کنید. Debian، Ubuntu، Alpine، Arch، Rocky، Fedora و FreeBSD همگی این را پشتیبانی می‌کنند؛ صفحاتِ dm-crypt در ویکی Arch کامل‌ترین مرجع هستند، فارغ از این‌که واقعاً کدام توزیع را اجرا می‌کنید.

5. یک سرور SSH داخل initramfs بگذارید. dropbear-initramfs را نصب کنید، کلید عمومی‌تان را داخل /etc/dropbear/initramfs/authorized_keys بیندازید، و یک پارامتر ip= به خط فرمانِ هسته اضافه کنید تا رابط شبکه پیش از درخواستِ گذرواژه بالا بیاید. اگر آن پارامتر را رد کنید، ماشینی ساخته‌اید که به یک پرامپت بوت می‌شود که هیچ‌کس نمی‌تواند به آن برسد.

6. دوباره بسازید و ریبوت کنید. update-initramfs -u سرور، کلید شما و تنظیماتِ شبکه را داخلِ ایمیجی که بوت‌لودر بارگذاری می‌کند می‌پزد. سپس با کنسول باز ریبوت کنید، چون اولین تلاش همان چیزی است که ممکن است خراب شود.

7. باز کنید و تحویل‌گیری را تأیید کنید. به پورتِ بازکردنِ قفل SSH بزنید و cryptroot-unlock را اجرا کنید. initramfs یک کلید هاستِ متفاوت از سیستمِ نصب‌شده نشان می‌دهد، پس کلاینتِ شما در اولین اتصال با صدای بلند هشدار می‌دهد — این رفتار درست و یک سیگنالِ مفید است، نه یک مانع: آن fingerprint را به‌عنوان یک رکوردِ جداگانه در known_hosts پین کنید، به‌جای این‌که چکِ کلیدِ هاست را خاموش کنید. قطع‌شدنِ نشست همان چیزی است که به شما می‌گوید سیستمِ واقعی کنترل را دست گرفته.

بازکردنِ قفل از راه دور، و سؤالِ ساعتِ 04:00 که هیچ‌کس اول نمی‌پرسد

سرورِ SSH مربوط به initramfs را روی پورتِ اختصاصی خودش اجرا کنید — 2222 مرسوم است — تا دو کلید هاست هیچ‌وقت داخل یک رکوردِ known_hosts با هم تصادم نکنند. یک ip= ثابت را به DHCP ترجیح دهید: initramfs یک محیطِ مینیمال است و یک رفت‌وبرگشتِ DHCP که شکست بخورد، شما را با ماشینی روشن، غیرقابل‌دسترس و نگه‌دارنده‌ی یک پرامپت تنها می‌گذارد. اگر روی IPv6 حساب می‌کنید، بررسی کنید که initramfsِ شما واقعاً آن را پیکربندی می‌کند؛ چند توزیع در آن مرحله هنوز فقط v4 را بالا می‌آورند.

حتی بعد از این‌که بازکردنِ قفل با SSH کار کرد، کنسول را به‌عنوان راهِ پشتیبان نگه دارید. شکستی که دیر یا زود به آن برخواهید خورد یک شکستِ رمزنگارانه نیست، بلکه یک به‌روزرسانیِ هسته است که initramfs را بدون کلیدِ شما دوباره ساخته، یا یک پارامترِ شبکه است که زیرِ پایتان تغییر کرده — و در آن لحظه تنها راهِ ورود همان کنسولِ KVM-over-VNC است که همراهِ پلن آمده. داشتنِ هردو افزونگی نیست، فرقِ بین یک دردسر و یک بازسازیِ کامل است.

بعد سؤالِ عملیاتی، همان که باید پیش از ساختنِ هرکدام از این‌ها حلش کنید: یک روتِ رمزنگاری‌شده یعنی یک ریبوتِ بدون‌ناظر سرویسِ شما را تا وقتی یک انسان بازش نکند خاموش نگه می‌دارد. تعمیرِ نود، یک kernel panic، یک قطعیِ برق — ماشین به یک پرامپت برمی‌گردد، نه به اپلیکیشنِ شما. اگر این برای بارِ کاری‌تان قابل‌قبول نیست، آن را با یک فایلِ کلید روی پارتیشنِ بوتِ متن‌ساده ماستمالی نکنید. آن یک قفل با کلیدی است که به درش چسبانده شده، و فقط در برابر یک درایوِ فروخته‌شده دفاع می‌کند و نه چیزِ دیگری. اگر خواستید آگاهانه انتخابش کنید، اما در runbook خودتان بنویسید که این همان چیزی است که انتخاب کردید.

هرچیزی که دورِ والیومِ رمزنگاری‌شده نشت می‌کند

والیوم به‌ندرت همان جایی است که چیزی خراب می‌شود. آنچه خراب می‌شود موادی است که هیچ‌وقت به داخلش نرسیدند.

نشتیچرا رخ می‌دهدراه‌حل
Swapحافظه‌ی پروسه — از‌جمله کلیدها — تحتِ فشار روی دیسک می‌ریزدSwap داخلِ کانتینر، یا یک دستگاهِ swap با کلیدِ تصادفی، یا اصلاً نداشتنِ swap
ایمیجِ hibernationیک دامپِ کاملِ RAM که طبق طراحی روی دیسک نوشته می‌شودروی یک سرور غیرفعالش کنید؛ آن‌جا کاری ندارد
initramfs و /boot متن‌سادهباید پیش از وجودِ هر کلیدی خوانا باشندبپذیریدش، و هر تغییری را نشانه‌ی نفوذ در نظر بگیرید — تأیید کنید، یا جایی که در دسترس است از Secure Boot استفاده کنید
journal که پیش از mount نوشته شدهلاگ‌های اوایلِ بوت روی پارتیشنِ متن‌ساده می‌نشینندپیش از باز شدنِ والیوم بررسی کنید journal شما واقعاً کجا زندگی می‌کند
روتِ داده‌ی Dockerبه‌طور پیش‌فرض /var/lib/docker است، بیرون از یک والیومِ داده‌ی الحاقیآن را به داخل منتقل کنید، یا به‌جایش روت را رمزنگاری کنید
مانیتورینگ و لاگ‌های بیرون از باکسعامل‌ها محتوای فایل را به‌صورت خوانا برای یک شخصِ ثالث می‌فرستندپیش از این‌که به والیوم اعتماد کنید، بررسی کنید عامل چه چیزی می‌فرستد

یک ویژگی که باید درباره‌اش شفاف بود، چون مرتباً بیش از حدِ واقعی‌اش فروخته می‌شود: یک هدرِ LUKS خودش را اعلام می‌کند. هرکسی که دیسک را ایمیج بگیرد می‌بیند که یک کانتینرِ رمزنگاری‌شده حضور دارد، از چه رمزی استفاده می‌کند، پارامترهای KDF چه هستند و چند اسلاتِ کلید اشغال شده‌اند. LUKS به شما محرمانگی می‌دهد، نه انکارپذیریِ باورپذیر، و ساختنِ برنامه‌ای که به این وابسته باشد که کسی متوجهِ کانتینر نشود، ساختن روی شن است.

گذرواژه‌ها، فایل‌های کلید و هدرهای جدا

گذرواژه کلِ سیستم است. argon2id هر حدس را گران می‌کند، اما گران ضربدر یک فضای‌کلیدیِ کوچک بازهم ارزان است: پنج یا شش کلمه از یک لیستِ diceware، از یک گذرواژه‌ی یازده‌کاراکتری با جایگزینی‌های داخلش، با فاصله‌ای که اصلاً نزدیک نیست بهتر است. هزینه را با --iter-time بر اساسِ ماشینی که واقعاً قرار است والیوم را باز کند تنظیم کنید، نه ماشینی که رویش تایپ می‌کنید، و هیچ‌وقت گذرواژه‌ای را که هرجا نزدیکِ یک حسابِ KYC‌شده بوده دوباره استفاده نکنید.

یک فایلِ کلید تایپ‌کردن را حذف می‌کند و مسئله را جابه‌جا می‌کند: cryptsetup luksAddKey یکی به یک اسلاتِ خالی اضافه می‌کند، و تنها نسخه‌ای که ارزشِ داشتن دارد همانی است که هیچ‌وقت روی سرور نمی‌ماند — روی ماشینِ خودتان یا یک توکنِ سخت‌افزاری نگه‌داری می‌شود و روی نشستِ SSH به بازکردنِ قفل داده می‌شود. یک هدرِ جدا (--header) فراتر می‌رود: دستگاهِ داده از بایت‌های تصادفی غیرقابل‌تشخیص می‌شود چون متادیتا جای دیگری زندگی می‌کند. روی دیگرِ سکه بی‌رحم است. هدر را گم کنید و والیوم برای همیشه از بین رفته، بدون هیچ راهِ چاره‌ای — پس cryptsetup luksHeaderBackup را جدی بگیرید و آن بکاپ را جایی نگه دارید که خودش هم رمزنگاری شده. FAQ رسمیِ cryptsetup و مستنداتِ dm-crypt در هسته دو مرجعی هستند که پیش از این‌که روی یک چیدمان متعهد شوید ارزشِ خواندن دارند.

و یک قانون بدون استثنا: گذرواژه هیچ‌وقت داخل یک تیکتِ پشتیبانی نمی‌رود. نه مالِ ما، نه مالِ هیچ‌کس دیگر. هیچ‌کاری که ما انجام می‌دهیم به آن نیاز ندارد، هیچ عملیاتی که بتوانیم از طرفِ شما انجام دهیم به آن نیاز ندارد، و یک تیکت یک رکوردِ نوشته‌شده در یک دیتابیس است. اگر یک میزبان روزی آن را از شما بخواهد، همان‌جا مکالمه تمام می‌شود.

یک دیسکِ ایمیج‌گرفته‌شده واقعاً چه چیزی را لو می‌دهد

حالتِ خاموش را مشخص و عینی در نظر بگیریم، چون کلی‌گویی این‌جا به هیچ‌کس کمک نمی‌کند. یک بازرس با یک ایمیج از دیسکِ شما این‌ها را دارد: متن رمزشده، هدرِ LUKS با رمز و پارامترهای KDF و تعدادِ اسلات‌هایش، جدولِ پارتیشن، اندازه‌ی همه‌چیز، و کلِ پارتیشنِ بوتِ متن‌ساده — هسته‌ی شما، initramfsِ شما، و زمانِ تغییرِ هر فایل داخلش. آن آیتمِ آخر اطلاعاتِ بیشتری از آنچه مردم انتظار دارند می‌دهد. زمان‌های نصبِ پکیج‌ها یک جدولِ زمانی می‌کشند، و یک initramfs که یک کلیدِ dropbear دارد چیزی درباره‌ی این‌که ماشین چطور اداره می‌شده می‌گوید.

چیزی که ندارند محتواست. در برابرِ یک کانتینرِ مدرنِ LUKS2 با argon2id و یک گذرواژه‌ی واقعی، حمله‌ی آفلاین مسئله‌ی صبرکردنِ بیشتر نیست — اصلاً روی میز نیست. کلِ ارزش‌پیشنهادی همین است، و ارزشِ خوبی هم هست.

حالتِ روشن برعکس است و کوتاه: همه‌چیز. نه چون رمزنگاری شکست خورده، بلکه چون کلید در حافظه حضور دارد، همان شرطی که یک فایل‌سیستمِ mount‌شده اصلاً بر اساسش کار می‌کند.

اسنپ‌شات‌ها جایی وسط می‌نشینند و مردم را غافلگیر می‌کنند. اسنپ‌شات‌های ساعتیِ ما با نگه‌داریِ 7-day در سطحِ بلاک هستند، پس یک والیومِ رمزنگاری‌شده به‌صورت متن رمزشده اسنپ‌شات می‌شود — خوب است، و پیامدش گاز می‌گیرد: آن اسنپ‌شات هم بدونِ گذرواژه یک کپیِ قابل‌خواندن نیست. کلید را گم کنید و اسنپ‌شات‌ها دقیقاً به همان اندازه‌ی نسخه‌ی اصلی غیرقابل‌بازیابی‌اند. یک مسیرِ بازیابی طراحی کنید که گذرواژه در آن باشد، وگرنه هفت روز نویزِ بسیار قابل‌اعتماد ساخته‌اید. چیزی که بیرون از والیوم درباره‌ی شما نگه می‌داریم در سیاستِ حریمِ خصوصی نوشته شده، و ما هفتگی یک کاناری قانونی با امضای PGP منتشر می‌کنیم، به‌عنوانِ شاهدِ پایدار به‌جای یک وعده.

بخش‌هایی که نتیجه را تعیین می‌کنند رمزنگارانه نیستند

هیچ‌کس داده‌اش را از دست نداده چون AES-256-XTS کم آورده. داده را از دست می‌دهند چون گذرواژه از یک حسابِ صرافی که پاسپورتشان رویش ثبت بود دوباره استفاده شده، چون فایلِ کلید روی پارتیشنِ بوتِ متن‌ساده گذاشته شده تا ریبوت‌ها بی‌سروصدا باشند، چون بکاپِ بیرون از سایت یک tarball ساده بوده، چون گذرواژه داخلِ تاریخچه‌ی shell لپ‌تاپشان است، یا چون یک عاملِ مانیتورینگ کلِ این مدت داشته محتوای فایل را برای یک SaaS می‌فرستاده.

و آن یکیِ آرام: سروری که هیچ‌وقت خاموش نمی‌شود، کلِ عمرش را در حالتی می‌گذراند که هیچ‌کدام از این‌ها کمک نمی‌کند. یک نمونه با 400 روز آپ‌تایم، 400 روز است که رمزگشایی‌شده مانده. اگر داده واقعاً سرد است — یک آرشیو، یک بکاپِ کلید، رکوردهایی که سالی دو بار به آن‌ها مراجعه می‌کنید — آن را داخلِ یک کانتینر نگه دارید که وقتی نیازش دارید بازش می‌کنید و وقتی کارتان تمام شد cryptsetup close می‌کنید. ده ثانیه تایپ‌کردن یک افشای دائمی را به یک افشای لحظه‌ای تبدیل می‌کند، و آن تبدیل بیشتر از هر پارامتری که بتوانید به luksFormat بدهید ارزش دارد.

حوزه‌ی قضایی را هم با همین منطق جفت کنید، حالا که در همین موضوع هستید. رمزنگاری تعیین می‌کند چه چیزی خوانا است؛ جایی که ماشین قرار دارد تعیین می‌کند چه کسی حق پرسیدن دارد، و کدام ائتلاف‌ها درخواست از میانشان می‌گذرد. این دو جایگزینِ هم نیستند، و افرادی که این را درست انجام می‌دهند با آن‌ها مثل یک تصمیم رفتار می‌کنند.

چه چیزی فراهم می‌کنیم، و چه چیزی نمی‌توانیم

هر پلن، از Starter با $8.50 به بالا، همان چیزی را ارائه می‌دهد که یک روتِ رمزنگاری‌شده واقعاً به آن نیاز دارد: مجازی‌سازیِ KVM با روتِ کامل، توانِ بوتِ ISOهای سفارشی و netboot، rebuild-from-ISO از پنل، بارگذاریِ ماژولِ هسته، و یک کنسولِ اضطراریِ KVM-over-VNC برای لحظه‌ای که initramfs برنمی‌گردد. رده‌های اختصاصی یک اندپوینتِ IPMI پشتِ VPN با کنسول، power cycle، mount کردنِ ISO و دسترسی به BIOS اضافه می‌کنند. هیچ‌چیزِ مربوط به رمزنگاری محصولی نیست که به شما بفروشیم — چیزی است که خودتان می‌سازید، و کارِ ما این است که سرِ راه نباشیم.

بیان کردنِ آنچه نمی‌توانیم انجام دهیم مفیدتر است. روی یک VPSِ درحال‌اجرا، هایپروایزر می‌تواند حافظه‌ی مهمان را بخواند؛ این معماری است، نه یک تنظیمِ خط‌مشی، و هیچ رمزنگاری‌ای که داخلِ مهمان نصب کنید آن را تغییر نمی‌دهد. چیزی که در برابرِ آن ارائه می‌دهیم ریاضی نیست، بلکه رویکرد و شواهد است: بدون netflow، بدون PCAP، بدون آینه‌کاریِ NIC، IPهای نشستِ پنل بعد از 24 h پاک می‌شوند، بدون KYC هنگامِ ثبت‌نام تا حساب یک اهرم نباشد، پرداختِ فقط با کریپتو تا ردِ صورتحساب هم یک اهرم نباشد، و یک کاناریِ هفتگیِ امضاشده با PGP که خودتان می‌توانید بررسی کنید. فقط سخت‌افزارِ اختصاصی هایپروایزر را از تصویر حذف می‌کند، و فقط خاموش‌کردن RAM را از آن حذف می‌کند.

اگر این مثلِ یک استدلال علیهِ VPSِ خودمان در برخی مدل‌های تهدید خوانده می‌شود، دقیقاً همین است. ترجیح می‌دهیم دو بار چیزِ درست را به شما بفروشیم تا یک بار چیزِ اشتباه را. یک نمونه را دیپلوی کنید با یک ISO و نصب را روی یک Starter برای یک ماه امتحان کنید؛ اگر پاسخ در نهایت فلز درآمد، رده‌های اختصاصی از $39.50 شروع می‌شوند و به‌جایِ 41 ثانیه، دو تا چهار ساعت طول می‌کشد تا فراهم شوند.

پاسخ‌های سریع

سؤالات متداول

اگر دیتاسنتر مورد یورش قرار بگیرد، آیا رمزنگاری کاملِ دیسک از من محافظت می‌کند؟
کاملاً بستگی دارد به این‌که ماشین در آن لحظه روشن باشد یا نه، و معمولاً روشن است. یک والیومِ رمزنگاری‌شده‌ی خاموش متن رمزشده است و همین‌طور می‌ماند. یک نمونه‌ی درحال‌اجرا کلیدِ اصلی را در RAM دارد، و روی یک VPS، هایپروایزر می‌تواند آن حافظه را بخواند — پس پاسخِ صادقانه برای سناریویی که اکثرِ مردم تصور می‌کنند، نه است. رمزنگاری در برابرِ دیسک‌هایی که از ساختمان خارج می‌شوند دفاعی قوی است و در برابرِ ماشین‌هایی که درحالِ روشن بودن توقیف می‌شوند دفاعی ضعیف.
آیا BitVPS می‌تواند محتوای والیومِ رمزنگاری‌شده‌ی من را بخواند؟
وقتی نمونه درحالِ اجراست، کلیدِ اصلی در حافظه‌ی مهمان است و هایپروایزر می‌تواند حافظه‌ی مهمان را بخواند — پس از نظرِ فنی بله، و هر ارائه‌دهنده‌ای که درباره‌ی یک VPSِ درحال‌اجرا چیزِ دیگری بگوید اشتباه می‌کند. ما این کار را نمی‌کنیم، هیچ netflow، PCAP یا آینه‌کاریِ NIC نگه نمی‌داریم، و به‌جایِ این‌که از شما بخواهیم این را باور کنید، هفتگی یک کاناریِ امضاشده با PGP منتشر می‌کنیم. اما این‌ها خط‌مشی و شواهدند، نه ریاضی. اگر به ریاضی نیاز دارید، والیوم باید بسته باشد، یا هایپروایزر باید اصلاً وجود نداشته باشد — که یعنی سخت‌افزارِ اختصاصی.
چطور بعد از یک ریبوت، بدونِ کنسول قفلِ دیسک را باز کنم؟
یک سرورِ SSH داخلِ initramfs بگذارید. dropbear-initramfs همراه با کلیدِ عمومیِ شما در /etc/dropbear/initramfs/authorized_keys و یک پارامترِ ip= روی خطِ فرمانِ هسته، یک پرامپت به شما می‌دهد که از هرجا می‌توانید به آن برسید؛ cryptroot-unlock والیوم را باز می‌کند و کنترل را به سیستمِ واقعی تحویل می‌دهد. آن را روی یک پورتِ جداگانه اجرا کنید، و در اولین اتصال منتظرِ یک هشدارِ کلیدِ هاست باشید چون initramfs کلیدِ خودش را دارد. کنسولِ KVM-over-VNC را به‌عنوانِ راهِ پشتیبان برای روزی نگه دارید که یک به‌روزرسانی، initramfs را بدونِ کلیدِ شما دوباره می‌سازد.
آیا LUKS سرور را کند می‌کند؟
نه آن‌قدر که روی سخت‌افزاری که ما اجرا می‌کنیم قابل‌توجه باشد. هر CPU در سراسرِ ناوگانِ ما AES-NI دارد، و dm-crypt با شتاب‌دهیِ سخت‌افزاری برای بارهای کاریِ معمولِ وب، ایمیل، دیتابیس و نود، هزینه‌ای در حدِ چند درصدِ تک‌رقمی دارد. جایی که قابل‌اندازه‌گیری می‌شود کارِ پیوسته با IOPS بالا روی NVMeِ سریع است، جایی که رمزنگاریِ هر درخواست تأخیری اضافه می‌کند که در دنباله (tail) به‌جای میانگین خودش را نشان می‌دهد. اگر چیزی اجرا می‌کنید که یک NVMeِ Gen4 را اشباع می‌کند، آن را بنچمارک بگیرید؛ برای بقیه‌ی موارد این سربار فقط نویز است.
باید کلِ روت را رمزنگاری کنم، یا فقط یک والیومِ داده را؟
روت، مگر این‌که دلیلِ مشخصی برای این کار نداشته باشید. یک پیکربندیِ فقط-والیومِ-داده مرتب به‌نظر می‌رسد و از طریقِ swap، journal مربوط به systemd، /tmp، کشِ پکیج‌ها، core dumpها و روتِ پیش‌فرضِ داده‌ی Docker نشت می‌کند — موادِ جالب به‌جای این‌که با تصمیم، به‌طور تصادفی روی سمتِ متن‌ساده تمام می‌شوند. روت را رمزنگاری کنید و این سؤال دیگر برای هر سرویسِ جدیدی که نصب می‌کنید نیازی به پاسخ ندارد.
اگر والیوم رمزنگاری‌شده باشد، برای اسنپ‌شات‌های ساعتیِ من چه اتفاقی می‌افتد؟
آن‌ها در سطحِ بلاک گرفته می‌شوند، پس متن رمزشده را ثبت می‌کنند — که همان چیزی است که می‌خواهید، و از هر دو طرف برش می‌خورد. آن اسنپ‌شات را هیچ‌کس، از‌جمله خودِ شما، بدونِ گذرواژه نمی‌تواند بخواند. بازیابی یعنی بازیابیِ والیومِ رمزنگاری‌شده و بعد بازکردنِ قفلش، دقیقاً همان‌طور که با نسخه‌ی اصلی می‌کردید، پس گذرواژه باید از هر رویدادی که شما را به سراغِ اسنپ‌شات فرستاده جان سالم به‌در ببرد. کلیدی که فقط روی سروری وجود دارد که تازه از دستش داده‌اید، اصلاً کلید نیست.
آیا می‌توانم از یک هدرِ جدای LUKS استفاده کنم یا کلید را از سرور دور نگه دارم؟
هر دو، و هر دو ایده‌های خوبی هستند. cryptsetup luksAddKey یک فایلِ کلید به یک اسلاتِ خالی اضافه می‌کند تا بتوانید آن را روی ماشینِ خودتان یا یک توکنِ سخت‌افزاری نگه دارید و به نشستِ بازکردنِ قفل بدهید. یک هدرِ جدا از طریقِ --header فراتر می‌رود و دستگاهِ داده را شبیهِ بایت‌های تصادفی نگه می‌دارد. هزینه‌اش این است که گم‌کردنِ هدر والیوم را برای همیشه نابود می‌کند — پیش از این‌که به آن نیاز داشته باشید luksHeaderBackup بگیرید و آن بکاپ را جایی نگه دارید که خودش هم رمزنگاری شده.
آیا برای این کار یک سرورِ اختصاصی به‌طورِ محسوسی از یک VPS بهتر است؟
بله، و همان یک ارتقایی است که پاسخ را عوض می‌کند نه فقط شانس را. روی سخت‌افزارِ اختصاصی، هیچ هایپروایزری بینِ هسته‌ی شما و CPU نیست، پس خواندنِ حافظه‌ی شما نیازمندِ تصرفِ فیزیکیِ ماشین و یک حمله‌ی سبکِ DMA یا cold-boot است — کند، پرسروصدا، و آستانه‌ای بسیار بالاتر از یک عملیاتِ روتین. بقیه‌ی موارد در موردِ راه‌اندازی یکسان است، و IPMI همراه با mount کردنِ ISO نصب را راحت‌تر از روی یک VPS می‌کند. رده‌ها از $39.50 شروع می‌شوند.
اعمال کنید

بارهای کاری که این راهنما برای آن‌ها اعمال می‌شود

هر کارت یک صفحه مخصوص بار کاری با توصیه‌های اندازه‌گیری و FAQ sysadmin باز می‌کند.

ادامه مطالعه

راهنماهای دیگر

مطالعه‌های همراه که از جایی که این یکی متوقف می‌شود ادامه می‌دهند.

اعتماد و قابلیت ردیابی آیا یک VPS ناشناس است؟ میزبانی کریپتویی واقعاً چقدر قابل ردیابی است

آیا یک VPS ناشناس است؟ میزبانی کریپتویی واقعاً چقدر قابل ردیابی است

نقشه‌ای صادقانه از آنچه یک میزبان بدون KYC می‌تواند و نمی‌تواند درباره‌ی شما ببیند — ردِ پرداخت، IP اتصال، محتوایی که سرو می‌کنید — و سه نوع جداگانه از «ناشناس‌بودن» که مردم آن‌ها را با هم قاطی می‌کنند.

9 دقیقه مطالعه راهنما را بخوانید
راهنمای عملیاتی چگونه در ۲۰۲۶ یک وب‌سایت را به‌صورت ناشناس میزبانی کنیم

چگونه در ۲۰۲۶ یک وب‌سایت را به‌صورت ناشناس میزبانی کنیم

A practical six-step playbook for standing up a website without leaving identifying metadata — host, domain, payment, network, content, and deploy hygiene.

12 دقیقه مطالعه راهنما را بخوانید
راهنمای خریدار VPS در مقابل bare-metal dedicated: چه زمانی تغییر دهید

VPS در مقابل bare-metal dedicated: چه زمانی تغییر دهید

تحلیل کاربردی از زمانی که KVM دیگر کافی نیست و bare-metal شروع به ارزش‌آفرینی می‌کند — با آستانه‌های دقیق، نه تبلیغات بازاریابی.

9 دقیقه مطالعه راهنما را بخوانید
مرجع اتحاد 14-Eyes، توضیح داده شده — معنی آن برای هاستینگ

اتحاد 14-Eyes، توضیح داده شده — معنی آن برای هاستینگ

A precise explainer on the Five/Nine/14 Eyes intelligence-sharing alliance — origin, members, what they share, and how it actually shapes offshore hosting choices.

9 دقیقه مطالعه راهنما را بخوانید

کافی خواندید؟ در ۶۰ ثانیه استقرار دهید

بدون تأیید ایمیل، بدون شناسه، بدون حساب. یک پلن انتخاب کنید، با هر ارز دیجیتالی پرداخت کنید، root بگیرید.