پیشنهاد سال یک ماه بخرید، یک ماه هدیه بگیرید روی تمام سرورهای مجازی و اختصاصی، با هر مدتی — هزینه 12 ماه بپردازید، 24 ماه استفاده کنید. دو برابر کردن مدت
خانه / راهنماهای میزبانی با حریم خصوصی / استراتژی بکاپ VPS: رمزنگاری‌شده، آفشور و واقعاً قابل بازیابی
عملیات

بکاپ‌گیری از VPS که واقعاً بازیابی می‌شود

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

بدون KYC
فقط ارز دیجیتال
بدون لاگ
DMCA نادیده گرفته می‌شود
دسترسی کامل Root
NVMe SSD

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

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

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

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

چه چیزی خراب می‌شودمعمولاً چگونه رخ می‌دهدچه چیزی شما را نجات می‌دهد
دست خودتانیک rm -rf در حالی که یک متغیر شل خالی بوده، مایگریشنی که به‌اشتباه به سرور اصلی اشاره کرده، یا دیپلویی که جدول اشتباه را حذف کردههر نسخه خارج از سرور که مربوط به پیش از اشتباه باشد — یعنی بازه نگه‌داری باید از زمانی که متوجه اشتباه می‌شوید عقب‌تر برود
خرابی بی‌صدایک NVMe رو به مرگ، نوشتاری ناقص هنگام ریبوت، پایگاه‌داده‌ای که یک هفته است ردیف‌های خراب می‌نویسدنسخه‌های دارای تاریخچه که آن‌قدر عمیق باشند تا به یک نقطه سالم برسند. یک نسخه آینه‌ای تک، خرابی را هم دقیقاً کپی می‌کند
نفوذکلید دزدیده‌شده، اپلیکیشن وصله‌نشده، یک وابستگی مسموم — و سپس، عمداً، بکاپ‌های شمانسخه‌ای که دستگاه نفوذشده هیچ قدرتی برای حذف آن نداشته. اینجا فقط همین حساب می‌شود
رویداد در سطح ارائه‌دهنده یا کشوراز دست رفتن سخت‌افزار، اقدام قانونی در دیتاسنتر، حسابی یا توکنی که دیگر به آن دسترسی نداریدنسخه‌ای که نه نزد آن ارائه‌دهنده است و نه زیر آن حوزه قضایی
گم‌کردن کلیدپس‌عبارت فراموش‌شده، فایل کلیدی که همراه سروری که محافظت می‌کرد پاک شده، هدر LUKS که هیچ‌کس از آن خروجی نگرفتههیچ‌چیز. این تنها ردیفی است که ستون بازیابی ندارد و از خرابی سخت‌افزار هم رایج‌تر است

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

بکاپ‌گیری از VPS که واقعاً بازیابی می‌شود
مقصد بکاپ به دیسک و یک آدرس نیاز دارد، نه به هسته پردازشی. ارزان‌ترین دستگاه دوم در یک حوزه قضایی متفاوت، یک مقصد کاملاً کافی است — و تنها نسخه‌ای که در برابر یک رویداد نزد ارائه‌دهنده اول دوام می‌آورد.

اسنپ‌شات بکاپ نیست، و هاست شما هم بکاپ نیست

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

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

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

قانون 3-2-1، بازنویسی‌شده برای کسانی که هرگز مدرک هویتی نشان نداده‌اند

قانون کلاسیک می‌گوید سه نسخه، روی دو نوع رسانه، که یکی از آن‌ها خارج از محل باشد. این قانون برای دوران نوار و دیسک گردان نوشته شده بود و بند «رسانه» بی‌سروصدا دیگر معنایی ندارد: دیسک سرور اصلی شما NVMe است، دیسک مقصد بکاپ هم NVMe است، و نامیدن این دو با عنوان «دو رسانه» فقط داستانی است که به خودتان می‌گویید. بندی که ارزش نگه‌داشتن دارد، بند «فاصله» است و در زیرساخت آفشور فاصله با کیلومتر سنجیده نمی‌شود.

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

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

یک نکته که افراد در سرور اصلی درست انجام می‌دهند اما در مقصد بکاپ فراموش می‌کنند: هزینه‌اش را هم به همان روش بپردازید. خرید یک سرور دوم با کارت به نام خودتان، بی‌سروصدا همان هویتی را که برای حذفش از سرور اول زحمت کشیده بودید دوباره وصل می‌کند، آن هم درست روی سروری که یک نسخه کامل از همه‌چیز را نگه می‌دارد. اگر هزینه سرور اصلی با Monero پرداخت می‌شود، سرور بکاپ هم سزاوار همان رفتار است.

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

