Files
SamWaf/README_ar.md
T
2026-07-14 11:33:06 +08:00

18 KiB

English | 简体中文 | Español | हिन्दी | العربية | Français | Português | Русский | বাংলা | اردو | 日本語 | Deutsch | Bahasa Indonesia | 한국어

SamWaf

جدار حماية خفيف ومفتوح المصدر لتطبيقات الويب

Release Last commit Docker Pulls Release Downloads Gitee GitHub stars Gitee star Atomgit star License

دوافع التطوير:

  • خفيف الوزن: في البداية استخدمتُ بعض المنتجات الأمنية القائمة على إضافات nginx وapache وiis للحماية، لكن صيغة الإضافات كانت تعاني من درجة اقتران عالية.
  • النشر الخاص: لاحقًا جرى اعتماد معظم خدمات الحماية السحابية، غير أن النشر الخاص ليس في المتناول إلا للمؤسسات المتوسطة والكبيرة، بينما تجده الشركات الصغيرة والاستوديوهات مكلفًا.
  • تشفير الخصوصية: أثناء حماية الويب، يُفضَّل معالجة البيانات المحلية دون إرسالها إلى السحابة. كان الهدف إنشاء أداة تُشفِّر المعلومات المحلية والاتصالات الشبكية الخاصة بواجهة الإدارة.
  • التخصيص الذاتي (DIY): على مدى سنوات من صيانة المواقع وتطويرها، كانت هناك وظائف محددة أردت إضافتها لكنني لم أتمكن من تحقيقها.
  • الإدراك: إذا لم يسبق لمدير الموقع استخدام WAF مماثل، فمن الصعب معرفة مَن يصل إلى الموقع وما الطلبات المُرسَلة بالاعتماد فقط على السجلات أو على nginx أو apache أو IIS وغيرها.

باختصار، كان الهدف إنشاء أداة فعّالة لحماية المواقع أو واجهات API من أجل التعامل مع الحالات غير الطبيعية وضمان التشغيل السليم للمواقع والتطبيقات.

نبذة عن البرنامج

SamWaf هو جدار حماية خفيف ومفتوح المصدر لتطبيقات الويب موجَّه للشركات الصغيرة والاستوديوهات والمواقع الشخصية. يدعم النشر الخاص بالكامل، ويُشفِّر البيانات المخزَّنة محليًا، ويسهل بدء تشغيله، ويدعم Linux وWindows بمعمارية 64 بت وARM64، مع توفر صور Docker. يستخدم افتراضيًا قاعدة بيانات SQLite مضمَّنة ومشفَّرة دون أي اعتماديات خارجية، ويمكن اختياريًا التبديل إلى MySQL / PostgreSQL.

البنية المعمارية

البنية المعمارية لـ SamWaf

الواجهة

نظرة عامة على جدار حماية تطبيقات الويب SamWaf

إضافة مضيف سجل الهجمات
إضافة مضيف سجل الهجمات
CC قائمة حظر عناوين IP
CC قائمة حظر عناوين IP
قائمة سماح عناوين IP LDP
قائمة سماح عناوين IP LDP
إضافة سكربت قاعدة من السجل اختيار السجل
إضافة سكربت قاعدة من السجل اختيار السجل
تفاصيل السجل قاعدة يدوية
تفاصيل السجل قاعدة يدوية
قائمة حظر عناوين URL قائمة سماح عناوين URL
قائمة حظر عناوين URL قائمة سماح عناوين URL

الميزات الرئيسية

الأساسيات

  • شيفرة مفتوحة المصدر بالكامل (Apache 2.0)
  • نشر خاص بالكامل؛ البيانات مشفَّرة ومخزَّنة محليًا فقط
  • تشغيل بنقرة واحدة من ملف واحد، خفيف الوزن دون الاعتماد على خدمات طرف ثالث (MySQL/Redis اختياريان)
  • محرك مستقل تمامًا؛ الحماية لا تعتمد على IIS أو Nginx
  • دعم IPv6

استقبال حركة المرور

  • دعم HTTP/1.1 وHTTP/2 وHTTP/3 (QUIC)
  • تمرير WebSocket
  • وكيل عكسي مع موازنة الحمل (التوزيع الدوري الموزون، وتجزئة IP، وأقل عدد اتصالات)؛ وتُزيل فحوصات السلامة الخوادم الخلفية غير السليمة تلقائيًا
  • قواعد المسارات: وكيل عكسي لكل مسار، أو ملفات ثابتة، أو إعادة توجيه 301/302، مع إمكانية ضبط بروتوكول الخادم الخلفي ومهلة الاستجابة
  • تقديم المواقع الثابتة
  • تمرير أنفاق TCP/UDP على الطبقة الرابعة (مع التحكم في الوصول حسب عناوين IP والتحكم بالنوافذ الزمنية)
  • تخزين مؤقت لصفحات الويب
  • مصادقة HTTP Basic للوصول إلى الموقع
  • صفحة حظر قابلة للتخصيص

