مهلا. يسرنا ، فريق مشروع CrowdSec ، أن نعلن عن إصدار CrowdSec 1.0.0. هذا الإصدار مهم للغاية لأنه بالإضافة إلى إضافة بعض الميزات الجديدة ، خضع المشروع بأكمله لتغييرات معمارية كبيرة ليصبح أسرع وأطول وأقوى.
بادئ ذي بدء ، يسعدنا أن نقدم لك التغيير الرئيسي في هذا التصحيح - تقديم REST API المحلي. بفضله ، غيّر المشروع بأكمله بنيته بشكل جدي نحو تبسيط وتسهيل تفاعل المكونات على المستوى المحلي. ومع ذلك ، لم تتأثر سهولة الاستخدام بشكل عام - لا يزال استخدام CrowdSec سهلاً وممتعًا.
بالنسبة لأولئك الذين لا يعرفون شيئًا عن CrowdSec أو يتساءلون كيف انتهى الأمر بالشركة الفرنسية الناشئة في حبري ، فلنقم باستطراد بسيط:
, , , Fail2Ban: «CrowdSec — Fail2Ban ».
, , IT-. . , — .
, . , , . 1.0.0 :)
كيف كان وكيف أصبح
الشيء الرئيسي الذي حدث مع إصدار الإصدار 1.0 هو إدخال تغييرات على البنية ، والتي حدثت بسبب إدخال واجهة برمجة تطبيقات REST المحلية في العمل. من وجهة نظر معمارية ، يتكون نظامنا من ثلاثة مكونات رئيسية:
- خدمة CrowdSec تعمل باستمرار وتراقب السجلات والهجمات وما إلى ذلك ؛
- سطر الأوامر ، واجهة للتفاعل مع الخدمة ؛
- وحدات التكامل (الحراس) لضمان حجب العناوين المهاجمة.
يوجد أدناه رسم تخطيطي لكيفية عمل CrowdSec من قبل:
كما ترى من الرسم التخطيطي ، قامت ثلاثة عناصر على الأقل من النظام بالوصول باستمرار إلى قاعدة البيانات مباشرة. في الرسم التخطيطي ، تم تمييز هذه الاتجاهات بدوائر حمراء (cwcli-DB و output plugins-DB و Bouncers-DB). في الوقت نفسه ، تعني كلمة "Bouncers" خمس وحدات على الأقل تتواصل باستمرار بين قاعدة بيانات السمعة وقاعدة بيانات عناوين IP المحظورة.
عندما تقوم بتطوير مشروع من الصفر ، فإن هذه العكازات هي طريقة سهلة وسريعة ورخيصة لإنشاء نموذج أولي عملي للنظام. ومع ذلك ، إذا تحدثنا عن الاستقرار وسرعة العمل ، فإن العديد من نقاط الوصول إلى قاعدة البيانات ليست الحل الأفضل. أدت بنية المشروع هذه إلى ظهور عدد من القيود التي واجهناها في مراحل التطوير الإضافي لـ CrowdSec. لذلك أردنا التخلص منها بأسرع وقت ممكن.
بعد إعادة تصميم المشروع على المستوى المعماري ، توصلنا إلى قرار مفاده أن الخيار الأفضل سيكون واجهة برمجة تطبيقات REST محلية ، والتي من خلالها سيمر اتصال المكونات المذكورة أعلاه وقاعدة البيانات بالفعل.
نتيجة لذلك ، حصلنا على الهندسة المعمارية التالية:
الآن تتواصل جميع الوحدات الداخلية مع بعضها البعض ومع قاعدة البيانات حصريًا من خلال REST API.
الميزة الرئيسية لواجهة برمجة التطبيقات على التطبيق القديم هي تبسيط الوحدات النمطية (الحراس) مقارنة بالإصدار القديم من CrowdSec. إذا قام الحارس في وقت سابق بالوصول إلى قواعد بيانات مختلفة مباشرة ، الآن ، بفضل العمل من خلال واجهة برمجة تطبيقات REST ، فإنه يحتاج فقط إلى طلب HTTP للحصول على رمز API مميز. كل الأعمال الأخرى تحدث من جانب API.
مخطط السحابة CrowdSec
في العرض الكلاسيكي ، من المفترض أن تحتوي إحدى الأجهزة على جزء الخادم من CrowdSec المنشور ، والذي سيكون قادرًا ، من خلال واجهة برمجة التطبيقات الجديدة ، على إدارة الوحدات على الأجهزة الأخرى داخل الشبكة التي حددها المسؤول. إذا رغبت في ذلك ، يمكن للمستخدم استخدام قاعدة البيانات الخاصة به للعناوين المحظورة ، أو الوصول إلى قاعدة البيانات الخاصة بنا على أساس مدفوع. ومع ذلك ، فإن إنشاء نقطة اتصال واحدة بين REST API المحلي وواجهة برمجة التطبيقات الخاصة بنا يخلق فرصة جديدة: تشغيل CrowdSec على نموذج قريب من السحابة SaaS.
الآن لا يحتاج المسؤول إلى نشر جزء خادم CrowdSec كامل مع REST API محلي على جهازه. بدلاً من ذلك ، يمكنه استخدام واجهة برمجة تطبيقات CrowdSec المركزية الخارجية الخاصة بنا واستخدام الحراس فقط لتأمين الشبكة.
بالإضافة إلى
بالنسبة لأولئك الذين استخدموا CrowdSec من قبل ، نقترح عليك الاطلاع على القائمة الكاملة للتغييرات في الإصدار 1.0.0 بالنسبة للإصدار 0.3.x على GitHub .
يُنصح المستخدمون الجدد بالرجوع إلى المعلومات من مستودعنا على GitHub .
نود أن نشير إلى أن CrowdSec هي أداة مفتوحة المصدر تم إصدارها بموجب ترخيص MIT المجاني. وبالتالي ، يمكن لأي شخص استخدامه مجانًا تمامًا. لم يتم تحويل المشروع إلى نقود بعد ، فنحن في مرحلة تطوير قائمة الحظر وخطط التعريفة الخاصة بنا. على موقعنا hub.crowdsec.net خصيصًا للمستخدمين الجدد ، يتم جمع المجموعات والتكوينات والحراس الجاهزين لتسهيل التخصيص والبدء في استخدام CrowdSec.
يمكنك طرح أي سؤال حول مشروعنا هنا في التعليقات. سيؤدي استخدام اللغة الإنجليزية إلى تبسيط عملية التواصل - ليس علينا استخدام Google ، يمكنك ترجمة رسالتك أو مطالبة الأصدقاء الناطقين باللغة الروسية بترجمة رسالتك لنا.