پوش، پول، و اشتباهی که یک شب بد را قادر می‌کند هر دو نسخه را نابود کند

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

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

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

  • مقصدهای append-only. هر دو ابزار اصلی حالتی را پشتیبانی می‌کنند که در آن کلاینت می‌تواند داده اضافه کند اما نمی‌تواند حذف کند. Borg این کار را با محدودکردن کلید SSH روی مقصد به borg serve --append-only انجام می‌دهد؛ restic آن را با یک سرور REST که با --append-only اجرا شده انجام می‌دهد. سرور اصلی هر شب می‌نویسد و از نظر ساختاری قادر به نابودکردن تاریخچه نیست. هرس اسنپ‌شات‌های قدیمی سپس روی مقصد انجام می‌شود، در نشستی که سرور اصلی نمی‌تواند آغازش کند.
  • پول به‌جای پوش. جهت را برعکس کنید: هاست بکاپ به سرور اصلی متصل می‌شود، می‌خواند و ذخیره می‌کند. سرور اصلی اصلاً هیچ اعتبارنامه‌ای برای مقصد ندارد، پس چیزی برای دزدیدن وجود ندارد. کلیدی که در سمت سرور اصلی استفاده می‌شود را با restrict و یک command= اجباری محدود کنید تا یک کلید بکاپ دزدیده‌شده نتواند به یک شل تبدیل شود.

پول مدل قوی‌تری است و اجرایش کمی کار بیشتری می‌برد؛ append-only اگر از قبل از Borg یا restic استفاده می‌کنید تقریباً رایگان است. هرکدام «مهاجم بکاپ‌های من را حذف کرد» را از یک نتیجه به یک تلاش ناکام تبدیل می‌کند. اگر فقط یک چیز از این راهنما بردارید، همین بخش را بردارید.

در مبدأ رمزنگاری کنید، سپس تصمیم بگیرید کلید دست کیست

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

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

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

  • پس‌عبارت را روی سرور فقط به‌صورت فایلی که تنها روت آن را بخواند نگه دارید، با ارجاع از طریق --password-file، تا هرگز در فهرست پردازش‌ها یا تاریخچه شل ظاهر نشود.
  • یک نسخه قابل‌خواندن انسانی خارج از هر دستگاه درگیر نگه دارید. کاغذ در یک کشو واقعاً بهتر از یک پسورد منیجر است که با حسابی همگام می‌شود که ممکن است دسترسی‌اش را هم از دست بدهید.
  • یک کلید دوم به مخزن اضافه کنید — restic key add، یا یک کلید Borg خروجی‌گرفته‌شده — تا فراموشی یک پس‌عبارت فقط یک دردسر باشد نه پایان آرشیو.

قانون زیربنایی هر سه: اگر تنها نسخه کلید روی همان دستگاهی زندگی کند که بکاپ قرار است جایگزینش شود، شما بکاپ ندارید. شما یک توده رمزنگاری‌شده از بلوک‌ها و یک داستان درباره‌شان دارید.

انتخاب یک ابزار، در یک جدول

انتخاب ابزار کم‌اهمیت‌تر از جهت اتصال و وضعیت کلید شماست، به همین دلیل ششمین مورد است نه اولین. با این حال، تفاوت‌ها واقعی‌اند و انتخاب شکل نادرست برای این کار، بعداً برایتان دردسر می‌سازد.

ابزارپیش از خروج رمزنگاری می‌کندحذف داده تکراریمقصد append-onlyکجا مناسب است
resticبله، کل مخزنبلهبله، از طریق سرور REST خودشگزینه پیش‌فرض. با SFTP، آبجکت استوریج و سرور خودش صحبت می‌کند، پس مقصد می‌تواند تقریباً هر چیزی باشد
BorgBackupبله، کل مخزنبله، بهترین در این گروهبله، به‌صورت بومی روی SSHیک مقصد لینوکسی که از طریق SSH در دسترس است. در داده حجیم و تکراری بی‌رقیب است
rsync با چرخش نسخه‌هاخیر — مقصد همه‌چیز را می‌بیندجزئی، از طریق هاردلینکخیرآینه‌سازی به دستگاهی که کاملاً کنترلش دست شماست، وقتی بازیابی جزئی فوری از حریم خصوصی مهم‌تر است
rcloneفقط با rclone cryptخیربسته به ارائه‌دهنده ذخیره‌سازیانتقال آرشیوی که از قبل وجود دارد به آبجکت استوریج، یا بین ارائه‌دهنده‌ها
تکرار ZFSفقط با یک دیتاست رمزنگاری‌شدهبله، در سطح بلوکاز طریق مجوزهای اسنپ‌شاتتکرار بین دو دستگاه ZFS. بسیار سریع، بسیار سخت‌گیر درباره هر دو سر
tar با age یا GPGبله، اگر آرشیو را رمزنگاری کنیدخیرموردی نداردآرشیوهای کوچک، گاه‌به‌گاه و همیشه-نگه‌دار که سادگی بر کارایی برتری دارد

