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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
FencePost — لوحة تحكم جدار الحماية UFW متعددة المضيفين — تشرح القواعد بلغة إنجليزية بسيطة، وتكتشف الثغرات الأمنية، وتوفر تشخيصات الاتصال | Kitploit
أدوات/GitHubGitHub/seriocomic/fencepost
أمن الحاوياتتحليل الثغرات الأمنيةتدقيق التكوينأمن الشبكاتأمن السحابةDevSecOpsاستخبارات التهديداتالاستجابة للحوادثتحليل السجلات
GitHubseriocomic/fencepost

FencePost

لوحة تحكم جدار الحماية UFW متعددة المضيفين — تشرح القواعد بلغة إنجليزية بسيطة، وتكتشف الثغرات الأمنية، وتوفر تشخيصات الاتصال

2منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

FencePost

لوحة تحكم جدار الحماية UFW متعددة المضيفين. تتصل بمضيفي Linux عبر SSH، وتحلل قواعد جدار الحماية والمنافذ المستمعة، وتشرح كل شيء بلغة إنجليزية بسيطة، وتنبه إلى الفجوات الأمنية.

Python FastAPI License

الميزات

  • نظرة عامة على المضيفات المتعددة -- شاهد حالة UFW، والسياسات الافتراضية، والخدمات النشطة عبر جميع المضيفات في لمحة واحدة
  • شروحات بلغة إنجليزية بسيطة -- تُترجم كل قاعدة من قواعد جدار الحماية إلى أوصاف مقروءة مع أسماء شبكات VLAN والخدمات
  • كشف الفجوات -- يجد المنافذ المستمعة التي لا توجد لها قاعدة سماح مطابقة في UFW، مقسمة حسب التعرض الخارجي مقابل المحلي
  • تشخيص الاتصال -- تتبّع عنوان IP المصدر + منفذ الوجهة عبر سلسلة القواعد لمعرفة ما إذا كان سيتم السماح بحركة المرور أو حظرها أو رفضها
  • كشف التغييرات -- يقارن الحالة الحالية بآخر لقطة وينشر الأحداث (قواعد مضافة/محذوفة، تبديل UFW، مضيفات غير قابلة للوصول) إلى webhook
  • مدرك لـ Docker -- ينبه على مضيفات Docker التي قد يتجاوز فيها iptables قواعد UFW

لقطات الشاشة

Home Rule List Rule Detail

الصفحات

المسارالوصف
/لوحة معلومات عامة تحتوي على بطاقات المضيف، وكبسولات الخدمات، وعدد الفجوات

البنية

root@kitploit:~
Browser --> Cloudflare Tunnel --> Reverse Proxy --> FencePost (:8890)
  FastAPI container
    |-- SSH --> Host 1 (ufw status, ss -tlnp)
    |-- SSH --> Host 2
    |-- SSH --> Host N
    '-- POST --> Notification webhook

FencePost هو للقراءة فقط -- لا يعدّل قواعد جدار الحماية أبدًا، بل يقتصر على الإبلاغ عنها.

بدء سريع

المتطلبات الأساسية

  • بايثون 3.12+ (تطوير محلي) أو Docker (إنتاج)
  • زوج مفاتيح SSH (ed25519) مع نشر المفتاح العام على المضيفات المستهدفة
  • إدخال sudoers على كل مضيف لمستخدم SSH:
    root@kitploit:~
    <user> ALL=(ALL) NOPASSWD: /usr/sbin/ufw status verbose, /usr/sbin/ufw status numbered, /usr/bin/ss -tlnp
    

1. الاستنساخ والإعداد

root@kitploit:~
git clone <repo-url> && cd fencepost

# Add your SSH key
cp ~/.ssh/your_key ssh/id_ed25519
chmod 600 ssh/id_ed25519

# Create your environment file from the template
cp .env.example .env
# Edit .env with real credentials

2. تعديل config.yaml

root@kitploit:~
timezone: Australia/Melbourne

hosts:
  - name: My Server
    hostname: 192.168.1.10
    ssh_user: deploy
    ssh_port: 22
    is_docker_host: false

networks:
  "192.168.1.0/24": "LAN"

3. التشغيل

التطوير المحلي

root@kitploit:~
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# Load env vars (bash/zsh)
export $(grep -v '^#' .env | xargs)

uvicorn app.main:app --reload --port 8890

افتح http://localhost:8890.

ملاحظة: يستخدم الوضع المحلي مفتاح SSH المحدد في config.yaml (ssh.key_path). للتطوير المحلي، قد ترغب في تجاوز هذا ليشير إلى ssh/id_ed25519 المحلي لديك:

