نصب یک‌کلیک به‌زودی — نصب دستی آزاد

Authelia؛ ورود یکپارچه و احراز هویت دومرحله‌ای جلوی سرویس‌های شما

Authelia پشت reverse proxy می‌نشیند و پیش از رسیدن کاربر به داشبوردها و ابزارهای داخلی، رمز و کد دومرحله‌ای می‌خواهد. نصب یک‌کلیک آن به‌زودی فعال می‌شود؛ امروز روی سرور ابری خودتان راهش بیندازید.

حساب دارید؟ وارد شوید

لوگوی Authelia

Authelia

نصب دستی روی سرور ابری

سرور لازم برای نصب دستی، از

۱٬۱۰۰تومان / ساعت

حدود ۸۰۳٬۰۰۰ تومان در ماه،بر پایهٔ ۷۳۰ ساعت

  • پلن mini کافی است،  ۱ گیگابایت RAM
  • پورت ۹۰۹۱،  پشت reverse proxy با HTTPS
  • نصب دستی با Docker،  راهنمای گام‌به‌گام همین صفحه

معرفی

Authelia روی سرور ابری ایران‌کلاد

با Authelia همهٔ ابزارهای تحت وب‌تان پشت یک صفحهٔ ورود مشترک با کد دومرحله‌ای قرار می‌گیرند؛ کاربر یک بار وارد می‌شود و سرویس‌هایی که خودشان رمز ندارند دیگر بی‌دفاع روی اینترنت نیستند.

سرور در دیتاسنتر تهران است و دسترسی root کامل دارید. نصب یک‌کلیک Authelia آماده‌سازی شده اما هنوز در فهرست سفارش فعال نیست؛ با راهنمای همین صفحه آن را کنار reverse proxy خودتان پیکربندی می‌کنید.

امکانات کلیدی

Authelia در یک نگاه

  • دروازهٔ ورود مشترک

    یک پورتال ورود برای همهٔ زیردامنه‌ها، با نشست مشترک بین سرویس‌ها.

  • دو مرحله برای حساس‌ها

    برای هر دامنه تعیین می‌کنید رمز کافی است یا کد دومرحله‌ای هم لازم است.

  • پیکربندی متنی

    همه‌چیز در یک فایل YAML؛ قابل نسخه‌بندی و بازتولید روی سرور دیگر.

۴ گام تا شروع

روش نصب گام‌به‌گام

  1. گام ۱: آماده‌کردن سرور و دامنه

    یک سرور ابری کوچک با Ubuntu یا Debian بسازید و برای Authelia و هر سرویسی که می‌خواهید محافظت کنید زیردامنه تعریف کنید؛ Authelia برای کوکی‌های ورود به دامنهٔ واقعی و HTTPS نیاز دارد.

  2. گام ۲: نوشتن پیکربندی

    فایل configuration.yml را با رازهای تصادفی برای session، کلید رمزگذاری storage و JWT بسازید، دامنهٔ کوکی و آدرس https پورتال را تعیین کنید و قوانین access_control را بنویسید.

  3. گام ۳: ساخت کاربران

    در فایل users.yml کاربران را تعریف کنید و رمز هر کدام را با دستور authelia crypto hash generate argon2 هش کنید؛ رمز ساده در این فایل نگذارید.

  4. گام ۴: اتصال به reverse proxy

    Authelia را با Docker روی پورت ۹۰۹۱ اجرا کنید و در nginx یا Traefik برای هر سرویس محافظت‌شده forward auth را به Authelia تنظیم کنید.

راهنمای کامل

راهنمای کامل Authelia روی سرور ابری ایران‌کلاد

این راهنما برای مدیر سیستمی است که چند ابزار تحت وب روی سرور ابری دارد و نمی‌خواهد هر کدام با رمز جدا یا بدون رمز روی اینترنت باشد. توضیح می‌دهیم Authelia چطور کار می‌کند، پیکربندی اولیهٔ ما چیست، چرا دامنه و HTTPS ضروری‌اند و کجا باید ابزار دیگری انتخاب کنید. نصب یک‌کلیک Authelia هنوز در فهرست سفارش نیست و به‌زودی اضافه می‌شود.

