Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
gatekeeper — أول نظام حماية مفتوح المصدر من DDoS | Kitploit
أدوات/GitHubGitHub/altramayor/gatekeeper
أدوات دفاعيةماسحات الثغرات الأمنيةأمن الشبكاتكشف التسلل
GitHubaltramayor/gatekeeper

gatekeeper

أول نظام حماية مفتوح المصدر من DDoS

عرض المستودعالموقع الإلكتروني
1.6k251منذ 9 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Gatekeeper

Gatekeeper compilation status

ما هو Gatekeeper؟

Gatekeeper هو أول نظام حماية مفتوح المصدر من هجمات حجب الخدمة الموزعة (DDoS). صُمم ليتوسع ليتناسب مع أي عرض نطاق ذروة، لذا يمكنه الصمود أمام هجمات DDoS الحالية والمستقبلية. بالرغم من البنية الموزعة جغرافياً لـ Gatekeeper، فإن سياسة الشبكة التي تصف جميع القرارات الواجب تطبيقها على حركة المرور الواردة هي مركزية. تتيح هذه السياسة المركزية لمشغلي الشبكات استغلال الخوارزميات الموزعة التي لن تكون قابلة للتطبيق تحت زمن وصول عالٍ جداً (مثل قواعد البيانات الموزعة) ومحاربة هجمات DDoS متعددة المتجهات في وقت واحد.

المستخدمون المستهدفون لـ Gatekeeper هم مشغلو الشبكات في المؤسسات، ومزودو الخدمات والمحتوى، وشبكات الشركات، إلخ. ليس المقصود استخدامه من قبل مستخدمي الإنترنت الأفراد.

لمزيد من المعلومات، راجع ويكي Gatekeeper.

كيفية الإعداد

تكوين الصفحات الضخمة (Hugepages)

تتطلب DPDK استخدام الصفحات الضخمة؛ تعليمات تركيب الصفحات الضخمة متاحة في توثيق المتطلبات. على العديد من الأنظمة، يكفي الإعداد التالي للصفحات الضخمة:

root@kitploit:~
$ echo 256 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

تمكين وحدة النواة vfio-pci

وحدة نواة لينكس vfio-pci مطلوبة لربط بطاقات الشبكة مع DPDK/Gatekeeper. لكي تعمل vfio-pci، يجب أن يدعمها كل من BIOS والنواة. يجب أن يكون VT-d ممكّناً في BIOS. قد يُعرف VT-d في BIOS باسم "Intel (R) VT for Directed I/O" أو "Intel (R) VT-d Feature" أو "Intel VT-d" أو "VT-d" أو أشكال مشابهة؛ لمزيد من الأمثلة، ابحث عن "BIOS VT-d" على Google Images. قد تتطلب بعض أنظمة BIOS تمكين خيار يسمى "Intel (R) Virtualization Technology" (أو أشكال من هذه السلسلة) قبل تمكين VT-d.

للتحقق من تمكين VT-d في BIOS، قم بتشغيل الأمر التالي بعد إقلاع لينكس:

root@kitploit:~
$ dmesg | grep -e DMAR

إذا أعاد الأمر أعلاه بعض الأسطر، فإن VT-d مفعل. بخلاف ذلك، يجب العودة إلى BIOS لتمكينه. مزيد من المعلومات حول كيفية التحقق من تمكين VT-d في BIOS متاحة على هذه الصفحة.

بمجرد تمكين VT-d في BIOS، يجب التأكد من أن النواة تدعم IOMMU. لاحظ أنك تحتاج إلى إصدار نواة أكبر من 3.6 لدعم IOMMU. يمكن التحقق مما إذا كانت النواة قيد التشغيل تحتوي على IOMMU مفعلاً افتراضياً باستخدام الأمر التالي:

root@kitploit:~
$ grep CONFIG_INTEL_IOMMU_DEFAULT_ON /boot/config-`uname -r`

على الأرجح، سيعيد الأمر أعلاه # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set، أي أن النواة قيد التشغيل لا تحتوي على IOMMU مفعلاً افتراضياً. طرق بديلة للتحقق من خيارات بناء النواة (أي CONFIG_INTEL_IOMMU_DEFAULT_ON) متاحة على هذه الصفحة.

إذا كانت النواة لا تحتوي على IOMMU مفعلاً افتراضياً، يجب تمرير معامل إقلاع النواة intel_iommu=on عبر GRUB. للحصول على معلومات حول سبب الحاجة إلى معامل الإقلاع intel_iommu=on، راجع هذه الصفحة. يمكن التحقق مما إذا كانت النواة قيد التشغيل قد تلقت هذا المعامل باستخدام الأمر التالي:

