مصادقة ثنائية في OpenVPN مع Telegram bot

توضح المقالة كيفية تكوين خادم OpenVPN لتمكين المصادقة الثنائية مع روبوت Telegram الذي سيرسل طلب تأكيد عند الاتصال.

OpenVPN هو خادم VPN معروف ومجاني ومفتوح المصدر يُستخدم على نطاق واسع لتزويد الموظفين بوصول آمن إلى الموارد الداخلية للمؤسسة.

كقاعدة عامة ، يتم استخدام مزيج من مفتاح واسم مستخدم / كلمة مرور كمصادقة للاتصال بخادم VPN. في الوقت نفسه ، تقوم كلمة المرور المحفوظة على العميل بتحويل المجموعة بأكملها إلى عامل واحد لا يوفر المستوى المناسب من الأمان. تمكن المهاجم ، بعد أن تمكن من الوصول إلى جهاز كمبيوتر عميل ، من الوصول إلى خادم VPN أيضًا. هذا ينطبق بشكل خاص على الاتصال من الأجهزة التي تعمل بنظام Windows.

يقلل استخدام العامل الثاني من مخاطر الوصول غير المصرح به بنسبة 99٪ ولا يعقد عملية الاتصال للمستخدمين على الإطلاق.

سأحجز على الفور أنه من أجل التنفيذ ، ستحتاج إلى الاتصال بخادم مصادقة multifactor.ru تابع لجهة خارجية ، حيث يمكنك استخدام تعريفة مجانية لاحتياجاتك.

كيف يعمل

  1. يستخدم OpenVPN المكون الإضافي openvpn-plugin-auth-pam للمصادقة
  2. يتحقق المكون الإضافي من كلمة مرور المستخدم على الخادم ويطلب العامل الثاني عبر بروتوكول RADIUS في خدمة Multifactor
  3. يقوم العامل المتعدد بإرسال رسالة إلى المستخدم عبر Telegram bot مع تأكيد الوصول
  4. يؤكد المستخدم طلب الوصول في دردشة Telegram ويتصل بشبكة VPN

تثبيت خادم OpenVPN

هناك العديد من المقالات على الإنترنت تصف عملية تثبيت OpenVPN وتكوينه ، لذلك لن نقوم بتكرارها. إذا كنت بحاجة إلى مساعدة ، فهناك العديد من الروابط إلى البرامج التعليمية في نهاية المقالة.

وضع متعدد العوامل

اذهب إلى نظام تحكم متعدد العوامل، انتقل إلى الموارد وأنشئ شبكة ظاهرية خاصة جديدة.
بعد الإنشاء ، سيتوفر لك خياران: معرف NAS и السر المشترك، ستكون مطلوبة للتكوين اللاحق.

مصادقة ثنائية في OpenVPN مع Telegram bot

في قسم "المجموعات" ، انتقل إلى إعدادات المجموعة "كل المستخدمين" وقم بإلغاء تحديد علامة "كل الموارد" بحيث يمكن فقط لمستخدمي مجموعة معينة الاتصال بخادم VPN.

قم بإنشاء مجموعة جديدة "مستخدمو VPN" ، وقم بتعطيل جميع طرق المصادقة باستثناء Telegram ، وحدد أن المستخدمين لديهم حق الوصول إلى مورد VPN الذي تم إنشاؤه.

مصادقة ثنائية في OpenVPN مع Telegram bot

في قسم "المستخدمون" ، قم بإنشاء مستخدمين سيتمكنون من الوصول إلى VPN ، وأضف "مستخدمي VPN" إلى المجموعة ، وأرسل لهم رابطًا لإعداد عامل المصادقة الثاني. يجب أن يتطابق تسجيل دخول المستخدم مع تسجيل الدخول على خادم VPN.

مصادقة ثنائية في OpenVPN مع Telegram bot

إعداد خادم 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_radius_auth PAM بالمعلمات:

  • skip_passwd - يعطل إرسال كلمة مرور المستخدم إلى خادم Multifactor RADIUS (لا يحتاج إلى معرفته).
  • client_id - استبدل [NAS-Identifier] بالمعامل المقابل من إعدادات مورد VPN.
    جميع الخيارات الممكنة موصوفة في وثائق للوحدة.

يتضمن الخطان الثاني والثالث فحص النظام لتسجيل الدخول وكلمة المرور وحقوق المستخدم على الخادم الخاص بك إلى جانب عامل المصادقة الثاني.

أعد تشغيل OpenVPN

$ sudo systemctl restart openvpn@server

إعداد العميل

قم بتضمين طلب اسم مستخدم وكلمة مرور في ملف تكوين العميل

auth-user-pass

Проверка

قم بتشغيل العميل لـ OpenVPN ، واتصل بالخادم ، وأدخل تسجيل الدخول وكلمة المرور. سوف يتلقى بوت Telegram طلب وصول مع زرين

مصادقة ثنائية في OpenVPN مع Telegram bot

زر واحد يسمح بالوصول ، الكتل الثانية.

يمكنك الآن حفظ كلمة المرور بأمان على العميل ، وسيحمي العامل الثاني خادم OpenVPN بشكل موثوق من الوصول غير المصرح به.

إذا كان هناك شيء لا يعمل

تحقق باستمرار من أنك لم تفوت أي شيء:

  • يوجد مستخدم بكلمة مرور معينة على الخادم باستخدام OpenVPN
  • الوصول من الخادم عبر منفذ UDP 1812 إلى العنوان radius.multifactor.ru
  • معلمات معرف NAS والسرية المشتركة صحيحة
  • تم إنشاء مستخدم له نفس تسجيل الدخول في نظام Multifactor وتم منحه حق الوصول إلى مجموعة مستخدمي VPN
  • قام المستخدم بتكوين طريقة المصادقة عبر Telegram

إذا لم تقم بإعداد OpenVPN من قبل ، فاقرأ مقالة موسعة.

التعليمات مصنوعة من أمثلة على CentOS 7.

المصدر: www.habr.com

إضافة تعليق