۱۰ بخش حدود ۶ دقیقه مطالعه

فهرست مطالب

Authelia چیست و چه مشکلی را حل می‌کند؟

Authelia یک سرور احراز هویت متن‌باز است که کنار reverse proxy کار می‌کند. وقتی کاربری آدرس یک سرویس محافظت‌شده مثل grafana.example.com را باز می‌کند، reverse proxy پیش از رساندن درخواست از Authelia می‌پرسد این کاربر وارد شده یا نه. اگر نه، کاربر به پورتال Authelia هدایت می‌شود، رمز و در صورت نیاز کد دومرحله‌ای می‌دهد و سپس به همان سرویس برمی‌گردد.

نتیجه یک ورود یکپارچه (SSO) برای همهٔ سرویس‌هاست، بدون اینکه کد آن‌ها را تغییر دهید. ابزارهایی که خودشان ورود ندارند یا ورودشان ضعیف است، با این روش پشت یک دروازهٔ امن قرار می‌گیرند.

مخاطب Authelia تیم‌های کوچک فنی، توسعه‌دهنده‌هایی که سرویس‌های شخصی متعدد دارند و شرکت‌هایی است که ابزارهای داخلی را روی اینترنت در دسترس کارمندان می‌گذارند.

کاربردهای متداول Authelia

یک نمونهٔ واقعی: تیمی پنج‌نفره Grafana‏، Uptime Kuma و یک پنل مدیریت Docker را روی یک سرور دارد. بدون Authelia هر کدام رمز جدا دارند و پنل Docker اصلاً رمز ندارد. با Authelia هر سه پشت auth.example.com قرار می‌گیرند، برای پنل Docker کد دومرحله‌ای اجباری می‌شود و با خروج یک همکار کافی است حساب او را در یک فایل غیرفعال کنید. جاهایی که Authelia بیشترین ارزش را دارد:

  • محافظت از داشبوردهای مانیتورینگ مثل Grafana و Uptime Kuma با ورود مشترک
  • قفل‌کردن پنل‌های مدیریتی مثل Portainer یا Dozzle که نباید بدون رمز روی اینترنت باشند
  • احراز هویت دومرحله‌ای اجباری برای ابزارهایی که خودشان 2FA ندارند
  • قوانین دسترسی بر اساس گروه تا مثلاً فقط گروه admins به پنل مدیریت برسد
  • مستثنا کردن مسیرهای عمومی مثل API یا webhook از ورود، با قانون جداگانه
  • ورود OpenID Connect برای برنامه‌هایی که از این استاندارد پشتیبانی می‌کنند

بازگشت به فهرست مطالب

پیکربندی اولیهٔ نصب ما

اسکریپتی که برای نصب یک‌کلیک آماده کرده‌ایم Authelia را با Docker Compose در /opt/authelia اجرا می‌کند و سه راز تصادفی برای session، کلید رمزگذاری storage و JWT بازیابی رمز می‌سازد. یک کاربر به نام admin با رمز تصادفی ۱۸ کاراکتری ساخته می‌شود و رمز با الگوریتم argon2id هش می‌شود.

قلب پیکربندی بخش access_control است. هر قانون یک یا چند دامنه، در صورت نیاز مسیر یا گروه کاربری، و یک سیاست را مشخص می‌کند: bypass برای عبور بدون ورود، one_factor برای رمز، two_factor برای رمز و کد دوم، و deny برای بستن کامل. قانون‌ها به ترتیب بررسی می‌شوند و اولین قانونی که با درخواست جور شود اعمال می‌شود؛ پس قانون‌های خاص‌تر، مثل باز گذاشتن مسیر webhook یک سرویس، باید بالاتر از قانون کلی همان دامنه بیایند.

