
جدار ناري خفيف وسريع يعتمد على XDP
سيبر هو جدار ناري عالي الأداء لقائمة IP سوداء يعتمد على XDP، مبني بلغة Go وC (eBPF). يتيح لك إسقاط حركة المرور الخبيثة في أقرب مرحلة ممكنة في مكدس شبكات لينكس - مستوى برنامج تشغيل بطاقة الشبكة. من خلال الاستفادة من مسار البيانات السريع (XDP)، يعالج سيبر الحزم قبل أن تصل حتى إلى النظام الفرعي الثقيل للشبكات في النواة، مما يوفر أداءً فائقًا حتى تحت ظروف DDoS الثقيلة.
أداء مدعوم بـ XDP: تصفية الحزم تحدث على مستوى برنامج تشغيل بطاقة الشبكة باستخدام XDP_DROP، مما يؤدي إلى حمل أقل بكثير على وحدة المعالجة المركزية مقارنةً بـ iptables أو nftables.
LPM (أطول بادئة مطابقة): يدعم الحظر المستند إلى CIDR (مثل 192.168.1.0/24) باستخدام خرائط شجرة LPM المتخصصة من BPF للبحث الفعال في نطاقات IP.
تهيئة دائمة: تتم إدارة القواعد عبر قائمة سوداء محلية بصيغة JSON، مما يسمح بسهولة التدقيق وإصدار الإصدارات للعناوين المحظورة.
قابلية المراقبة في الوقت الفعلي: مقاييس مدمجة لتتبع عدادات الحزم والبايتات لكل من حركة المرور المسقطة والمارة.
هندسة بسيطة: كائن BPF مترجم يعالج مستوى البيانات، بينما تدير واجهة سطر أوامر بلغة Go مستوى التحكم.
يعمل سيبر على مبدأ فصل مستوى التحكم (مساحة المستخدم) عن مستوى البيانات (مساحة النواة).
blacklist.json.siper run، يقوم تطبيق Go بتحليل JSON، وتجميع/تحميل كائن eBPF، وتعبئة خريطة BPF ببادئات IP.block_list.XDP_DROP).XDP_PASS).المتطلبات الأساسية
.o.CAP_NET_ADMIN / CAP_BPF.make
انتقل إلى دليل build/
أضف أو أزل نطاقات IP من ملف التهيئة المحلي:
# إضافة CIDR إلى القائمة
sudo ./siper add --cidr 1.2.3.0/24 --comment "بوت نت معروف"
# حذف قاعدة
sudo ./siper del --cidr 1.2.3.0/24
اربط جدار الحماية بواجهة شبكة محددة:
# بدء جدار الحماية
sudo ./siper run --iface eth0 --path ./blacklist.json
# إيقاف وفصل جدار الحماية
sudo ./siper stop --iface eth0
عرض ما يحدث داخل النواة:
# رؤية المفاتيح النشطة حاليًا في خريطة BPF
sudo ./siper dump-keys
# مراقبة إحصائيات الإسقاط/التمرير
sudo ./siper dump-metrics
طلبات السحب مرحب بها. لإصلاحات الأخطاء والتحسينات الصغيرة، يرجى إرسال طلب سحب. للتغييرات الكبيرة، يرجى فتح مشكلة أولاً لمناقشة ما ترغب في تغييره.
هذا المشروع برنامج حر؛ يمكنك إعادة توزيعه و/أو تعديله بموجب شروط رخصة GPLv3. راجع LICENSE للحصول على التفاصيل.