الحماية من الهجمات

  • كشف حقن SQL
  • كشف XSS (البرمجة النصية عبر المواقع)
  • كشف RCE (تنفيذ الأوامر عن بُعد)
  • كشف أدوات المسح
  • كشف اجتياز المسارات
  • فحص الملفات المرفوعة (الامتدادات الخطرة، وبصمات webshell، وانتحال Content-Type)
  • حماية من هجمات CC / تقييد معدل الطلبات
  • كشف الزواحف والروبوتات المزيفة (التحقق من روبوتات محركات البحث عبر DNS العكسي)
  • منع سرقة الروابط (الحماية من الربط المباشر)
  • حماية من CSRF (التحقق من Origin/Referer لكل موقع)
  • تصفية الكلمات الحساسة
  • دعم مجموعة قواعد OWASP CRS (محرك Coraza؛ يمكن تفعيل القواعد أو تعطيلها أو تجاوزها)
  • قواعد حماية قابلة للتخصيص، مع دعم التحرير بالسكربتات وعبر الواجهة الرسومية
  • التحقق البشري: اختبار CAPTCHA بالنقر وإثبات العمل عبر Cap.js
  • وضع التسجيل فقط: تسجيل الهجمات دون حظرها، وهو مفيد لمراقبة القواعد وضبطها

التحكم في الوصول

  • قوائم السماح / الحظر لعناوين IP
  • قوائم السماح / الحظر لعناوين URL
  • الحظر الجغرافي (قواعد بيانات ip2region/GeoIP2 مدمجة تعمل دون اتصال، بدعم IPv4/IPv6)
  • حظر عناوين IP بالربط مع جدار حماية نظام التشغيل
  • حظر تلقائي عند بلوغ عدد مرات فشل عنوان IP حدًّا معيّنًا
  • إعداد شامل بنقرة واحدة واستراتيجيات حماية لكل موقع على حدة

أمان البيانات

  • تخزين مشفَّر للسجلات
  • سجلات اتصالات مشفَّرة
  • إخفاء البيانات (DLP) مع إخراج مخصَّص لخصوصية البيانات
  • منع التلاعب بصفحات الويب (تعلُّم خط الأساس + الاستعادة التلقائية)
  • تعزيز أمان ملفات تعريف الارتباط (HttpOnly/Secure/SameSite)

شهادات SSL

  • طلب شهادات SSL وتجديدها تلقائيًا (ACME، مع دعم جهات إصدار متعددة وEAB)
  • شهادات متعددة عبر SNI وHTTPS متعدد المنافذ
  • فحص جماعي لانتهاء صلاحية شهادات SSL
  • تحميل تلقائي للشهادات

التشغيل والإدارة

  • صلاحيات الحسابات وفق RBAC، ومصادقة ثنائية عبر OTP، وسجلات تسجيل الدخول والعمليات
  • تقارير إحصائية ومراقبة النظام والمضيفين
  • سياسة الاحتفاظ بالبيانات مع تجزئة السجلات وأرشفتها تلقائيًا
  • SQLite (مشفَّرة) افتراضيًا مع خيار MySQL / PostgreSQL، وأداة مدمجة للترحيل: SQLite→MySQL / SQLite→PostgreSQL / MySQL→PostgreSQL
  • ترقية عبر الإنترنت بنقرة واحدة، وإعادة تشغيل متدرجة دون انقطاع الخدمة، والرجوع إلى إصدارات سابقة
  • مهام دفعية، ومهام مجدولة، ونسخ احتياطي للبيانات
  • واجهة API مفتوحة

الإشعارات

  • قنوات إرسال عبر البريد الإلكتروني وDingTalk وFeishu وWeCom (WeChat Work) وServerChan وWebhook وKafka وRabbitMQ وملفات السجل

تعليمات الاستخدام

يوصى بشدة بإجراء اختبارات شاملة في بيئة اختبار قبل النشر في بيئة الإنتاج. وفي حال ظهور أي مشكلات، يُرجى تقديم ملاحظاتكم في أقرب وقت.

تنزيل أحدث إصدار

Gitee: https://gitee.com/samwaf/SamWaf/releases

GitHub: https://github.com/samwafgo/SamWaf/releases

AtomGit: https://atomgit.com/SamSafe/SamWaf/releases

البدء السريع

Windows

  • التشغيل المباشر
SamWaf64.exe
  • التشغيل كخدمة (يتطلب صلاحيات المسؤول)
//Install & Start
SamWaf64.exe install && SamWaf64.exe start

//Stop &  Uninstall 
SamWaf64.exe stop && SamWaf64.exe uninstall

Linux

  • التثبيت
