
مراقب هجمات ويب خفيف الوزن. ملف ثنائي واحد بلغة Go + SQLite. ليس OSSEC، وليس WAF.
مراقب هجمات الويب. يجلس بجانب nginx / Caddy / التطبيق، ويتتبّع سجلات الوصول، ويخبرك عندما يتم استطلاع موقع أو استغلاله. إذا توقفت هذه العملية، يستمر الموقع في الخدمة.
إنه ليس Wazuh، وليس OSSEC، وليس WAF.
الأمر هو gpewebdefender. المضيفون، والرموز، ودبابيس الخريطة، وGeoIP، ومسارات السجلات هي خيارات (flags) أو ملفات env — لا يُضمَّن أي شيء يخص شركة أو خادمًا محددًا في البناء.
إذا لم تشغّل هذا مطلقًا: اقرأ هذا الملف من أعلاه إلى أسفله مرة واحدة، ثم نفّذ الطريقة A أو الطريقة B. لا تتخطَّ «اختر شكلًا».
الصورة الكاملة: dochub/index.html أو /docs/ على مدير قيد التشغيل. ابدأ من 03 · التثبيت والتشغيل.
لوحة معلومات حيّة من صندوق مشغّل فعلي. أسماؤك ودبابيسك ستكون كما تهيئها أنت.
يُطلق سهم فقط عند حدوث تنبيه — من بلد المهاجم إلى المضيف الذي استُهدف — ثم يختفي. تبقى المضيفات على اللوحة. الموجز هو نفس الأحداث، مرقّمة.

انقر على صف. لوحة البلد، وعلامة نوع الهجوم، والخادم الذي استُهدف، بالإضافة إلى الحقول المعتادة (القاعدة، MITRE، الدليل). لا مسارات دائمة.

التقارير ← الرؤى. نفس التنبيهات، محلَّلة بالتفصيل. فترات 1h / 24h / 7d تعتمد على وقت حقيقي. انقر على شريط أو بطاقة مضيف للبحث. يصدّر CSV / JSON / نسخ تلك النافذة (ملف ارتباط جلسة، لا رمز إدخال في الملف).





FTS5 على المدير. كلمة مفتاحية، IP، مضيف، نوع. الأحدث أولًا (انقر على الوقت للعكس). لا Elasticsearch.


| تمتلك | التثبيت |
|---|---|
| حاسوب محمول وشيء من الفضول | gpewebdefender demo — هجمات وهمية، وليس موقعك |
| صندوق لينكس واحد يكتب سجل وصول بالفعل | الكل في واحد — المدير يتتبّع ذلك السجل. لا وكيل. |
| صندوق إضافي صغير + خادم ويب واحد أو أكثر | التقسيم — المدير على الصندوق الإضافي، ووكيل واحد لكل مضيف ويب (أو SSH) |
لا تفتح المنفذ 8787 على الإنترنت. الاستماع الافتراضي هو 127.0.0.1:8787. استخدم نفق SSH حتى تضع HTTPS + تسجيل دخول أمامه.
go build -o gpewebdefender.exe .\cmd\gpewebdefender
gpewebdefender.exe demo
لينكس:
go build -o gpewebdefender ./cmd/gpewebdefender
./gpewebdefender demo
افتح http://127.0.0.1:8787
لقطات الخريطة تلك مختلقة. راجع DocHub 04 قبل أن تتعامل مع لوحة المعلومات على أنها واقع.
من هذا المستودع، بصلاحية root. ابنِ ملف لينكس الثنائي أولًا إذا كنت على ويندوز:
$env:GOOS="linux"; $env:GOARCH="amd64"; $env:CGO_ENABLED="0"
go build -o gpewebdefender-linux-amd64 .\cmd\gpewebdefender
الكل في واحد (هذا الصندوق يحتوي سجل الوصول):
chmod +x deploy/install-manager.sh deploy/install-agent.sh
sudo ./deploy/install-manager.sh --all-in-one \
--tail /var/log/nginx/access.log \
--journal \
--home 40.7,-74.0
التقسيم (راقِب أولًا، ثم كل صندوق ويب):
# on the monitor
sudo ./deploy/install-manager.sh --home 40.7,-74.0
# on a web / SSH box
scp root@MONITOR:/usr/local/bin/gpewebdefender /usr/local/bin/gpewebdefender
scp root@MONITOR:/etc/gpewebdefender/env /etc/gpewebdefender/env
sudo ./deploy/install-agent.sh \
--url http://MONITOR:8787 \
--name web-1 \
--tail /var/log/nginx/access.log \
--journal
استبدل MONITOR وweb-1 ومسار السجل بقيمك أنت.
ثم من حاسوبك المحمول:
ssh -L 8787:127.0.0.1:8787 user@THEBOX
افتح http://127.0.0.1:8787/login وأنشئ أول مشرف (شخص). هذا ليس رمز الإدخال.
/usr/local/bin/gpewebdefender ونفّذ chmod +x.useradd --system --home /var/lib/gpewebdefender --shell /usr/sbin/nologin gpewebdefenderrules/ وdochub/ إلى /var/lib/gpewebdefender/.deploy/env.example إلى /etc/gpewebdefender/env. ضع GWD_TOKEN طويلًا وعشوائيًا. الصلاحية 640.deploy/gpewebdefender.service.example إلى systemd. عدّل home / tail إذا لزم.systemctl daemon-reload && systemctl enable --now gpewebdefenderdeploy/gpewebdefender-agent.service.example مع الرمز، و ثابت، و / .تجد الأمثلة في deploy/.
/login ← أول مشرف. أو عيّن SIEM_ADMIN_USER + SIEM_ADMIN_PASSWORD مرة واحدة، ثم احذف سطر كلمة المرور.US أو 40.7,-74.0)، صف واحد لكل وكيل --name..mmdb من MaxMind / DB-IP ومرّر --geoip.deploy/nginx-gwd.conf.example. ارفض /api/ingest على الاستضافة الافتراضية العامة. DocHub 15 و18./api/ingest. لا ترسل كلمات المرور أبدًا. DocHub .إذا كانت واجهة المستخدم فارغة: فأنت لست في وضع العرض التجريبي، ولم يُرسل أي --tail / وكيل سطرًا بعد. journalctl -u gpewebdefender -n 50.
أي شيء يظهر في سجل الوصول:
.env، .git، phpMyAdmin، wp-login، actuators)--journal أو auth.logkind=applogin / tenantlogin / secprobe عبر POSTلا يمكنه رؤية أجسام POST إلا إذا سجّلتها (وهو ما لا ينبغي عادةً).
صيغة combined لـ nginx / Apache، أو JSON لـ nginx / Caddy / Traefik. التحويل إلى JSON يستحق العناء. راجع DocHub 05.
YAML مدمج في rules/. ملفات إضافية: --rules path/to/more.yaml. فخ CMS اختياري: --rules packs (يحمّل packs/cms.yaml). ليس ماسحًا للمكونات الإضافية.
ثنائي Go ثابت واحد + SQLite. صندوق مخصص بمواصفات 2 CPU / 2 GB كافٍ تمامًا. لا JVM، لا OpenSearch، لا Elasticsearch.
هذه الشجرة هي المنتج العام. لا تحتوي على جرد أو رموز أو أسماء مضيفين.
go test ./...
set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0
go build -o gpewebdefender-linux-amd64 .\cmd\gpewebdefender
أبقِ تكوين الأسطول الحيّ خارج هذا المستودع.
--name--tail--journal