برای یک سرور تک، استفاده از restic به سمت یک VPS دوم کوتاه‌ترین مسیر به سمت چیزی درست است. برای سیدباکس، آرشیو رسانه‌ای یا هر چیزی با تعداد زیادی فایل بزرگ مشابه، حذف داده تکراری در Borg تفاوت بین یک دیسک پر و یک دیسک راحت را می‌سازد — راهنمای سیدباکس جنبه ذخیره‌سازی آن نوع بار کاری را با جزئیات بیشتری پوشش می‌دهد.

هرچیزی که در حال اجراست، یک فایل نیست

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

سه راه خروج، به ترتیب افزایش زحمت. دامپش بگیرید: mysqldump --single-transaction بدون قفل‌کردن نویسنده‌ها یک دامپ سازگار از InnoDB می‌دهد، و pg_dump همین کار را برای PostgreSQL انجام می‌دهد. از آن اسنپ‌شات بگیرید: فایل‌سیستم را منجمد کنید یا یک اسنپ‌شات LVM یا ZFS بگیرید، از روی اسنپ‌شات کپی کنید، بعد آزادش کنید — این‌طور با مجموعه‌داده‌هایی برخورد می‌کنید که برای دامپ شبانه خیلی بزرگ‌اند. یا متوقفش کنید: برای یک سرویس کوچک، دو دقیقه قطعی در ساعت 04:00 یک استراتژی سازگاری کاملاً قابل‌احترام است و تنها گزینه‌ای است که هیچ حالت خاصی ندارد.

همین منطق فراتر از پایگاه‌داده‌ها هم صدق می‌کند. لایه قابل‌نوشتن یک کانتینر مصرفی است، اما ولوم‌هایش نیستند و فایل docker compose و محیط کنارشان هم همین‌طور — بکاپی که داده را بازیابی می‌کند اما تعریف را نه، شما را وامی‌دارد استک را از حافظه‌تان بازسازی کنید. صف‌های پیام، Redis با پرسیستنس فعال، و یک صف ایمیل که یک MTA در حال نوشتن در آن است، همگی سزاوار همین رفتارند: متوقف کنید، اسنپ‌شات بگیرید یا دامپ بگیرید، اما هرگز مستقیم کپی نکنید و امیدوار نباشید.

چه چیزی را بکاپ بگیرید، و بخش‌هایی که همه فراموش می‌کنند

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

  • /etc به‌طور کامل، به‌همراه واحدها و تایمرهای systemd که خودتان نوشته‌اید و هر کرون‌تبی که خارج از آن زندگی می‌کند.
  • گواهی‌های TLS و کلیدهای خصوصی‌شان، یا دست‌کم کلید حساب ACME، تا گواهی‌ها تمدید شوند نه اینکه از صفر شروع کنید.
  • قوانین فایروال و فهرست بسته‌ها، که با هم شکل دستگاه را سریع‌تر از هر خاطره‌ای از آن بازسازی می‌کنند.
  • اسرار اپلیکیشن و فایل‌های محیطی — همان‌هایی که عمداً از مخزن کد شما کنار گذاشته شده‌اند و به همین دلیل جای دیگری وجود ندارند.
  • رکوردهای DNS که به‌صورت متن خروجی گرفته شده‌اند، شامل رکوردهای reverse-DNS و PTR، که نزد ارائه‌دهنده هستند نه روی سرور.

برخی کلیدها داده نیستند — هویت‌اند. کلید خصوصی یک سرویس onion در Tor همان آدرس است: آن را از دست بدهید و سایت دیگر نمی‌تواند با همان نام .onion برگردد، مهم نیست چه چیز دیگری را بازیابی کرده باشید. کلید سرور WireGuard یعنی باید هر کانفیگ کلاینتی که تا حالا داده‌اید را دوباره صادر کنید. کلید DKIM یک میل‌سرور یعنی یک selector جدید و شروعی دوباره برای تحویل‌پذیری ایمیل. سید و وضعیت کانال یک نود Lightning می‌تواند یعنی وجوه باشد، نه فایل — راهنمای هاست نود در این باره صریح است. این‌ها را جداگانه کپی کنید، آفلاین نگه دارید و باارزش‌تر از داده‌ای که محافظت می‌کنند در نظرشان بگیرید.

