كيفية إنشاء وصول آمن إلى الخوادم في الوضع البعيد



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

والسؤال المضاد: أتساءل ما الذي أدت إليه أفكارك. بعد كل شيء ، زملائك ، الذين يجلسون في شقق ومنازل مريحة ، يذهبون بمعدات غير محمية من خلال قنوات غير آمنة ويلمسوا حرفياً خوادم الشركة مع كل هذه ...

نريد أن نشارك معك نسخة مفتوحة المصدر من الأداة المستخدمة في شركتنا كخادم معقل. ويسمى خادم مصادقة عزل DevOpsProdigy .

كيف تعمل


1. يضيف العزل كلمة مرور لمرة واحدة ومصادقة ثنائية لمعلومات تسجيل الدخول إلى SSH. يمكنك استخدام معدات YubiKey أو تطبيق Google Authenticator لهذا الغرض . حتى إذا فقد المستخدم كلمة المرور من حسابه ، بدون مفتاح OTP ، لا يمكن للمهاجم استخدامها والوصول إلى خادم Isolate. لتنفيذ المصادقة ذات العاملين ، نستخدم وحدة pam-module. يمكنك قراءة المزيد عن هذا في هذه المقالة القديمة .

2. لا يحصل المستخدمون على وصول مباشر إلى الخوادم الطرفية - يمر الاتصال عبر خادم Isolate ، ويقوم النظام بمراقبة وتسجيل جميع أنشطتهم.

تنحصر جميع إجراءات المستخدم في استخدام أمرين:

s <search-str>- للبحث عن المعلومات حسب اسم المشروع أو اسم الخادم ، يتم تخزين المعلومات في قاعدة بيانات Redis المدمجة ، والتي يتم إغلاقها عن طريق التفويض.

g <ip-address> / g <project-name> <server-name>- يبدأ استدعاء لهذا الأمر /usd/bin/ssh . يتم أخذ الحجج الخاصة بالمكالمة (على سبيل المثال ، اسم المستخدم ، عنوان IP ، المنفذ ، الوكيل) من قاعدة البيانات.

3. من السهل إدارة الوصول إلى خادم المصادقة - إضافة / إزالة المستخدمين ، إلخ. يمكنك العثور على عدد كبير من الأمثلة حول استخدام الأوامر في الملف التمهيدي auth-add-user، auth-add-hostوما إلى ذلك. من

الناحية الفنية ، تحتاج إلى إنشاء مفتاح الخادم Isolate ووضعه على الخوادم الوجهة ، ويجب أن يحصل المستخدمون على وصول منتظم إلى خادم Isolate من sudo إلى ssh.

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

هذا كل شئ. يعمل Isolate على إعداد CentOS 7 / Ubuntu 16.04 / Debian 9 . مطلوب أيضًا Ansible 2.3+ .

لا يسعني إلا أن أشير إلى أن DevOpsProdigy Isolateإنه مفيد أيضًا في "وقت السلم": يمكنك أن تكون هادئًا مع خوادمك ، حتى إذا فقد شخص ما جهاز كمبيوتر محمول بمفتاح SSH. وعندما يغادر الموظف الذي كان له حق الوصول إلى الشركة ، لن تضطر إلى الإسراع لتغيير جميع كلمات المرور والمفاتيح. نحن الآن بصدد إعداد قائمة بالتحسينات والميزات للإصدار الحالي من هذه الأداة ، والتي يتم تنفيذها في نظامنا الداخلي. نحن في انتظار رغبات ، إصدار ، علاقات عامة في مستودع جيثب . للمناقشات والأسئلة، وهناك أيضا دردشة برقية و الدردشة في سلاك .

حتى الآن قد يصبح العمل عن بعد في شركتك أسهل قليلاً. وبالتأكيد - أكثر أمانا. حظا طيبا وفقك الله

All Articles