البدء السريع
يأخذك هذا الدليل من الصفر إلى تطبيق ويب محمي بالكامل في أقل من 5 دقائق. بنهاية الدليل، سيوجه PRX-WAF الحركة إلى خادمك الخلفي ويحجب الهجمات الشائعة ويسجل أحداث الأمن.
المتطلبات الأولية
تحتاج إلى Docker وDocker Compose مثبتَيْن. راجع دليل التثبيت للطرق الأخرى.
الخطوة 1: بدء تشغيل PRX-WAF
استنسخ المستودع وابدأ جميع الخدمات:
git clone https://github.com/openprx/prx-waf
cd prx-waf
docker compose up -dتحقق من تشغيل جميع الحاويات:
docker compose psالمخرجات المتوقعة:
NAME SERVICE STATUS
prx-waf prx-waf running
postgres postgres runningالخطوة 2: تسجيل الدخول إلى واجهة المستخدم الإدارية
افتح متصفحك وانتقل إلى http://localhost:9527. سجِّل الدخول ببيانات الاعتماد الافتراضية:
- اسم المستخدم:
admin - كلمة المرور:
admin
WARNING
غيِّر كلمة المرور الافتراضية فور تسجيل دخولك الأول.
الخطوة 3: إضافة مضيف خلفي
أضف أول مضيف محمي عبر واجهة المستخدم الإدارية أو عبر API:
عبر واجهة المستخدم الإدارية:
- انتقل إلى Hosts في الشريط الجانبي
- انقر Add Host
- أدخِل:
- Host:
example.com(النطاق الذي تريد حمايته) - Remote Host:
192.168.1.100(عنوان IP الخادم الخلفي) - Remote Port:
8080(منفذ الخادم الخلفي) - Guard Status: مُفعَّل
- Host:
- انقر Save
عبر API:
# الحصول على رمز JWT
TOKEN=$(curl -s -X POST http://localhost:9527/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin"}' | jq -r '.token')
# إضافة مضيف
curl -X POST http://localhost:9527/api/hosts \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"host": "example.com",
"port": 80,
"remote_host": "192.168.1.100",
"remote_port": 8080,
"guard_status": true
}'الخطوة 4: اختبار الحماية
أرسل طلباً شرعياً عبر الوكيل:
curl -H "Host: example.com" http://localhost/يجب أن تتلقى الاستجابة الطبيعية لخادمك الخلفي. الآن اختبر حجب WAF لمحاولة حقن SQL:
curl -H "Host: example.com" "http://localhost/?id=1%20OR%201=1--"الاستجابة المتوقعة: 403 Forbidden
اختبر محاولة XSS:
curl -H "Host: example.com" "http://localhost/?q=<script>alert(1)</script>"الاستجابة المتوقعة: 403 Forbidden
اختبر محاولة تجاوز المسار:
curl -H "Host: example.com" "http://localhost/../../etc/passwd"الاستجابة المتوقعة: 403 Forbidden
الخطوة 5: مراقبة أحداث الأمن
اعرض الهجمات المحجوبة في واجهة المستخدم الإدارية:
- انتقل إلى Security Events في الشريط الجانبي
- يجب أن ترى الطلبات المحجوبة من الخطوة 4
- كل حدث يُظهر نوع الهجوم وعنوان IP المصدر والقاعدة المُطابقة والطابع الزمني
أو استعلم عن الأحداث عبر API:
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:9527/api/security-events{
"events": [
{
"id": 1,
"host": "example.com",
"source_ip": "172.18.0.1",
"attack_type": "sqli",
"rule_id": "CRS-942100",
"action": "block",
"timestamp": "2026-03-21T10:05:32Z"
}
]
}الخطوة 6: تفعيل المراقبة في الوقت الفعلي (اختياري)
اتصل بنقطة نهاية WebSocket لأحداث الأمن الحية:
# باستخدام websocat أو عميل WebSocket مشابه
websocat ws://localhost:9527/ws/eventsتتدفق الأحداث في الوقت الفعلي عند كشف الهجمات وحجبها.
ما حققته الآن
بعد إكمال هذه الخطوات، يشمل إعدادك:
| المكوِّن | الحالة |
|---|---|
| الوكيل العكسي | يستمع على المنفذ 80/443 |
| محرك WAF | خط أنابيب كشف من 16 مرحلة نشط |
| القواعد المدمجة | OWASP CRS (أكثر من 310 قاعدة) مُفعَّلة |
| واجهة المستخدم الإدارية | تعمل على المنفذ 9527 |
| PostgreSQL | يخزِّن الإعدادات والقواعد والأحداث |
| المراقبة في الوقت الفعلي | تدفق أحداث WebSocket متاح |
الخطوات التالية
- محرك القواعد -- فهم كيفية عمل محرك قواعد YAML
- بنية YAML -- تعلم مخطط القاعدة للقواعد المخصصة
- الوكيل العكسي -- تكوين موازنة الحمل وتوجيه الخادم الخلفي
- SSL/TLS -- تفعيل HTTPS مع شهادات Let's Encrypt التلقائية
- مرجع الإعداد -- ضبط كل جانب من جوانب PRX-WAF