بازیابی‌ای که تست نکرده‌اید، فقط یک شایعه است

نرم‌افزار بکاپ درباره خودش گزارش می‌دهد و صادقانه هم درباره چیز اشتباهی گزارش می‌دهد. «اسنپ‌شات کامل شد» یعنی داده در یک مخزن نوشته شده. این جمله هیچ چیزی درباره اینکه آیا آن مخزن روی دستگاهی غیر از این یکی، توسط کسی که یازده ماه پیش چه چیزی را تنظیم کرده به یاد ندارد، قابل خواندن است یا نه، نمی‌گوید.

با بررسی‌های ارزان یکپارچگی شروع کنید — restic check --read-data-subset=5% یا borg check --verify-data روی یک زمان‌بندی منظم — و بدانید که این‌ها فقط آرشیو را تأیید می‌کنند، نه توانایی شما در استفاده از آن را. تمرین واقعی چیز دیگری است و یک بار، یک بعدازظهر وقت می‌گیرد. یک سرور تازه را ساعتی در لوکیشنی که معمولاً استفاده نمی‌کنید سفارش دهید. با هیچ‌چیز جز آدرس مخزن، پس‌عبارت و یادداشت‌های خودتان روی آن بازیابی کنید. سرویس را بالا بیاورید. کل فرایند را زمان بگیرید. بعد دستگاه را نابود کنید. هزینه کل: چند دلار، و تنها تمرینی است که عددی قابل‌اعتماد به شما می‌دهد.

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

دو عدد را که این تمرین به شما می‌دهد یادداشت کنید: بازیابی چقدر طول کشید و برنامه بکاپ می‌تواند چقدر کار را از دست بدهد. این‌ها همان سیاست بکاپ‌اند. هرچه بالاتر آمد، جزئیات اجرا در خدمت همین دو عدد است.

آن را خودکار کنید تا همیشه اتفاق بیفتد

وظیفه را از طریق یک تایمر systemd اجرا کنید نه cron. این‌طور لاگ‌ها در یک جا جمع می‌شوند، رکورد واقعی از آخرین اجرا دارید و یک زمان‌بندی که در برابر ریبوت دوام می‌آورد — هیچ‌کدام از این‌ها را cron بدون کار اضافه به شما نمی‌دهد. پس‌عبارت را خارج از خود فایل یونیت نگه دارید، چون هرکسی با دسترسی شل می‌تواند آن را مستقیماً از systemctl cat بخواند.

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

بازه نگه‌داری را عمداً تنظیم کنید نه به‌صورت پیش‌فرض. چیزی مثل --keep-daily 7 --keep-weekly 4 --keep-monthly 6 هم اشتباهاتی را که امشب متوجه می‌شوید و هم خرابی‌ای را که در بهار متوجه می‌شوید، بدون رشد بی‌پایان پوشش می‌دهد. اگر append-only شده‌اید، هرس را در سمت مقصد اجرا کنید، که خودِ هدف append-only شدن است. حجم انتقال به‌ندرت محدودیت شبکه ماست — پهنای باند در همه پلن‌ها نامحدود است — پس برای ثبات برنامه‌ریزی کنید نه برای یک سهمیه، و زمان‌بندی را با ساعات آرام خودتان بسنجید. عادت‌های گسترده‌تر پیرامون همه این‌ها در راهنمای OpSec سرور پوشش داده شده‌اند.

نسخه کوتاه

اگر هیچ کار دیگری با این صفحه نمی‌کنید، این شش کار را انجام دهید، تقریباً به همین ترتیب:

  • یک نسخه را نزد یک ارائه‌دهنده دوم، در یک حوزه قضایی دوم، به همان روش خصوصی نسخه اول پرداخت‌شده قرار دهید.
  • آن نسخه را append-only کنید، یا آن را از مقصد پول کنید، تا یک سرور نفوذشده نتواند نابودش کند.
  • بگذارید ابزار در مبدأ رمزنگاری کند و کلید را خارج از هر دو دستگاه درگیر نگه دارید.
  • از پایگاه‌داده‌ها دامپ بگیرید و هرچه در حال اجراست را متوقف یا اسنپ‌شات کنید؛ هرگز از وضعیت زنده مستقیم کپی نگیرید.
  • کلیدهای هویتی را جداگانه بکاپ بگیرید — onion، WireGuard، DKIM، سیدهای نود — چون این‌ها قابل بازتولید نیستند.
  • یک‌بار روی یک سرور یک‌بارمصرف بازیابی کنید، زمانش را بسنجید و بنویسید چه چیزی کم بود.

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

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