این پیکربندی یک نقطهٔ شروع آزمایشی است: پورتال روی IP سرور و http اجرا می‌شود و هنوز به هیچ reverse proxy وصل نیست. پیش از استفادهٔ واقعی دامنهٔ کوکی، آدرس https پورتال و قوانین access_control را تغییر دهید.

تنظیممقدار پیش‌فرضپیشنهاد برای تولید
پورت۹۰۹۱فقط از پشت reverse proxy
backend کاربرانفایل users.ymlفایل یا LDAP
storageSQLite محلیSQLite یا PostgreSQL
notifierفایل متنیSMTP
سیاست پیش‌فرضone_factordeny و قانون صریح برای هر دامنه
مدت نشست۱ ساعت، بی‌فعالیتی ۵ دقیقهبر اساس نیاز تیم

بازگشت به فهرست مطالب

منابع و هزینه

Authelia برنامه‌ای به زبان Go است و حافظهٔ بسیار کمی مصرف می‌کند؛ هزینهٔ اصلی همان سرور است. معمولاً Authelia روی همان سروری اجرا می‌شود که reverse proxy و چند سرویس محافظت‌شده را میزبانی می‌کند، پس انتخاب پلن را بر اساس مجموع آن سرویس‌ها انجام دهید نه خود Authelia.

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

پلنمنابعساعتی (تومان)تقریبی ماهانه (تومان)
mini۱ هسته، ۱ گیگ RAM، ۲۰ گیگ دیسک۱٬۱۰۰۸۰۳٬۰۰۰
standard۲ هسته، ۲ گیگ RAM، ۴۰ گیگ دیسک۲٬۲۰۰۱٬۶۰۶٬۰۰۰

بازگشت به فهرست مطالب

Authelia در برابر روش‌های دیگر

سه راه رایج برای محافظت از ابزارهای داخلی:

موضوعAutheliaرمز ساده در reverse proxyتونل خصوصی
ورود یکپارچه بین سرویس‌هاداردنداردلازم نیست
احراز هویت دومرحله‌ایداردنداردوابسته به تونل
قانون بر اساس کاربر و گروهداردمحدوددر سطح شبکه
دسترسی از مرورگر بدون نصب برنامهبلهبلهنه
پیچیدگی راه‌اندازیمتوسطکممتوسط

اگر فقط چند نفر به سرویس‌ها دسترسی دارند، WireGuard یا Headscale و نگه‌داشتن همهٔ پنل‌ها پشت تونل گزینهٔ ساده‌تری است.

بازگشت به فهرست مطالب

اتصال Authelia به reverse proxy

Authelia خودش درخواست‌ها را به سرویس‌ها نمی‌رساند؛ این کار reverse proxy است. در nginx برای هر سرویس محافظت‌شده یک auth_request به نقطهٔ بررسی Authelia تعریف می‌کنید و در صورت پاسخ ۴۰۱ کاربر را به پورتال می‌فرستید. در Traefik همین کار با middleware از نوع forwardAuth انجام می‌شود. مستندات Authelia برای nginx‏، Traefik‏، HAProxy و Envoy نمونهٔ کامل دارد.

اگر رابط گرافیکی برای reverse proxy می‌خواهید، Nginx Proxy Manager گواهی SSL را خودکار می‌گیرد و در تنظیمات پیشرفتهٔ هر میزبان می‌توانید دستورهای auth_request را اضافه کنید. زیردامنه‌ها را در مدیریت DNS به سرور اشاره دهید.

بازگشت به فهرست مطالب

راه‌اندازی در شش قدم

ترتیب پیشنهادی برای رسیدن به یک ورود یکپارچهٔ کارا:

  1. از پنل سفارش یک سرور ابری با Ubuntu بسازید و Docker را نصب کنید
  2. برای پورتال، مثلاً auth.example.com، و هر سرویس یک زیردامنه بسازید
  3. reverse proxy را با گواهی SSL برای همهٔ زیردامنه‌ها راه بیندازید
  4. configuration.yml را با دامنهٔ کوکی، آدرس https پورتال و رازهای تصادفی بنویسید
  5. کاربران را با رمز هش‌شده در users.yml تعریف و Authelia را روی پورت ۹۰۹۱ اجرا کنید
  6. برای هر سرویس forward auth را تنظیم و با یک مرورگر ناشناس ورود را آزمایش کنید

