انتقل إلى 2FA (المصادقة الثنائية لـ ASA SSL VPN)

تظهر الحاجة إلى توفير الوصول عن بُعد إلى بيئة الشركة أكثر فأكثر ، سواء كان المستخدمون أو الشركاء هم الذين يحتاجون إلى الوصول إلى خادم معين في مؤسستك.

لهذه الأغراض ، تستخدم معظم الشركات تقنية VPN ، والتي أثبتت نفسها كطريقة آمنة لتوفير الوصول إلى الموارد المحلية للمؤسسة.

شركتي ليست استثناء ، ونحن ، مثل العديد من الشركات الأخرى ، نستخدم هذه التكنولوجيا. ومثل العديد من الآخرين ، نستخدم Cisco ASA 55xx كبوابة وصول عن بُعد.

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

لأنفسنا ، وجدنا حلاً في استخدام المصادقة الثنائية للاتصال عبر Cisco SSL VPN ، باستخدام كلمات مرور لمرة واحدة. وسيخبرك هذا المنشور بكيفية تنظيم مثل هذا الحل بأقل وقت وتكاليف صفرية للبرامج الضرورية (بشرط أن يكون لديك بالفعل Cisco ASA في البنية الأساسية الخاصة بك).

السوق مليء بالحلول المعبأة لإنشاء كلمات مرور لمرة واحدة ، مع تقديم الكثير من الخيارات للحصول عليها ، سواء كان ذلك بإرسال كلمة مرور عبر الرسائل القصيرة أو باستخدام الرموز المميزة ، سواء الأجهزة أو البرامج (على سبيل المثال ، على الهاتف المحمول). لكن الرغبة في الادخار والرغبة في توفير المال لصاحب العمل ، في الأزمة الحالية ، جعلني أجد طريقة مجانية لتنفيذ خدمة لإنشاء كلمات مرور لمرة واحدة. والتي ، على الرغم من كونها مجانية ، ليست أقل شأنا من الحلول التجارية (تجدر الإشارة هنا إلى أن هذا المنتج يحتوي أيضًا على نسخة تجارية ، لكننا اتفقنا على أن التكاليف ، من حيث المال ، ستكون صفرًا).

لذلك ، سوف نحتاج إلى:

- صورة Linux مع مجموعة أدوات مضمنة - multiOTP و FreeRADIUS و nginx ، للوصول إلى الخادم عبر الويب (http://download.multiotp.net/ - لقد استخدمت صورة جاهزة لبرنامج VMware)
- خادم الدليل النشط
- في الواقع Cisco ASA (أنا ، للراحة ، استخدم ASDM)
- أي رمز مميز للبرنامج يدعم آلية TOTP (أنا ، على سبيل المثال ، أستخدم Google Authenticator ، لكن FreeOTP نفسه سيفعل)

لن أخوض في تفاصيل انكشاف الصورة. نتيجة لذلك ، ستحصل على Debian Linux مع multiOTP و FreeRADIUS مثبتين بالفعل ، ومهيأ للعمل جنبًا إلى جنب وواجهة ويب لإدارة OTP.

الخطوة الأولى. نقوم ببدء تشغيل النظام وتكوينه لشبكتنا
بشكل افتراضي ، يأتي النظام ببيانات اعتماد الجذر. أعتقد أن الجميع قد خمّن أنه سيكون من الجيد تغيير كلمة مرور المستخدم الجذر بعد تسجيل الدخول الأول. تحتاج أيضًا إلى تغيير إعدادات الشبكة (الافتراضي هو "192.168.1.44" مع البوابة "192.168.1.1"). بعد ذلك ، يمكنك إعادة تشغيل النظام.

قم بإنشاء مستخدم في Active Directory مكتب المدعي العاممع كلمة السر MySuperPassword.

الخطوة 2. قم بإعداد الاتصال واستيراد مستخدمي Active Directory
للقيام بذلك ، نحتاج إلى الوصول إلى وحدة التحكم ، والملف مباشرة multotp.php، حيث سنقوم بتكوين الإعدادات للاتصال بـ Active Directory.

اذهب إلى الدليل / usr / local / bin / multiotp / وقم بتشغيل الأوامر التالية واحدة تلو الأخرى:

./multiotp.php -config default-request-prefix-pin=0

يحدد ما إذا كان دبوسًا إضافيًا (دائم) مطلوبًا عند إدخال دبوس لمرة واحدة (0 أو 1)

./multiotp.php -config default-request-ldap-pwd=0

يحدد ما إذا كانت كلمة مرور المجال مطلوبة عند إدخال رقم التعريف الشخصي لمرة واحدة (0 أو 1)

./multiotp.php -config ldap-server-type=1

تم تحديد نوع خادم LDAP (0 = خادم LDAP عادي ، في حالتنا 1 = Active Directory)

./multiotp.php -config ldap-cn-identifier="sAMAccountName"

يحدد التنسيق الذي سيتم تمثيل اسم المستخدم به (هذه القيمة ستخرج فقط اسم المستخدم ، بدون المجال)

./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"

نفس الشيء ، فقط للمجموعة

./multiotp.php -config ldap-group-attribute="memberOf"

تحدد طريقة تحديد ما إذا كان المستخدم ينتمي إلى مجموعة أم لا

./multiotp.php -config ldap-ssl=1

ما إذا كنت تريد استخدام اتصال آمن بخادم LDAP (نعم ، بالطبع!)

./multiotp.php -config ldap-port=636

منفذ للاتصال بخادم LDAP

./multiotp.php -config ldap-domain-controllers=adSRV.domain.local

عنوان خادم Active Directory الخاص بك

./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"

حدد مكان بدء البحث عن المستخدمين في المجال

./multiotp.php -config ldap-bind-dn="[email protected]"

حدد مستخدمًا لديه حقوق البحث في Active Directory

./multiotp.php -config ldap-server-password="MySuperPassword"

حدد كلمة مرور المستخدم للاتصال بـ Active Directory

./multiotp.php -config ldap-network-timeout=10

تعيين مهلة للاتصال بـ Active Directory

./multiotp.php -config ldap-time-limit=30

تعيين حد زمني لعملية استيراد المستخدم

./multiotp.php -config ldap-activated=1

تنشيط تكوين اتصال Active Directory

./multiotp.php -debug -display-log -ldap-users-sync

نقوم باستيراد المستخدمين من Active Directory

الخطوة الثالثة. قم بإنشاء رمز QR للرمز المميز
كل شيء بسيط للغاية هنا. افتح واجهة الويب لخادم OTP في المتصفح ، وقم بتسجيل الدخول (لا تنس تغيير كلمة المرور الافتراضية للمسؤول!) ، وانقر فوق الزر "طباعة":

انتقل إلى 2FA (المصادقة الثنائية لـ ASA SSL VPN)
ستكون نتيجة هذا الإجراء صفحة تحتوي على رمزي QR. نتجاهل بجرأة أولهما (على الرغم من النقش الجذاب Google Authenticator / Authenticator / 2 Steps Authenticator) ، ومرة ​​أخرى مسح الرمز الثاني بجرأة إلى رمز مميز للبرنامج على الهاتف:

انتقل إلى 2FA (المصادقة الثنائية لـ ASA SSL VPN)
(نعم ، لقد أفسدت رمز الاستجابة السريعة عمدًا لجعله غير قابل للقراءة).

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

من أجل الدقة ، يمكنك التحقق ، في نفس الواجهة:

انتقل إلى 2FA (المصادقة الثنائية لـ ASA SSL VPN)
إدخال اسم المستخدم وكلمة المرور لمرة واحدة من التطبيق على الهاتف. حصلت على رد إيجابي؟ لذلك ننتقل.

الخطوة 4. تكوين واختبار FreeRADIUS
كما ذكرت أعلاه ، تم تكوين multiOTP بالفعل للعمل مع FreeRADIUS ، ويبقى تشغيل الاختبارات وإضافة معلومات حول بوابة VPN الخاصة بنا إلى ملف تكوين FreeRADIUS.

نعود إلى وحدة تحكم الخادم ، إلى الدليل / usr / local / bin / multiotp /، يدخل:

./multiotp.php -config debug=1
./multiotp.php -config display-log=1

بما في ذلك بالتالي تسجيل أكثر تفصيلا.

في ملف تكوين عميل FreeRADIUS (/etc/freeradius/clinets.conf) قم بالتعليق على جميع الأسطر المتعلقة بـ مؤسسة الكوثر وأضف إدخالين:

client localhost {
        ipaddr = 127.0.0.1
        secret          = testing321
        require_message_authenticator = no
}

- للاختبار

client 192.168.1.254/32 {
        shortname =     CiscoASA
        secret =        ConnectToRADIUSSecret
}

- لبوابة VPN الخاصة بنا.

أعد تشغيل FreeRADIUS وحاول تسجيل الدخول:

radtest username 100110 localhost 1812 testing321

حيث اسم المستخدم = اسم المستخدم ، 100110 = كلمة المرور التي يمنحها لنا التطبيق على الهاتف ، مؤسسة الكوثر = عنوان خادم RADIUS ، 1812 - منفذ خادم RADIUS ، testing321 - كلمة مرور عميل خادم RADIUS (التي حددناها في التكوين).

سيكون إخراج هذا الأمر مشابهًا لما يلي:

Sending Access-Request of id 44 to 127.0.0.1 port 1812
        User-Name = "username"
        User-Password = "100110"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 1812
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20

نحتاج الآن إلى التأكد من مصادقة المستخدم بنجاح. للقيام بذلك ، سننظر في سجل multotp نفسه:

tail /var/log/multiotp/multiotp.log

وإذا كان الإدخال الأخير هناك:

2016-09-01 08:58:17     notice  username  User    OK: User username successfully logged in from 127.0.0.1
2016-09-01 08:58:17     debug           Debug   Debug: 0 OK: Token accepted from 127.0.0.1

ثم سارت الأمور على ما يرام ، ويمكننا الأداء

الخطوة 5 قم بتكوين Cisco ASA
دعنا نتفق على أن لدينا بالفعل مجموعة مكونة وسياسات للوصول عبر SLL VPN ، تم تكوينها بالتزامن مع Active Directory ، ونحتاج إلى إضافة مصادقة ثنائية لهذا الملف الشخصي.

1. أضف مجموعة خوادم AAA جديدة:

انتقل إلى 2FA (المصادقة الثنائية لـ ASA SSL VPN)
2. أضف خادم multiOTP الخاص بنا إلى المجموعة:

انتقل إلى 2FA (المصادقة الثنائية لـ ASA SSL VPN)
3. قاعدة ملف تعريف الاتصال، قم بتعيين مجموعة خوادم Active Directory كخادم المصادقة الأساسي:

انتقل إلى 2FA (المصادقة الثنائية لـ ASA SSL VPN)
4. في علامة التبويب متقدم -> المصادقة حدد أيضًا مجموعة من خوادم Active Directory:

انتقل إلى 2FA (المصادقة الثنائية لـ ASA SSL VPN)
5. في علامة التبويب متقدم -> ثانوي المصادقة حدد مجموعة الخادم التي تم إنشاؤها والتي تم فيها تسجيل خادم multiOTP. لاحظ أن اسم مستخدم الجلسة موروث من مجموعة خوادم AAA الأساسية:

انتقل إلى 2FA (المصادقة الثنائية لـ ASA SSL VPN)
تطبيق الإعدادات و

الخطوة 6 هي الأخيرة
تحقق مما إذا كانت المصادقة ذات العاملين لـ SLL VPN تعمل بالنسبة لنا:

انتقل إلى 2FA (المصادقة الثنائية لـ ASA SSL VPN)
هاهو! عند الاتصال عبر عميل Cisco AnyConnect VPN ، سيُطلب أيضًا كلمة مرور ثانية لمرة واحدة.

آمل أن تساعد هذه المقالة شخصًا ما ، وأن تعطي شخصًا ما للتفكير ، كيف يمكنك استخدام هذا ، حر خادم OTP ، لمهام أخرى. شارك في التعليقات إذا كنت ترغب في ذلك.

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

إضافة تعليق