بکاپ VPS — پرسش‌های رایج

01 آیا ServHidden از VPS من بکاپ می‌گیرد؟

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

02 آیا اسنپ‌شات همان بکاپ است؟

خیر. اسنپ‌شات هر دامنه شکستی را با سروری که از آن گرفته شده مشترک است — همان ارائه‌دهنده، همان حساب، همان کشور و اغلب همان فضای ذخیره‌سازی. برای برگرداندن یک آپدیت ناموفق عالی است اما در برابر از‌دست‌رفتن حساب، ارائه‌دهنده یا دستگاه بی‌فایده است. اسنپ‌شات را مثل دکمه Undo ببینید و بکاپ را مثل بیمه؛ این دو مسئله متفاوتی را حل می‌کنند و شما به هر دو نیاز دارید.

03 restic یا BorgBackup — کدام را استفاده کنم؟

اگر مقصد ممکن است آبجکت استوریج، SFTP یا چیزی باشد که هنوز انتخابش نکرده‌اید، سراغ restic بروید، چون با بیشترین تعداد بک‌اند صحبت می‌کند. اگر مقصد یک دستگاه لینوکسی است که از طریق SSH به آن می‌رسید و داده حجیم و تکراری است، سراغ BorgBackup بروید، چون حذف داده تکراری‌اش قوی‌ترین در این گروه است. هر دو پیش از خروج داده از دستگاه در مبدأ رمزنگاری می‌کنند و هر دو از مقصد append-only پشتیبانی می‌کنند، که خیلی مهم‌تر از انتخاب بین این دو ابزار است.

04 چطور جلوی حذف بکاپ‌هایم توسط یک مهاجم را بگیرم؟

به‌جای انگیزه، توانایی را حذف کنید. یا مقصد را append-only کنید تا اعتبارنامه‌های روی سرور اصلی بتوانند داده اضافه کنند اما هرگز نتوانند حذف کنند، یا جهت اتصال را برعکس کنید تا هاست بکاپ از سرور اصلی بخواند و سرور اصلی اصلاً هیچ اعتبارنامه‌ای نداشته باشد. حذف بکاپ‌ها پیش از اعلام حضور، رویه استاندارد هرکسی است که این کار را تجاری انجام می‌دهد، و نسخه‌ای که مهاجم شما می‌تواند حذف کند، نسخه دوم نیست.

05 نسخه دوم کجا باید نگه‌داری شود؟

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

06 هر چند وقت یک‌بار باید بکاپ بگیرم؟

از میزان کاری که حاضرید دوباره انجام دهید شروع کنید و به عقب برگردید. یک وبلاگ می‌تواند یک روز را بدون اینکه کسی متوجه شود از دست بدهد؛ یک فروشگاه نمی‌تواند یک ساعت سفارش را از دست بدهد. برای بیشتر سرورهای تکی، شبانه پیش‌فرض درستی است، همراه با دامپ‌های پایگاه‌داده مکررتر اگر نوشته‌ها ارزشمند باشند. چیزی که بیشتر از بازه اهمیت دارد عمق نگه‌داری است: خرابی اغلب هفته‌ها دیرتر متوجه می‌شود، پس تاریخچه کافی نگه دارید تا به نقطه‌ای پیش از شروع خرابی برسید.

07 آیا بکاپ رمزنگاری‌شده روی سروری که کنترلش دست من نیست امن است؟

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

08 اگر پس‌عبارت بکاپ را گم کنم چه اتفاقی می‌افتد؟

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

به بکاپ امشب جایی برای فرود بدهید

هفت حوزه قضایی، پهنای باند نامحدود در همه پلن‌ها، و سرورهایی از $7.50/mo که مقصدهای کاملاً کافی برای restic یا Borg می‌سازند. بدون KYC، بدون ایمیل، فقط پرداخت ارز دیجیتال — هم برای سرور اصلی، هم برای مقصد بکاپ.

مشاهده پلن‌های VPS سرورهای اختصاصی همه مناطق