بازگشت به فهرست مطالب

نکات امنیتی پیکربندی

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

پورت ۹۰۹۱ را پس از راه‌اندازی reverse proxy در فایروال شبکه برای بیرون ببندید تا Authelia فقط از طریق proxy در دسترس باشد. سرویس‌های محافظت‌شده هم نباید پورت مستقیم باز روی اینترنت داشته باشند؛ وگرنه کسی که پورت را بداند Authelia را دور می‌زند. با ابزار بررسی پورت این را آزمایش کنید.

Authelia در برابر حدس رمز، محدودیت تلاش (regulation) دارد؛ آن را فعال نگه دارید. رازهای configuration.yml را در مخزن Git عمومی نگذارید.

بازگشت به فهرست مطالب

بکاپ و انتقال

کل وضعیت Authelia در پوشهٔ /opt/authelia است: فایل پیکربندی، فایل کاربران و پایگاه دادهٔ SQLite که ثبت‌های دومرحله‌ای کاربران را نگه می‌دارد. اگر این پایگاه داده از بین برود، کاربران باید دوباره روش دوم را ثبت کنند. کپی دوره‌ای این پوشه به همراه فایل‌های رازها کافی است؛ کلید رمزگذاری storage را حتماً کنار بکاپ نگه دارید، چون بدون آن پایگاه داده خوانا نیست.

snapshot کامل سرور هم از تب بکاپ پنل گرفته می‌شود؛ بکاپ‌ها دستی‌اند و بر اساس حجم حساب می‌شوند. جزئیات در صفحهٔ پشتیبان‌گیری. برای انتقال از سرور دیگر، همین پوشه را کپی کنید و DNS زیردامنه‌ها را به سرور جدید برگردانید.

بازگشت به فهرست مطالب

محدودیت‌ها

نصب یک‌کلیک Authelia هنوز در فهرست سفارش نیست؛ اسکریپت آماده‌شده هم فقط پورتال را روی IP بالا می‌آورد و بدون دامنه، HTTPS و reverse proxy کاری از آن برنمی‌آید. در حالت فایل کاربران رابط گرافیکی برای مدیریت کاربر وجود ندارد و ثبت‌نام خودکار کاربر هم پشتیبانی نمی‌شود.

Authelia فقط از برنامه‌های تحت وبی که از طریق reverse proxy می‌گذرند محافظت می‌کند؛ اتصال‌هایی مثل SSH، دیتابیس یا اپ‌های موبایلی که کوکی مرورگر را نمی‌فهمند پشت آن قرار نمی‌گیرند.

بازگشت به فهرست مطالب بازگشت به ابتدای راهنما

پرسش و پاسخ،  ۱۰ پرسش

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

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