root@kitploit:~
$ cat /proc/cmdline | grep intel_iommu=on

إذا لم تتلق النواة قيد التشغيل المعامل intel_iommu=on، أضفه إلى GRUB، وأعد تشغيل الجهاز. معلومات حول كيفية إضافة معامل إقلاع إلى GRUB موجودة هنا.

بمجرد تمكين VT-d في BIOS ودعم النواة لـ IOMMU، يمكن التحقق من أن كل شيء جاهز باستخدام أحد الأوامر التالية:

root@kitploit:~
$ ls /sys/kernel/iommu_groups

أو

root@kitploit:~
$ dmesg | grep -ie 'IOMMU\s\+enabled'

كل شيء جاهز إذا كانت مخرجات الأوامر أعلاه غير فارغة.

الخيار 1: الحصول على الحزم

حزم Gatekeeper لنظام دبيان متاحة لنظام Ubuntu 24.04 LTS في صفحة الإصدارات للمشروع.

التثبيت

بمجرد تنزيل الحزم، يمكن تثبيتها باستخدام الأوامر التالية:

root@kitploit:~
$ tar -zxvf gatekeeper-ubuntu-24.04-packages.tar.gz
$ cd gatekeeper-ubuntu-24.04-packages
$ sudo dpkg -i gatekeeper-bird_*_amd64.deb gatekeeper_*_amd64.deb

تكوين Gatekeeper

عند التثبيت عبر حزم دبيان، توجد ملفات تكوين Gatekeeper في /etc/gatekeeper. يجب تعديل ملف net.lua على الأقل، وتعيين المتغيرات front_ports و front_ips و back_ports و back_ips وفقاً لبيئتك.

تقوم ملفات Lua الأخرى بتكوين كتل وظيفية مختلفة لـ Gatekeeper. يُرجى الرجوع إلى ويكي المشروع لمزيد من المعلومات حول ما إذا كانت هذه الملفات بحاجة إلى التغيير في إعدادك.

تحتاج أيضاً إلى تعديل ملف /etc/gatekeeper/envvars وتعيين المتغير GATEKEEPER_INTERFACES إلى عناوين PCI لمحولات الشبكة التي سيتم ربطها بـ DPDK. يمكن العثور عليها باستخدام الأمر lshw. على سبيل المثال:

root@kitploit:~
# lshw -c network -businfo
Bus info          Device     Class          Description
=======================================================
pci@0000:08:00.0  eth0       network        I350 Gigabit Network Connection
pci@0000:08:00.1  eth1       network        I350 Gigabit Network Connection
...

بناءً على هذا الإخراج، قم بتعيين GATEKEEPER_INTERFACES كما يلي:

root@kitploit:~
GATEKEEPER_INTERFACES="08:00.0 08:00.1"

في نفس الملف، يمكنك اختيارياً تحديد خيارات طبقة التجريد البيئي في المتغير DPDK_ARGS و خيارات خاصة بـ Gatekeeper في GATEKEEPER_ARGS.

كيفية التشغيل

قم بتشغيل الأوامر أدناه لبدء Gatekeeper ولضمان تشغيله تلقائياً عند إعادة التشغيل.

root@kitploit:~
$ sudo systemctl start gatekeeper
$ sudo systemctl enable gatekeeper

الخيار 2: البناء من المصدر

تثبيت التبعيات

قم بتثبيت التبعيات البرمجية التالية:

root@kitploit:~
$ sudo apt-get update
$ sudo apt-get -y -q install git clang devscripts doxygen libhugetlbfs-bin \
    build-essential gcc-multilib linux-headers-`uname -r` libmnl0 libmnl-dev \
    libkmod2 libkmod-dev libnuma-dev libelf1 libelf-dev libc6-dev-i386 \
    autoconf flex bison libncurses5-dev libreadline-dev python3 \
    python3-pyelftools libcap-dev libcap2 meson ninja-build pkg-config

ملاحظة: كل من libmnl0 و libmnl-dev مطلوبان لتجميع وتشغيل gatekeeper، ولكن libmnl0 فقط مطلوب لتشغيل gatekeeper فقط. كل من libkmod2 و libkmod-dev مطلوبان لتجميع وتشغيل gatekeeper، ولكن libkmod2 فقط مطلوب لتشغيل gatekeeper فقط. libnuma-dev مطلوب لتجميع أحدث إصدار من DPDK ودعم أنظمة NUMA. الحزمة libelf-dev مطلوبة لتجميع DPDK مع دعم قراءة برامج BPF من ملفات ELF، ولكن libelf1 فقط مطلوب لتشغيله. الحزمة libc6-dev-i386 مطلوبة لتجميع برامج BPF في المجلد . حزم و و و و مخصصة لـ BIRD. الحزمة تُستخدم لبناء حزم Gatekeeper لدبيان. الحزم و مطلوبة لبناء DPDK وتشغيل نصوص Python مثل . مطلوب لتجميع Gatekeeper، ولكن فقط مطلوب لتشغيل Gatekeeper. و مطلوبان لبناء DPDK. مطلوب لتجميع Gatekeeper.

