← شروع آموزش

WIUNIX ACADEMY

آموزش راه‌اندازی Traefik با Let’s Encrypt و HTTP/3 در اوبونتو و دبیان

صفحهٔ 6 از 6؛ مراحل قبلی و پیش‌نیازها را پیش از ادامه مرور کن.

آموزش متناسب با محیط تو

کجا اجرا می‌کنی؟

سیستم‌عامل و نسخه را انتخاب کن تا مراحل، دستورها و راه‌حل‌ها برای همان محیط نمایش داده شوند.

Ubuntu 26.10بررسی‌شده با مستندات رسمی ·

آموزش متناسب با مقادیر تو

تنظیمات این آموزش

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

آی‌پی، دامنه یا پورت مثال‌ها با محیط تو فرق دارد؟ دکمهٔ زیر را باز کن، مقادیر را تغییر بده و «اعمال در آموزش» را بزن؛ سپس دستورهای به‌روز‌شده را کپی کن.

تنظیم مقادیر برای محیط من11 مقدار قابل‌تغییر
19

قدم بعدی

نسخهٔ بازیابیِ سازگار و محافظت‌شده بگیرید

بعد از پذیرش موفق production، یک پوشهٔ بازیابی تازه و فقط مخصوص root، بیرون از بک‌اند بسازید. این وقفهٔ نگهداری فقط پروکسی اختصاصی را هنگام کپی وضعیت متوقف می‌کند؛ trap در صورت خطا هم آن را دوباره بالا می‌آورد. بکاپ شامل حساب ACME و کلید خصوصی گواهی است؛ دسترسی root، نسخهٔ رمزگذاری‌شدهٔ خارج میزبان و عدم انتشار آن الزامی است. تنظیمات، وضعیت، فایل اجرایی، unitها و فایل آزمایشی با ساختار مسیر اصلی کپی و بدون چاپ اطلاعات محرمانه مقایسه می‌شوند. این کپی، بکاپ دادهٔ برنامه یا حساب DNS نیست.

Bash

سرور لینوکسی اختصاصی

sudo bash -eu <<'BACKUP'
test ! -e '/var/backups/traefik-academy'
install -d -m 0700 '/var/backups/traefik-academy'
systemctl stop traefik-academy.service
trap 'systemctl start traefik-academy.service' EXIT
cp -a --parents '/etc/traefik-academy' '/var/lib/traefik-academy' /usr/local/bin/traefik /etc/systemd/system/traefik-academy.service /etc/systemd/system/academy-traefik-origin.service '/srv/traefik-academy-origin/health.txt' '/var/backups/traefik-academy/'
cmp '/var/lib/traefik-academy/acme-production.json' '/var/backups/traefik-academy/var/lib/traefik-academy/acme-production.json'
cmp '/etc/traefik-academy/dynamic/routes.yml' '/var/backups/traefik-academy/etc/traefik-academy/dynamic/routes.yml'
cmp /usr/local/bin/traefik '/var/backups/traefik-academy/usr/local/bin/traefik'
printf 'Protected recovery copy verified\n'
BACKUP
از کجا بدانم درست انجام شد؟

پیام تأیید کپی دیده می‌شود و پروکسی دوباره اجرا شده؛ پاسخ معتبر بیرونی را دوباره بررسی کنید.

20

قدم بعدی

بازیابی را بدون صدور بی‌دلیل تمرین کنید

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

Bash

سرور لینوکسی اختصاصی

sudo bash -eu <<'RESTORE'
test -d '/var/backups/traefik-academy'
test -d '/etc/traefik-academy/dynamic'
test -d '/var/lib/traefik-academy'
getent passwd traefik-academy >/dev/null
files=('/etc/traefik-academy/traefik.yml' '/etc/traefik-academy/dynamic/routes.yml' '/var/lib/traefik-academy/acme-staging.json' '/var/lib/traefik-academy/acme-production.json' /usr/local/bin/traefik /etc/systemd/system/traefik-academy.service /etc/systemd/system/academy-traefik-origin.service '/srv/traefik-academy-origin/health.txt')
for file in "${files[@]}"; do test -f "/var/backups/traefik-academy$file"; done
systemctl stop traefik-academy.service academy-traefik-origin.service
for file in "${files[@]}"; do cp -a "/var/backups/traefik-academy$file" "$file"; cmp "/var/backups/traefik-academy$file" "$file"; done
chown traefik-academy:traefik-academy '/var/lib/traefik-academy/acme-staging.json' '/var/lib/traefik-academy/acme-production.json'
chmod 0600 '/var/lib/traefik-academy/acme-staging.json' '/var/lib/traefik-academy/acme-production.json'
systemd-analyze verify /etc/systemd/system/traefik-academy.service /etc/systemd/system/academy-traefik-origin.service
systemctl daemon-reload
systemctl start academy-traefik-origin.service traefik-academy.service
RESTORE
از کجا بدانم درست انجام شد؟

