حسن!
كل مؤسسة ، عاجلاً أم آجلاً ، فجأة ، تحتاج إلى الوصول عن بُعد.
عمليا ، يواجه كل متخصص في تكنولوجيا المعلومات الحاجة إلى تنظيم الوصول عن بعد إلى شبكاتهم في المؤسسة.
أنا مثل كثيرين ، هذه الحاجة مغطاة بختم "البارحة". بعد أن قمت بتحليل جميع إيجابيات وسلبيات ، فضلا عن مجرفة طن من المعلومات والحفر قليلا من الناحية النظرية ، قررت المضي قدما في التثبيت.
لأسباب تتعلق بالأمان ، اخترت OpenVPN في التطبيق التالي: تم تثبيت جهاز ظاهري على خادم يقوم بتشغيل Windows Server 2012 ، كما تم تثبيت Windows Server 2012 عليه ، وكان بدوره خادم OpenVPN أصدر الشهادات الموقعة.
للراحة ، سوف نسميها "خادم التصديق". علاوة على ذلك ، حصل على شهادة خادم ، ودفعها إلى Mikrotik ، وعلى جهاز التوجيه قام Mikrotik برفع OpenVPN مع الحسابات ، الملفات الشخصية. لقد استخدمت أيضًا خادم شهادات لإصدار شهادة عميل.
التنفيذ ، بالطبع ، مروع ، وعلى الرغم من أن تجربتي في ذلك الوقت كانت ، على سبيل المثال ، ليست كافية ، في المسائل الأمنية ، لم يكن قرارًا سيئًا.
عملت هذه الحزمة لفترة من الوقت وحصلت على مقدمة جديدة: نقل خادم التصديق إلى Linux ، مع الحفاظ على الاتصال مع Mikrotik - يجب ألا يعاني العملاء.
انتهت معرفتي لنظام Linux في ذلك الوقت على Ubuntu 16.04LTS بواجهة رسومية تم استخدامها كمحطة للاتصال عبر RDP بخادم Windows. وهذا هو ، sudo apt-get -f install -y ، وليس سنتيمترًا أكثر.
بعد دراسة السؤال الذي يعتبر نظام التشغيل من عائلة Linux أكثر استقرارًا وواعداً لمؤسستي ، استقرت على CentOS 7 Minimal.
بادئ ذي بدء ، قررت الخوض في النظرية قليلاً ، لفهم كيف تعمل وتعمل بشكل عام. شاهدت مقاطع الفيديو التعليمية على القناة
www.youtube.com/channel/UCKdRgZWgy42YxoFcTJ30LTA (بشكل عام ، وليس الإعلان ، لقد تلقوا لي أولاً). تعرفت الفتاة ذات الصوت اللطيف على أساسيات العمل في نظام التشغيل المختار.
للبدء ، قمت بتشغيل Hyper-V على جهاز الكمبيوتر الخاص بي ، وقمت بتثبيت CentOS 7 Minimal هناك ، أثناء التثبيت ، قمت بإنشاء مستخدم Admin وأغلقت ssh بالكامل للجذر. نقول وداعا لشاشة جميلة متعددة الألوان ، سقطت في العالم بالأبيض والأسود من المحطة.
أعتقد أنه من غير المنطقي وصف عملية تثبيت البرامج ، فمن الأفضل التركيز على المشكلات التي نشأت في العملية والتي اضطررت إلى كتابة نص صغير لها (تحت القط. يمكن العثور على وصف لكل من الأدوات المساعدة على الإنترنت ، ولكن في هذه اللحظة عندما أكون جميعًا فعلت ذلك ، هذا السيناريو لم يكن هناك بعد ، كل شيء تم القيام به لأول مرة ، لمسة وبشكل عشوائي).
في البرنامج النصي ، حاولت أتمتة تثبيت الحد الأدنى من الأدوات المساعدة الضرورية للخادم ، وتعطيل Selinux ، وتوصيل مستودع Epel ، وتثبيت OpenVPN ، وما إلى ذلك. وفيما يلي النص نفسه ، إنه بسيط ، ولكن يمكن استخدامه. لن أفككها ، لكن إذا احتاجها أحد ، فاكتب ردًا.
بعد استخدام البرنامج النصي ، سيظهر خادم OpenVPN مهيأ بالفعل ، يغمز بالعين الأخضر.
UPD: إجراء بعض التعديلات على البرنامج النصي ، واستخلاص النتائج من التعليقات. لم يبدأ في حذف أخطائه ، لكنه علق ببساطة حتى لا يضيع خيط التعليقات. الخطوط المضافة دفعت للرؤية.
لم يكن تثبيت OpenVPN ناجحًا تمامًا.
لا أعرف ميزات سياسة الحقوق على أنظمة Linux ، قضيت الكثير من الوقت في دراسة السجلات وتعيين جميع الملفات الحقوق المطلوبة.
عندما تحول زر OpenVPN إلى اللون الأخضر ، كنت سعيدًا جدًا ، ولكن كما بدا ، كانت هذه هي البداية فقط. من أجل البساطة ، كنت أتوقع استبدال شهادات الجذر وملف crl.pem ، على أمل أن كل شيء يعمل. كنتيجة لذلك ، كنت بحاجة لنقل الملفات التالية من الخادم إلى Windows:
Serv.crt - شهادة الخادم
Serv.key - مفتاح الخادم
Ca.crt - شهادة الجذر
Ca.key - مفتاح الجذر
Crl.pem - ملف إلغاء الشهادة
Dh.pem - Diffie-Hellman key
Index.txt - ملف به معلومات حول الشهادات الحالية
المسلسل - إنه مسؤول أيضًا عن أهمية الشهادات
كما تطلب أيضًا مجلد certs_by_serial وملف vars وجميع مفاتيح العميل وشهاداته.
في Mikrotik ، ظلت الشهادات في مكانها ، لذلك نجحت.
ظهرت مشاكل عندما حاولت إبطال الشهادة ، لم تنجح هذه الكلمة من الكل على الإطلاق - يجب أن يتم تحويل ملف index.txt إلى تنسيق unix ، لكنني لم أقم بذلك على الفور. استخدام الأداة المساعدة dos2unix.
الآن تم إبطال الشهادات ، لكنها استمرت في العمل دون أي مشاكل ، لأن Mikrotik لم يكن يعلم أنها ألغيت وأنه كان بحاجة لإبلاغه بطريقة أو بأخرى.
بعد قراءة التعليمات ، بالإضافة إلى التشاور مع Alexander ERI (شكرًا جزيلاً لك!) ، التقطت خادم Apache http بسيطًا على خادم الشهادات ونشرت ملفًا للشهادات الملغاة عليه. تم إغلاق الوصول إليه تمامًا ، باستثناء الملف المنشور من عنوان IP واحد.
في محطة Mikrotik ، في علامة التبويب / System / Certificates / CRL ، أشار إلى المسار إلى crl.pem المنشور. هنا يجب توضيح أن Mikrotik يقبل فقط http وعنوان مطلق لعلامة التبويب CRL ، أي يجب أن يبدو مثل هذا:
127.0.0.1/crl/1.crlكل شيء كان ناجحًا ، على الأقل بالنسبة للإصدارات 6.4.2.x من RouterOS ، لكن كان علي إنشاء تكوينات للعميل بيدي ، وكان هذا مؤسفًا بالنسبة لي وتسبب في كثير من الإزعاج. عندما كنت بحاجة إلى تكوين تكوينات لنحو 50 عميلًا في غضون أسبوع ، قررت تسريع هذه العملية ، ولهذا استخدمت جزءًا من البرنامج النصي الخاص بشخص آخر موجود على الإنترنت.
يعمل البرنامج النصي كالتالي: بعد الإطلاق ، حدد "اسم العميل" ، والإجابة على السؤال "تعيين كلمة مرور أم لا" ، بعد ذلك نأخذ ملف التكوين الجاهز "client.ovpn" ، مع شهادات وإعدادات مدمجة فيه. لاستخدامها ، يجب أن يكون لديك / etc / openvpn. سوف أوقع خطوط كومنتي التي يجب استبدال المسار بها. من الضروري أيضًا إنشاء ملف باستخدام إعدادات العميل بحيث يستبدلها البرنامج النصي في عملية إنشاء التكوين.
بعد فترة من الوقت ، فرض حظر تمهيدي جديد على الوصول عن بُعد لقتل كل من هذا الخادم وحزمة العمل مع Mikrotik. تم إنشاء خادم OpenVPN جديد لقسم تكنولوجيا المعلومات ، والذي يعمل الآن بشكل كامل على CentOS. لكن هذه قصة مختلفة تماما.
أعرب عن امتناني لإيفان وبافيل لمساعدتهما في تحرير المقال.