پشتیبانگیری از سرور VPN: تعیین کنید چه چیزی باید قابل بازیابی باشد
هویت، پیکربندی و وضعیت سه مسئله متفاوت در پشتیبانگیری هستند. ابتدا هدف بازسازی را تعیین کنید، از یک لحظه عکس بگیرید و سپس بازیابی را بیازمایید.
کپی کردن یک فایل پیکربندی پشتیبان نیست، و پشتیبانی که هیچکس نتواند بازیابی کند یک برنامه نیست. بایگانی باید هویت سرویس، سیاست پیرامون آن و وضعیتی را در خود داشته باشد که میگوید کدام دستگاهها هنوز مجاز هستند. همچنین باید محافظت شود، زیرا در بیشتر استقرارها بایگانی دقیقاً همان چیزی را میدهد که VPN میدهد. تصمیم درباره اینکه چه چیزی باید قابل بازیابی باشد اول میآید؛ فهرست فایلها از همان تصمیم ناشی میشود.
از هدف بازسازی شروع کنید
پیش از فهرست کردن حتی یک فایل بنویسید که سرور بازسازیشده چه کاری باید انجام دهد: همان تونلها را خاتمه دهد، همان هویت را ارائه کند و دستگاههایی را که اکنون لغو شدهاند رد کند. این جمله بیشتر کپیهای سادهلوحانه را کنار میگذارد، زیرا پوشه پیکربندی بهندرت فهرست لغو یا وابستگی هویت خارجی را در خود دارد. همچنین بخشهایی را که بیرون از میزبان زندگی میکنند آشکار میکند، مانند رکوردهای DNS، قواعد فایروال ابری و پوشهای که دروازه در برابر آن احراز هویت میکند. برنامهای که آنها را نادیده بگیرد سروری بازیابیشده تولید میکند که سالم به نظر میرسد و هیچکس را نمیپذیرد.
مطالب را در سه سبد دستهبندی کنید: هویت، پیکربندی و وضعیت. هویت همان کلیدها، گواهیها و مرجعی است که آنها را امضا میکند. پیکربندی تنظیمات دیمن، استخرها، مسیرها و سیاست فایروال است، و وضعیت مجموعه همتاها، حسابها و لغوهایی است که هر روز تغییر میکند.
هویت همان بخشی است که نمیتوانید از نو بسازید
کلیدهای خصوصی را نمیتوان از حافظه بازسازی کرد، و گواهیهایی که به آنها وابستهاند بر اساس زمانی منقضی میشوند که آن را به ارث میبرید نه انتخاب میکنید. از کلید سرور، مواد تأمین کلاینت و مرجع صدور گواهی پشتیبان بگیرید، سپس یادداشت کنید کدامیک قرار است بیرون از شبکه بماند. کلید مرجعی که فقط روی دروازه در حال اجرا زندگی میکند، یک نفوذ تا بازنشانی کامل هویت برای هر کلاینت فاصله دارد. ثبت کنید چه چیزی بهعمد جای دیگری نگهداری میشود تا کسی آن را در بایگانی با حفاظت کمتر تکثیر نکند.
لغو شایسته یک سطر جداگانه در برنامه است. بازیابی پیکربندی دیروز میتواند هویتی را که امروز حذف کردهاید بازگرداند، و این بازیابی را به یک حادثه امنیتی تبدیل میکند. وضعیت لغوی کنونی را جایی مستقل از عکسی نگه دارید که به آن بازمیگشتید، و پس از هر بازیابی آن را بررسی کنید.
وضعیت را در یک لحظه ثبت کنید
کپیای که هنگام نوشتن سرویس گرفته میشود فهرستی ناسازگار تولید میکند، و داده هویتی ناسازگار بدتر از کپی تمیز قدیمیتر است. برای هر مخزن از مسیر خروجی پشتیبانیشده استفاده کنید، سپس زمان عکس را ثبت کنید، زیرا هر پرسش بعدی درباره بازیابی به آن وابسته است.
wg showconf wg0 > /srv/backup/wg0.runtime.conf
sqlite3 /var/lib/vpn/admin.db ".backup '/srv/backup/admin.db'"
cp -a /etc/wireguard /srv/backup/etc-wireguard
sha256sum /srv/backup/*.conf > /srv/backup/MANIFEST
فرمان نخست رابط در حال اجرا را بهصورت پیکربندی چاپ میکند، که سریعترین راه برای گرفتن همتاهایی است که با دست و نه با ابزار مدیریت افزوده شدهاند؛ این را راهنمای wg(8) مستند میکند. خط sqlite الگوی یک پایگاه داده مدیریت است: فرمان پشتیبانگیری نسخهای سازگار تولید میکند در حالی که نویسنده همچنان کار میکند. کپی پوشه مجوزها را حفظ میکند، و این مهم است زیرا آن فایلهای کلید را فقط root میتواند بخواند. مانیفست همان چیزی است که به شما امکان میدهد بایگانی کامل را از بایگانی بریده تشخیص دهید.
بازیابی را ممکن کنید و سپس آن را بیازمایید
بایگانی را رمزگذاری کنید و کلید بازیابی را جایی جز ماشینی که از آن آمده نگه دارید. پشتیبانی که گذرواژهاش فقط روی سرور ازکارافتاده وجود دارد، پشتیبانی است که هیچکس باز نخواهد کرد. بازیابی را به کسانی محدود کنید که از پیش میتوانستند دروازه را مدیریت کنند، و هر بازیابی را ثبت کنید. بازیابی را در شبکه جداشده بیازمایید، زیرا هویت شبیهسازیشده که در کنار محیط عملیاتی بالا میآید دو سرور میسازد که برای یک کلید همتا پاسخ میدهند.
استثناها را به همان دقتی که محتوا را مستند میکنید ثبت کنید. قواعد فایروال ابری، رکوردهای DNS و پوشه خارجی هرکدام ممکن است گام بازیابی خودشان را لازم داشته باشند. کپی موفق فایلها مدرکی بر بازگشت سرویس نیست؛ تنها مدرکی که ارزش دارد، نقطه پایانی بازسازیشدهای است که همان آزمون پذیرش نسخه اصلی را بگذراند.