curl -sSO https://update.samwaf.com/latest/install_samwaf.sh && bash install_samwaf.sh install 
  • إلغاء التثبيت
curl -sSO https://update.samwaf.com/latest/install_samwaf.sh && bash install_samwaf.sh uninstall 

Docker

docker run -d --name=samwaf-instance \
           --restart always \
           -p 26666:26666 \
           -p 80:80 \
           -p 443:443 \
           -v /path/to/your/conf:/app/conf \
           -v /path/to/your/data:/app/data \
           -v /path/to/your/logs:/app/logs \
           -v /path/to/your/ssl:/app/ssl \
           samwaf/samwaf


لمزيد من التفاصيل حول Docker: https://hub.docker.com/r/samwaf/samwaf

الوسوم:

  • latest: أحدث إصدار مستقر (يوصى به للاستخدام في بيئة الإنتاج).
  • beta: أحدث إصدار اختباري (يتيح تجربة الميزات الجديدة أو إصلاحات محددة للأخطاء).

أدوات سطر الأوامر

Command الوصف
install / uninstall تثبيت خدمة النظام / إلغاء تثبيتها
start / stop / restart بدء الخدمة / إيقافها / إعادة تشغيلها
rolling-restart إعادة تشغيل متدرجة دون توقف (تبديل عملية العامل دون انقطاع حركة المرور)
resetpwd إعادة تعيين كلمة مرور المسؤول
resetotp إعادة تعيين رمز الأمان (OTP)
repairdb إصلاح قاعدة بيانات تالفة
execsql تنفيذ عبارات SQL على قاعدة بيانات محددة
migratedb ترحيل قاعدة البيانات دون اتصال: SQLite → MySQL / SQLite → PostgreSQL / MySQL → PostgreSQL (--dry-run للتقدير فقط، و--force للاستبدال)
rollback الرجوع إلى نسخة احتياطية سابقة

مثال: SamWaf64.exe resetpwd (على Linux: ./SamWafLinux64 resetpwd)

بدء الوصول

http://127.0.0.1:26666

الحساب الافتراضي: admin كلمة المرور الأولية: تُنشئ عمليات التثبيت الجديدة كلمة مرور عشوائية تلقائيًا وتُحفظ في data/initial_password.txt (تحتفظ عمليات التثبيت الحالية بكلمة مرورها السابقة؛ يُرجى تغييرها عند أول تسجيل دخول)

دليل الترقية

ملاحظة: ستؤدي عملية الترقية إلى إيقاف الخدمة، لذا يُرجى إجراء الترقية خارج أوقات الذروة.

الترقية التلقائية

عند توفر إصدار جديد، ستظهر نافذة منبثقة لتأكيد الترقية تتيح لك بدء عملية الترقية، وسيجري تحديث الصفحة تلقائيًا بعد اكتمال الترقية.

الترقية اليدوية

  • في حالة التشغيل المباشر:

    1. أغلق التطبيق.
    2. نزِّل أحدث نسخة من البرنامج واستبدل الملفات الحالية، ثم شغِّله يدويًا من جديد.
  • في حالة وضع الخدمة:

1. First, pause the service.

  Windows: SamWaf64.exe stop
  Linux: ./SamWafLinux64 stop
  
2. Replace with the latest application files.

3. Start the service:
Windows: SamWaf64.exe start
Linux: ./SamWafLinux64 start

ملاحظة: قد تؤدي ترقية خدمة Windows إلى تفعيل قواعد أمنية لدى برنامجي 360 أو Huorong، مما يمنع استبدال الملفات الجديدة بصورة طبيعية. في هذه الحالة يمكنك استبدال الملفات يدويًا. ويمكن لذوي الدراية بهذا المجال المساعدة في تحديد طريقة المعالجة الصحيحة.

الوثائق عبر الإنترنت

الوثائق عبر الإنترنت

معلومات الشيفرة

مستودع الشيفرة

المقدمة والترجمة البرمجية

كيفية الترجمة البرمجية تعليمات الترجمة البرمجية

دليل الترجمة البرمجية عبر الإنترنت: https://doc.samwaf.com/en/dev/

المنصات المختبَرة والمدعومة

المنصات المختبَرة والمدعومة

معلومات أخرى

نتائج الاختبارات

نتائج الاختبارات

سياسة الأمان

سياسة الأمان

الملاحظات والاقتراحات

يتطور SamWaf باستمرار، ونرحب بالملاحظات والاقتراحات.

الحساب الرسمي على WeChat

SamWaf

سجل النجوم

مخطط سجل النجوم

الترخيص

SamWaf مرخَّص بموجب رخصة Apache License 2.0. راجع LICENSE لمزيد من التفاصيل.

للاطلاع على إشعار استخدام برمجيات الأطراف الثالثة، راجع ThirdLicense

المساهمة

شكرًا للمساهمين التالية أسماؤهم!