لاستخدام DPDK، تأكد من توفر جميع المتطلبات البيئية.

استنساخ المستودع

قم باستنساخ مستودع Gatekeeper، بما في ذلك الوحدات الفرعية التي تحتوي على تبعيات Gatekeeper:

root@kitploit:~
$ git clone --recursive http://github.com/AltraMayor/gatekeeper.git

إذا لم تستخدم خيار --recursive عند الاستنساخ، فستحتاج إلى الحصول على الوحدات الفرعية التي تحتوي على التبعيات من داخل دليل gatekeeper:

root@kitploit:~
$ git submodule init
$ git submodule update

التجميع

يشرح هذا القسم كيفية بناء Gatekeeper يدوياً. إذا كنت ترغب في بناء حزم دبيان، راجع القسم كيفية بناء الحزم.

أثناء وجودك في دليل gatekeeper، قم بتشغيل script الإعداد:

root@kitploit:~
$ . setup.sh

يقوم هذا script بتجميع DPDK و LuaJIT و BIRD، وتحميل وحدات النواة المطلوبة. بالإضافة إلى ذلك، يحفظ أسماء الواجهات وعناوين PCI الخاصة بها في ملف lua/if_map.lua بحيث يمكن استخدام أسماء الواجهات في ملفات تكوين Gatekeeper.

بمجرد تجميع DPDK و LuaJIT، يمكن تجميع gatekeeper:

root@kitploit:~
$ make

تكوين محولات الشبكة

قبل استخدام gatekeeper، يجب ربط محولات الشبكة بـ DPDK. لهذا، يمكنك استخدام script dependencies/dpdk/usertools/dpdk-devbind.py. على سبيل المثال:

root@kitploit:~
$ sudo dependencies/dpdk/usertools/dpdk-devbind.py --bind=vfio-pci enp131s0f0

يقوم هذا الأمر بربط الواجهة enp131s0f0 بمشغل vfio-pci بحيث يمكن تمرير الإطارات مباشرة إلى DPDK بدلاً من النواة. لاحظ أن هذا الربط يجب أن يتم بعد إعداد Gatekeeper في الخطوات أعلاه بحيث تظهر الواجهة المرتبطة في قائمة الواجهات في lua/if_map.lua.

كيفية التشغيل

بمجرد تجميع gatekeeper وتكوين البيئة بشكل صحيح، قم بتشغيل:

root@kitploit:~
$ sudo build/gatekeeper [EAL OPTIONS] -- [GATEKEEPER OPTIONS]

حيث [EAL OPTIONS] تُحدد قبل الشرطتين المزدوجتين وتمثل معاملات طبقة التجريد البيئي لـ DPDK، و [GATEKEEPER OPTIONS] تُحدد بعد الشرطتين المزدوجتين وتمثل خيارات خاصة بـ Gatekeeper.

سيتم تسجيل التكوين المبكر للنظام، بما في ذلك تكوين الجهاز والذاكرة في DPDK، إلى stdout. بمجرد تشغيل Gatekeeper، يتم إخراج جميع المعلومات إلى سجل Gatekeeper.

كيفية بناء الحزم

يمكن بناء حزم دبيان لـ Gatekeeper باستخدام الأوامر أدناه. من المفترض تشغيلها من جذر المستودع وتفترض أن الوحدات الفرعية git قد تم سحبها، وأن تبعيات البناء قد تم تثبيتها، كما هو موضح أعلاه. سيتم تجميع Gatekeeper والوحدات الفرعية تلقائياً أثناء عملية بناء الحزمة.

root@kitploit:~
$ tar --exclude-vcs -Jcvf ../gatekeeper_1.2.0.orig.tar.xz -C .. gatekeeper
$ debuild -uc -us

ستكون حزمة Gatekeeper متاحة في الدليل الأصل.

تنزيل الأداة
bpf/
autoconf
flex
bison
libncurses5-dev
libreadline-dev
devscripts
python3
python3-pyelftools
dpdk-devbind.py
libcap-dev
libcap2
meson
ninja-build
pkg-config