بایت‌های ذخیره‌شده برگشته و سرویس‌ها فعال‌اند؛ TLS معتبر، متن پاسخ، HTTP3 و مرز مدیریت خصوصی را دوباره بررسی کنید.

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

releaseها، هشدارهای امنیتی و نکات مهاجرت نسخه‌های فرعی v3 را بررسی کنید. فایل نامزد را با نام جدا و همان کنترل معماری و هش مرحلهٔ نصب بگیرید؛ در زمان بررسی، فایل اجرایی فعال را عوض نکنید. تنظیمات و روت و TLS و QUIC را در محیط جدا آزمایش کنید، نسخهٔ بازیابی محافظت‌شده بگیرید و فقط همین پروکسی را در زمان نگهداری با فایل تأییدشده جایگزین کنید. پذیرش را تکرار و نسخهٔ قبلیِ فایل اجرایی، تنظیمات و وضعیت را کنار هم نگه دارید. downgrade ناسازگار با وضعیت یا تنظیمات نکنید؛ مجموعهٔ سازگار باید بررسی و بازیابی شود. این فایل اجراییِ مشخص‌شده با APT به‌طور خودکار به‌روز نمی‌شود.

21

قدم بعدی

فقط سرویس‌های همین تمرین را کنار بگذارید

اول رکورد DNS تمرین را از روند عادی خود جابه‌جا یا حذف کنید و مطمئن شوید برنامهٔ واقعی به این پروکسی وابسته نیست. دستور فقط دو unit همین تمرین را متوقف می‌کند و داده‌ای پاک نمی‌کند. نسخهٔ بازیابی را طبق سیاست نگهداری حفظ کنید. از فایروال فقط همان سه مجوزی را که اضافه کرده‌اید بردارید و SSH و قوانین دیگر را نگه دارید. تونل کامپیوتر را با Ctrl+C در ترمینال خودش ببندید. ابطال گواهی پس از افشای کلید، اقدام جداگانهٔ CA است؛ توقف پردازه گواهی را باطل نمی‌کند.

Bash

سرور لینوکسی اختصاصی

sudo systemctl disable --now traefik-academy.service academy-traefik-origin.service
sudo ss -lntup
از کجا بدانم درست انجام شد؟

سرویس‌های همین تمرین متوقف و شنونده‌هایشان بسته‌اند؛ سرویس‌های دیگر و فایل‌های نگهداری‌شده دست‌نخورده‌اند.

معیار پایان و گام بعد

پایان موفق یعنی گواهی واقعی و معتبر برای app.example.com، متن دقیق از بیرون، پاسخ واقعی HTTP3-only با کلاینت سازگار، مسیر TCP سالم، بک‌اند و مدیریت محدود به loopback و بازیابی محافظت‌شده‌ای که تمرین شده است. مثال پیش‌فرض، وضعیت سبز پردازه یا هدر Alt-Svc به‌تنهایی پذیرش نیست. برای جایگزینی فایل آزمایشی، ابتدا احراز هویت، سطح دسترسی، بکاپ داده، اعتماد بک‌اند و مانیتورینگ برنامه را طراحی کنید. آموزش‌های مرتبط Nginx HTTP/3 و Caddy راه‌های دیگر لبهٔ وب را نشان می‌دهند؛ مقالهٔ بعدی مانیتورینگ Docker Compose محدودهٔ استقرار متفاوتی دارد.

پشتوانهٔ این آموزش

منابع رسمی

وضعیت بررسی هر محیط بالای صفحه مشخص است؛ بررسی مستندات به معنی اجرای عملی همهٔ نسخه‌ها نیست.

ادامهٔ مسیر

قدم بعدی تو

همهٔ آموزش‌های آکادمی ↗