
أداة تراقب وتحلل وتحد من النطاق الترددي للأجهزة على الشبكة المحلية دون الحاجة إلى صلاحيات إدارية

هذا المشروع هو نسخة مفروعة (fork) مُصانة من bitbrute/evillimiter. المستودع الأصلي (upstream) لم يعد مُصانًا، لذا تستمر هذه النسخة المفروعة في التطوير - إصلاح الأخطاء، الميزات الجديدة، وتحديثات التوافق. انظر التغييرات الخاصة بالنسخة المفروعة أدناه.
أداة لمراقبة وتحليل وتقييد النطاق الترددي (الرفع/التنزيل) للأجهزة على شبكتك المحلية دون وصول مادي أو إداري.
evillimiter يستخدم انتحال ARP وتشكيل حركة المرور لتقييد النطاق الترددي للمضيفين على الشبكة. على الشبكات التي تدعم IPv6، يُستخدم انتحال NDP جنبًا إلى جنب مع انتحال ARP لقطع حركة مرور IPv6 للمضيف أيضًا، والتي كانت ستتجاوز حد/حظر IPv4 فقط.
تبحث عن إصدار متوافق مع Windows؟
تحقق من البديل مفتوح المصدر EvilLimiter for Windows.
شغّل هذه الأداة فقط على شبكة تملكها أو لديك إذن كتابي لاختبارها. انتحال ARP وNDP يعطل حركة مرور الآخرين عن قصد، والقيام بذلك على شبكة لا تتحكم فيها غير قانوني في معظم الأماكن.
سيتم تثبيت حزم Python المفقودة المحتملة أثناء عملية التثبيت.
evillimiter يحدد موقع tc وiptables وsysctl عبر PATH عند بدء التشغيل ويُظهر أخطاء واضحة إذا كان أحدها مفقودًا. يستدعي ثنائي iptables تحديدًا - على التوزيعات حيث يكون iptables عبارة عن طبقة توافق iptables-nft، يعمل هذا عمومًا، لكن جدار حماية يُدار بالكامل عبر قواعد nft أصلية دون تثبيت طبقة iptables ليس شيئًا تتحدث معه هذه الأداة.
git clone https://github.com/DavidsonRafaelK/evillimiter.git
cd evillimiter
python3 -m venv .venv
source .venv/bin/activate
pip install .
شغّلها باستخدام sudo (المقابس الخام (raw sockets)، iptables/tc تتطلب صلاحيات الجذر) - التشغيل هو ما يحتاج صلاحيات الجذر، وليس التثبيت:
sudo .venv/bin/evillimiter
ملاحظة: sudo python3 setup.py install (التعليمات القديمة) أصبح مهملًا في إصدارات setuptools الحديثة وغالبًا ما يفشل تمامًا مع ModuleNotFoundError: No module named 'setuptools' - sudo يشغّل Python الخاص بالنظام، والذي عادةً لا يحتوي على setuptools مثبتًا، على عكس Python الخاص بالبيئة الافتراضية (venv) الذي يديره pip لك. على التوزيعات التي تفرض PEP 668 (Arch، Debian 12+، ...)، يتم حظر التثبيت خارج البيئة الافتراضية تمامًا لهذا السبب.
بدلاً من ذلك، يمكنك تنزيل الإصدار المطلوب من صفحة الإصدارات.
اكتب evillimiter أو python3 bin/evillimiter لتشغيل الأداة.
evillimiter سيحاول حل المعلومات المطلوبة (واجهة الشبكة، قناع الشبكة، عنوان البوابة، ...) بنفسه، تلقائيًا.
| الوسيطة | الشرح |
|---|---|
-h | يعرض رسالة المساعدة التي تسرد جميع وسائط سطر الأوامر |
-i [اسم الواجهة] | يحدد واجهة الشبكة (يتم حلها إذا لم تُحدد) |
-g [عنوان IP للبوابة] | يحدد عنوان IP للبوابة (يتم حله إذا لم يُحدد) |
-m [عنوان MAC للبوابة] | يحدد عنوان MAC للبوابة (يتم حله إذا لم يُحدد) |
-n [عنوان قناع الشبكة] | يحدد قناع الشبكة (يتم حله إذا لم يُحدد) |
-f | يمسح إعدادات iptables وtc الحالية. يضمن معالجة الحزم بشكل صحيح. |
--colorless | يعطل الإخراج الملون |
-l [مسار الملف]، --log-file [مسار الملف] | يلحق أيضًا كل رسالة نجاح/خطأ بهذا الملف (نص عادي، بدون رموز ألوان). |
--version | يطبع الإصدار المثبت ويخرج. |
يمكن إعطاء أي من العلامات أعلاه (باستثناء -f/--flush، وهو إجراء لمرة واحدة وليس تفضيلًا محفوظًا) قيمة افتراضية في ملف ini اختياري في ~/.config/evillimiter/config.ini (أو $XDG_CONFIG_HOME/evillimiter/config.ini). علامة سطر الأوامر تتجاوز دائمًا ملف الإعدادات.
[general]
interface = wlan0
colorless = true
auto_scan = true
log_file = /var/log/evillimiter.log
[watch]
interval = 30
range = 192.168.1.1-192.168.1.50
[watch] يحدد القيم الأولية التي تُضبط عادةً في وقت التشغيل عبر watch set interval/watch set range (انظر أدناه)، بحيث لا يلزم إدخالها في كل جلسة.
auto_scan (اختياري، معطل افتراضيًا) يشغّل scan ثم hosts تلقائيًا بعد بدء التشغيل مباشرة، بحيث لا تضطر لكتابتهما في كل جلسة.
evillimiter