Authelia‏، Keycloak یا Authentik؟
Authelia سبک است، با یک فایل YAML پیکربندی می‌شود و برای محافظت از سرویس‌ها پشت reverse proxy ساخته شده است. Keycloak یک سرور هویت کامل سازمانی با رابط مدیریت گسترده است و منابع بیشتری می‌خواهد. Authentik بین این دو است و رابط مدیریت گرافیکی دارد. اگر چند ابزار داخلی دارید و می‌خواهید جلوی همه یک ورود مشترک با کد دومرحله‌ای بگذارید، Authelia ساده‌ترین گزینه است.
کدام روش‌های احراز هویت دومرحله‌ای را پشتیبانی می‌کند؟
رمز یک‌بارمصرف زمانی (TOTP) با اپ‌هایی مثل Google Authenticator، کلید امنیتی و احراز بیومتریک با WebAuthn، و اعلان Duo. کاربر روش دوم را خودش در پورتال Authelia ثبت می‌کند و برای هر دامنه در access_control تعیین می‌کنید که یک مرحله کافی است یا دو مرحله لازم است.
Authelia برای چه سرویس‌هایی مناسب است؟
برای ابزارهای تحت وبی که ورود ضعیف یا هیچ ورودی ندارند: داشبوردهای مانیتورینگ، پنل‌های مدیریت Docker، ابزارهای رسانه و صفحه‌های مدیریتی داخلی. کاربر یک بار وارد می‌شود و تا پایان نشست بین همهٔ سرویس‌های محافظت‌شده جابه‌جا می‌شود.
Authelia اطلاعات را کجا ذخیره می‌کند؟
تنظیمات دومرحله‌ای کاربران و وضعیت‌ها در یک storage ذخیره می‌شود که می‌تواند SQLite محلی یا PostgreSQL و MySQL باشد؛ نصب ما SQLite را به کار می‌برد که برای یک سرور کافی است. نشست‌ها در حالت ساده در حافظهٔ خود Authelia نگه داشته می‌شوند و برای اجرای چند نسخه هم‌زمان باید Redis اضافه کنید.
به Active Directory یا LDAP وصل می‌شود؟
بله. به‌جای فایل users.yml می‌توانید backend احراز هویت را LDAP بگذارید تا کاربران و گروه‌ها از Active Directory‏، OpenLDAP یا سرویس مشابه خوانده شوند. نصب ما با فایل کاربران شروع می‌کند و تغییر به LDAP با ویرایش پیکربندی انجام می‌شود.
Authelia می‌تواند ارائه‌دهندهٔ OpenID Connect باشد؟
بله. Authelia یک ارائه‌دهندهٔ OpenID Connect دارد که برنامه‌هایی مثل Gitea‏، Grafana یا Nextcloud می‌توانند ورودشان را به آن بسپارند. این بخش به پیکربندی کلاینت‌ها، کلید امضا و HTTPS نیاز دارد و در نصب پیش‌فرض فعال نیست.
هزینهٔ اجرای Authelia چقدر است؟
Authelia متن‌باز و رایگان است و فقط اجارهٔ ساعتی سرور را می‌پردازید. حافظهٔ پلن mini با حدود ۱٬۱۰۰ تومان در ساعت برای Authelia کافی است و معمولاً همان سرور reverse proxy و چند سرویس سبک دیگر را هم میزبانی می‌کند. نصب یک‌کلیک هم وقتی فعال شود هزینهٔ جداگانه ندارد.
چرا Authelia بدون دامنه و HTTPS به کار نمی‌آید؟
Authelia ورود کاربر را با کوکی نشست روی یک دامنهٔ مشترک نگه می‌دارد تا بین زیردامنه‌ها معتبر باشد، و نسخه‌های جدید آن آدرس پورتال را فقط با https می‌پذیرند. با IP خالی و http نه کوکی بین سرویس‌ها مشترک می‌شود و نه امنیت لازم فراهم است.
کاربر جدید را چطور اضافه کنم؟
در حالت فایل کاربران، Authelia رابط مدیریت کاربر ندارد. کاربر جدید را در users.yml با نام، ایمیل، گروه و هش رمز اضافه می‌کنید؛ Authelia تغییرات این فایل را می‌خواند. اگر کاربران زیادی دارید، LDAP راه مناسب‌تری است.
بازیابی رمز و ایمیل‌های Authelia چطور ارسال می‌شود؟
نصب ما notifier را روی فایل گذاشته است؛ یعنی ایمیل‌ها به‌جای ارسال در فایل notifications.txt روی سرور نوشته می‌شوند که برای آزمایش مناسب است. برای استفادهٔ واقعی بخش notifier را به یک سرور SMTP وصل کنید تا لینک بازیابی رمز و تأیید ثبت دستگاه به ایمیل کاربر برسد.

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

ابزارهای داخلی‌تان را قفل کنید

یک سرور ابری بسازید و Authelia را کنار reverse proxy خودتان راه بیندازید؛ نصب یک‌کلیک به‌زودی اضافه می‌شود.