root@kitploit:~
ssh:
  key_path: ssh/id_ed25519
  timeout: 10

Docker (الإنتاج)

root@kitploit:~
docker compose up -d --build

افتح http://localhost:8890. يقرأ الحاوية بيانات الاعتماد من .env تلقائيًا عبر compose.yaml.

الإعدادات

config.yaml

متغيرات البيئة (.env)

تُخزَّن بيانات الاعتماد في .env (مستثنى من Git) ويُشار إليها عبر compose.yaml. لا تضع الأسرار في المستودع أبدًا.

التقنيات

  • الخلفية: Python 3.12 / FastAPI / Uvicorn
  • SSH: Paramiko مع مصادقة بمفتاح ed25519
  • القوالب: Jinja2 (مُقدَّمة من الخادم، بدون إطار عمل JavaScript)
  • عميل HTTP: httpx (إشعارات webhook)
  • التنسيق: CSS مخصص، سمة داكنة، بدون إطار عمل
  • الخطوط: DM Mono (للبيانات)، Anybody (للعناوين)

بنية المشروع

root@kitploit:~
app/
  main.py           # FastAPI routes and auth
  models.py         # HostFirewallState, UFWRule, ListeningPort dataclasses
  parser.py         # Parses ufw status and ss output
  explainer.py      # Translates rules to plain English
  diagnose.py       # Connection diagnostic engine
  gap_detector.py   # Finds uncovered listening ports
  ssh_client.py     # Paramiko wrapper, parallel host fetching
  eventfeed.py      # Change detection and webhook posting
  templates/
    base.html       # Layout, CSS, navigation
    overview.html   # Host dashboard grid
    host_detail.html # Per-host tabbed detail view
    diagnose.html   # Connection diagnostic form and results
    login.html      # Authentication page
config.yaml         # Host definitions, VLANs, devices, timezone
compose.yaml        # Docker Compose service definition
Dockerfile          # Python 3.12 slim image
.env.example        # Template for environment variables
ssh/                # SSH key directory (key not committed)
data/               # Runtime state (last_state.json, not committed)

إضافة مضيف

  1. أضف إدخالًا إلى config.yaml ضمن hosts:
  2. انسخ المفتاح العام SSH إلى المضيف: ssh-copy-id -i ssh/id_ed25519.pub user@host
  3. أنشئ /etc/sudoers.d/fencepost على المضيف مع قواعد NOPASSWD المطلوبة
  4. أعد البناء: docker compose up -d --build

الإشعارات

عند تكوينها في config.yaml مع متغير بيئة NOTIFICATIONS_API_KEY، ينشر FencePost أحداث التغيير عند كل تحديث للوحة المعلومات:

  • UFW مفعّل / معطّل
  • قواعد مضافة / محذوفة (مع تفاصيل القاعدة)
  • منافذ خارجية مكشوفة جديدة
  • مضيف أصبح غير قابل للوصول / تعافى

تتضمن الأحداث مفاتيح تكرار (idempotency keys) لمنع التكرار.

الرخصة

MIT

تنزيل الأداة
/host/{name}
تفاصيل المضيف مع عرض مبوب: القواعد المشروحة، المنافذ المكشوفة، المنافذ المستمعة، الإخراج الخام
/diagnoseأداة تشخيص الاتصال مع تصور تتبع قاعدة-بقاعدة
/loginمصادقة قائمة على الجلسات
القسمالغرض
timezoneالمنطقة الزمنية IANA للطوابع الزمنية المعروضة (مثل Australia/Melbourne، UTC)
hostsمصفوفة من أهداف SSH: name، hostname، ssh_user، ssh_port، is_docker_host
sshkey_path (مسار المفتاح الخاص) و timeout بالثواني
networksتعيين CIDR إلى اسم لشبكات VLAN -- يُستخدم في شروحات القواعد والتشخيص
devicesعناوين IP مسماة لأزرار التحديد السريع في صفحة التشخيص
notificationswebhook اختياري: url، channel (يُضبط مفتاح API عبر متغير بيئة)
المتغيرالافتراضيالوصف
FENCEPOST_USERNAMEadminاسم مستخدم تسجيل الدخول
FENCEPOST_PASSWORDfencepostكلمة مرور تسجيل الدخول
FENCEPOST_SECRET_KEYchange-meمفتاح توقيع ملفات تعريف الجلسة
FENCEPOST_CONFIGconfig.yamlالمسار إلى ملف الإعدادات
NOTIFICATIONS_API_KEYرمز Bearer لـ webhook الإشعارات