الشبكات

NetGuard

🛡️ ما هو:

NetGuard محرّك بايثون يتعامل مع إعدادات Cisco IOS ككود مُدار بالإصدارات. يكشف التغييرات غير المصرّح بها مقابل خط أساس ذهبي مُوثّق في git، ويصنّفها حسب الخطورة التشغيلية، وينبّه، ويمكنه التراجع عن التغييرات الحرجة بأمان. مبني ومعروض على مختبر GNS3.

❓ المشكلة:

في أي شبكة إنتاج يستطيع المهندس تغيير إعدادات الجهاز الفعّالة — إضافة VLAN، تعديل ACL، تغيير مقياس توجيه — دون تذكرة أو مراجعة أو تسجيل. هذا التباعد بين الإعداد المعتمَد وما يعمل فعليًا هو *انحراف الإعدادات* (configuration drift)، وهو سبب رئيسي للأعطال والثغرات الأمنية وفشل عمليات التدقيق.

⚙️ ماذا يفعل:

يخزّن الإعداد المعتمَد لكل جهاز كخط أساس مُوثّق في git

يسحب الإعداد الفعّال مباشرةً (Netmiko/SSH) ويقارنه بخط الأساس

يحدّد الكتلة الأصل لكل سطر متغيّر (ciscoconfparse)، فيُنسب تغيير `ip address` إلى واجهته لا كسطر معلّق

يصنّف كل تغيير حسب سياسة قائمة على البيانات: CRITICAL للتوجيه والتحكّم بالوصول والمصادقة، وWARNING لتغييرات VLAN والواجهات، وINFO للتغييرات الشكلية

ينبّه عند بلوغ الانحراف عتبة معيّنة (طرفية، وبريد اختياري)

يتراجع عن الانحراف الحرج بأمان، افتراضيًا بتشغيل تجريبي (dry-run) يطبع الأوامر الدقيقة قبل تنفيذ أي شيء

يسجّل كل فحص في سجلّ تدقيق ويمكنه توليد تقرير Markdown

🧰 التقنيات:

الوصول للأجهزة — Netmiko (SSH)، والطرفية لمختبر GNS3

المقارنة — difflib + ciscoconfparse (دلالية، مدركة للكتلة الأصل)

إدارة الإصدارات — git (خطوط الأساس مُوثّقة)

سياسة الخطورة — policy.yaml (بيانات لا كود)

التنبيه — طرفية، وبريد smtplib اختياري

بناء المختبر — واجهة GNS3 v2 REST

التقنيات المستخدمة

PythonNetmikociscoconfparsegitGNS3PyYAMLpytest
1

طوبولوجيا المختبر

طوبولوجيا المختبر

يشكّل R1 وR2 نواة OSPF في المنطقة 0 عبر وصلة /30 مع إعلان loopback لكلٍّ منهما، وSW1 سويتش EtherSwitch بمنافذ وصول VLAN، وسويتش إدارة يربط الأجهزة بالمضيف. تُجهّز الطوبولوجيا بالكامل من الكود عبر واجهة GNS3 REST.

2

جوار OSPF (مُتحقَّق مباشرةً)

جوار OSPF (مُتحقَّق مباشرةً)

علاقة جوار OSPF بين R1 وR2 في الحالة FULL — التوجيه يعمل والنواة متقاربة قبل إدخال أي انحراف.

3

خط الأساس وتاريخ GitOps

خط الأساس وتاريخ GitOps

يُلتقط الإعداد الفعّال المعتمَد لكل جهاز ويُوثّق، فيحفظ git الحالة الذهبية للشبكة ليُقارَن بها أي تغيير لاحق.

4

حقن تغيير غير مصرّح به

حقن تغيير غير مصرّح به

مستخدم مسؤول دخيل على R1، وعبارة شبكة OSPF واسعة على R2، ونقل VLAN على SW1 — تُجرى مباشرةً على الأجهزة دون تذكرة أو تسجيل: انحراف إعدادات.

5

كشف الانحراف وتصنيفه

كشف الانحراف وتصنيفه

يسحب NetGuard كل إعداد فعّال ويقارنه بخط الأساس ويصنّف التغييرات: R1 وR2 حرج (مستخدم/توجيه)، وSW1 تحذير (VLAN وصول) — وكل تغيير مُنسَب إلى كتلته الأصل.

6

معاينة التراجع (تشغيل تجريبي)

معاينة التراجع (تشغيل تجريبي)

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

7

تطبيق المعالجة — العودة إلى النظافة

تطبيق المعالجة — العودة إلى النظافة

تُطبّق المعالجة عبر الطرفية فيعود كل جهاز إلى الحالة `clean` مطابقًا خط الأساس الموثّق من جديد.