احراز هویت دو مرحله ای در OpenVPN با ربات تلگرام

این مقاله تنظیم یک سرور OpenVPN را برای فعال کردن احراز هویت دو مرحله‌ای با یک ربات تلگرام توضیح می‌دهد که هنگام اتصال درخواست تأیید ارسال می‌کند.

OpenVPN یک سرور VPN شناخته شده، رایگان و منبع باز است که به طور گسترده برای سازماندهی دسترسی ایمن کارمندان به منابع داخلی سازمانی استفاده می شود.

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

استفاده از عامل دوم خطر دسترسی غیرمجاز را تا 99 درصد کاهش می دهد و به هیچ وجه فرآیند اتصال را برای کاربران پیچیده نمی کند.

اجازه دهید فوراً رزرو کنم: برای اجرا باید یک سرور احراز هویت شخص ثالث multifactor.ru را وصل کنید که در آن می توانید از تعرفه رایگان برای نیازهای خود استفاده کنید.

اصل عمل

  1. OpenVPN از افزونه openvpn-plugin-auth-pam برای احراز هویت استفاده می کند.
  2. این افزونه رمز عبور کاربر را در سرور بررسی می کند و فاکتور دوم را از طریق پروتکل RADIUS در سرویس Multifactor درخواست می کند.
  3. Multifactor از طریق ربات تلگرام پیامی را برای تایید دسترسی به کاربر ارسال می کند
  4. کاربر درخواست دسترسی را در چت تلگرام تایید کرده و به VPN متصل می شود

نصب سرور OpenVPN

مقالات زیادی در اینترنت وجود دارد که فرآیند نصب و پیکربندی OpenVPN را توضیح می دهد، بنابراین ما آنها را تکرار نمی کنیم. اگر به کمک نیاز دارید، چندین لینک به آموزش ها در انتهای مقاله وجود دارد.

راه اندازی Multifactor

قابل اعتماد و متخصص سیستم کنترل چند عاملی، به بخش "منابع" بروید و یک VPN جدید ایجاد کنید.
پس از ایجاد، شما دو گزینه در دسترس خواهید داشت: شناسه NAS и راز مشترک، برای پیکربندی بعدی مورد نیاز خواهند بود.

احراز هویت دو مرحله ای در OpenVPN با ربات تلگرام

در قسمت "گروه ها" به تنظیمات گروه "همه کاربران" بروید و پرچم "همه منابع" را حذف کنید تا فقط کاربران یک گروه خاص بتوانند به سرور VPN متصل شوند.

یک گروه جدید "کاربران VPN" ایجاد کنید، همه روش های احراز هویت به جز تلگرام را غیرفعال کنید و نشان دهید که کاربران به منبع VPN ایجاد شده دسترسی دارند.

احراز هویت دو مرحله ای در OpenVPN با ربات تلگرام

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

احراز هویت دو مرحله ای در OpenVPN با ربات تلگرام

راه اندازی سرور OpenVPN

فایل را باز کنید /etc/openvpn/server.conf و یک افزونه برای احراز هویت با استفاده از ماژول PAM اضافه کنید

plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

افزونه را می توان در دایرکتوری قرار داد /usr/lib/openvpn/plugins/ یا /usr/lib64/openvpn/plugins/ بسته به سیستم شما

بعد باید ماژول pam_radius_auth را نصب کنید

$ sudo yum install pam_radius

فایل را برای ویرایش باز کنید /etc/pam_radius.conf و آدرس سرور RADIUS Multifactor را مشخص کنید

radius.multifactor.ru   shared_secret   40

که در آن:

  • radius.multifactor.ru - آدرس سرور
  • shared_secret - از پارامتر تنظیمات VPN مربوطه کپی کنید
  • 40 ثانیه - زمان انتظار برای درخواست با حاشیه زیاد

سرورهای باقیمانده باید حذف یا نظر داده شوند (در ابتدا یک نقطه ویرگول قرار دهید)

بعد، یک فایل برای openvpn نوع سرویس ایجاد کنید

$ sudo vi /etc/pam.d/openvpn

و در آن بنویسید

auth    required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth    substack     password-auth
account substack     password-auth

خط اول ماژول PAM pam_radius_auth را با پارامترهای زیر متصل می کند:

  • skip_passwd - انتقال رمز عبور کاربر به سرور RADIUS Multifactor را غیرفعال می کند (او نیازی به دانستن آن ندارد).
  • client_id — [NAS-Identifier] را با پارامتر مربوطه از تنظیمات منبع VPN جایگزین کنید.
    تمام پارامترهای ممکن در شرح داده شده است مستندات برای ماژول.

خط دوم و سوم شامل تأیید سیستم ورود، رمز عبور و حقوق کاربر روی سرور شما به همراه فاکتور دوم تأیید اعتبار است.

OpenVPN را مجددا راه اندازی کنید

$ sudo systemctl restart openvpn@server

راه اندازی مشتری

یک درخواست برای ورود کاربر و رمز عبور در فایل پیکربندی مشتری وارد کنید

auth-user-pass

Проверка

کلاینت OpenVPN را راه اندازی کنید، به سرور متصل شوید، نام کاربری و رمز عبور خود را وارد کنید. ربات تلگرام با دو دکمه درخواست دسترسی ارسال می کند

احراز هویت دو مرحله ای در OpenVPN با ربات تلگرام

یک دکمه اجازه دسترسی را می دهد، دومی آن را مسدود می کند.

اکنون می توانید با خیال راحت رمز عبور خود را روی کلاینت ذخیره کنید؛ عامل دوم به طور قابل اعتمادی از سرور OpenVPN شما در برابر دسترسی غیرمجاز محافظت می کند.

اگر چیزی کار نمی کند

به طور متوالی بررسی کنید که چیزی را از دست ندهید:

  • یک کاربر در سرور با OpenVPN با یک رمز عبور وجود دارد
  • سرور از طریق پورت UDP 1812 به آدرس radius.multifactor.ru دسترسی دارد
  • پارامترهای NAS-Identifier و Shared Secret به درستی مشخص شده اند
  • کاربری با همان ورود در سیستم Multifactor ایجاد شده است و به گروه کاربری VPN دسترسی پیدا کرده است.
  • کاربر روش احراز هویت را از طریق تلگرام پیکربندی کرده است

اگر قبلا OpenVPN را تنظیم نکرده اید، بخوانید مقاله مفصل.

دستورالعمل ها با مثال هایی در CentOS 7 ساخته شده اند.

منبع: www.habr.com

اضافه کردن نظر