Auto-Guardian-Core / docs /configuration.md
AbdulElahGwaith's picture
Upload folder using huggingface_hub
7270c96 verified
# دليل إعدادات نظام الحارس التلقائي
# Auto Guardian System Configuration Guide
# ==========================================
## نظرة عامة
يحتوي ملف `config/settings.yaml` على جميع إعدادات نظام الحارس التلقائي. هذا الدليل يشرح كل خيار بالتفصيل مع أمثلة عملية. يُرجى قراءة هذا الدليل بعناية قبل تعديل الإعدادات.
---
## هيكل ملف الإعدادات
```
config/
├── settings.yaml # الإعدادات الرئيسية
├── rules.yaml # قواعد الكشف عن التهديدات
├── alerts.yaml # قوالب التنبيهات
└── whitelist.yaml # قائمة العناوكات المسموح بها
```
---
## القسم الأول: الإعدادات العامة
```yaml
# config/settings.yaml - القسم العام
general:
# وضع التشغيل: development, testing, production
mode: development
# مستوى التسجيل: DEBUG, INFO, WARNING, ERROR, CRITICAL
log_level: INFO
# المنطقة الزمنية (استخدم تنسيق tzdata)
timezone: UTC
# مسار ملفات السجلات
log_path: logs/
# تفعيل وضع التحسينات (Production فقط)
optimizations: false
```
### شرح الخيارات
| الخيار | القيم الممكنة | الافتراضي | الوصف |
|--------|---------------|-----------|-------|
| mode | development, testing, production | development | يحدد بيئة التشغيل |
| log_level | DEBUG, INFO, WARNING, ERROR, CRITICAL | INFO | يتحكم في كمية السجلات |
| timezone | أي منطقة زمنية صالحة | UTC | المنطقة الزمنية للسجلات |
| log_path | مسار مجلد | logs/ | مكان تخزين السجلات |
| optimizations | true, false | false | تفعيل تحسينات الأداء |
---
## القسم الثاني: إعدادات المراقبة
```yaml
# config/settings.yaml - قسم المراقبة
monitoring:
# تفعيل المراقبة
enabled: true
# مصادر السجلات للمراقبة
log_sources:
- /var/log/auth.log # سجلات المصادقة
- /var/log/syslog # سجلات النظام العامة
- /var/log/nginx/access.log # سجلات خادم الويب
# الفاصل الزمني للفحص (بالثواني)
scan_interval: 5
# تفعيل الفحص العميق (أبطأ لكنه أكثر دقة)
deep_scan: false
# الأنماط المشبوهة للكشف (قاعدة منفصلة)
patterns_file: config/rules.yaml
# تفعيل المراقبة في الوقت الفعلي
realtime_monitoring: true
# حجم ذاكرة التخزين المؤقت للأحداث
event_buffer_size: 1000
```
### شرح الخيارات
| الخيار | القيم الممكنة | الافتراضي | الوصف |
|--------|---------------|-----------|-------|
| enabled | true, false | true | تفعيل أو إلغاء المراقبة |
| log_sources | قائمة مسارات | - | مصادر السجلات للمراقبة |
| scan_interval | رقم (ثواني) | 5 | الفاصل بين عمليات الفحص |
| deep_scan | true, false | false | فحص أعمق وأدق |
| realtime_monitoring | true, false | true | مراقبة في الوقت الفعلي |
| event_buffer_size | رقم | 1000 | حجم التخزين المؤقت |
---
## القسم الثالث: قواعد الكشف
```yaml
# config/rules.yaml - قواعد الكشف
# أنماط هجوم القوة الغاشبة
brute_force:
enabled: true
threshold: 5 # عدد المحاولات
time_window: 60 # بالم seconds
ports: [22, 2222] # المنافذ المستهدفة
# أنماط المسح الضوئي للمنافذ
port_scan:
enabled: true
min_ports: 3 # الحد الأدنى للمنافذ
time_window: 30 # بالم seconds
severity: high
# أنماط حقن SQL
sql_injection:
enabled: true
severity: critical
auto_block: true
# أنماط XSS
xss:
enabled: true
severity: high
auto_block: false
# أنماط الوصول غير المصرح به
unauthorized_access:
enabled: true
severity: critical
auto_block: true
```
---
## القسم الرابع: إعدادات الحظر
```yaml
# config/settings.yaml - قسم الحظر
blocking:
# تفعيل الحظر التلقائي
enabled: true
# عدد المحاولات قبل الحظر
threshold: 5
# الفترة الزمنية للمحاولات (بالثواني)
time_window: 60
# تفعيل IPTables للحظر
use_iptables: true
# تفعيل firewalld للحظر
use_firewalld: false
# تفعيل الحظر في Cloudflare
use_cloudflare: false
# قائمة السماح (عناوكات لا تُحظر)
whitelist:
- 127.0.0.1
- 192.168.1.1
- 10.0.0.1
# قائمة الحظر الدائم
blacklist: []
# مدة الحظر الافتراضية (بالدقائق، 0 = دائم)
default_duration: 0
# إرسال إشعار عند الحظر
notify_on_block: true
```
### شرح الخيارات
| الخيار | القيم الممكنة | الافتراضي | الوصف |
|--------|---------------|-----------|-------|
| enabled | true, false | true | تفعيل الحظر التلقائي |
| threshold | رقم | 5 | عدد المحاولات قبل الحظر |
| time_window | رقم (ثواني) | 60 | الفترة الزمنية |
| use_iptables | true, false | true | استخدام IPTables |
| whitelist | قائمة IPs | [] | عناوين لا تُحظر |
| default_duration | رقم (دقائق) | 0 | مدة الحظر الافتراضية |
---
## القسم الخامس: إعدادات الإشعارات
```yaml
# config/settings.yaml - قسم الإشعارات
notifications:
# تفعيل الإشعارات
enabled: true
# عنوان المرسل
sender_name: "Auto-Guardian System"
# ---- Slack ----
slack:
enabled: false
webhook_url: ""
channel: "security-alerts"
username: "Auto-Guardian"
icon_emoji: ":shield:"
# ---- Discord ----
discord:
enabled: false
webhook_url: ""
username: "Auto-Guardian"
avatar_url: ""
# ---- البريد الإلكتروني ----
email:
enabled: false
smtp_host: "smtp.gmail.com"
smtp_port: 587
use_tls: true
username: ""
password: ""
from_address: "noreply@autoguardian.local"
to_addresses:
- "admin@example.com"
# ---- عام ----
# تفعيل الإشعارات للتهديدات الحرجة فقط
critical_only: false
# وقت عدم الإرسال (بالساعات، 0 = نش)
quietط دائماً_hours: 0
```
---
## القسم السادس: إعدادات Prometheus
```yaml
# config/settings.yaml - قسم Prometheus
prometheus:
# تفعيل Prometheus
enabled: true
# منفذ الاستماع
port: 9090
# مسار /metrics
metrics_path: /metrics
# تفعيل جمع السجلات
include_logs: true
# تضمين معلومات النظام
include_system_info: true
# تضمين معلومات التهديدات
include_threat_info: true
```
### مقاييس Prometheus المتاحة
| المقياس | النوع | الوصف |
|---------|-------|-------|
| autoguardian_threats_total | Counter | إجمالي التهديدات |
| autoguardian_blocked_ips | Gauge | عدد العناوكات المحظورة |
| autoguardian_blocked_ips_active | Gauge | العناوكات النشطة |
| autoguardian_success_rate | Gauge | معدل النجاح |
| autoguardian_response_time_seconds | Histogram | زمن الاستجابة |
| autoguardian_alerts_sent | Counter | التنبيهات المرسلة |
---
## القسم السابع: إعدادات الأمان
```yaml
# config/settings.yaml - قسم الأمان
security:
# تفعيل التحقق من التحديثات الأمنية
security_checks: true
# فترة التحقق من التحديثات (بالساعات)
check_interval: 24
# تفعيل تسجيل التدقيق
audit_logging: true
# مسار ملف سجل التدقيق
audit_log_path: logs/audit.log
# تفعيل HTTPS
use_https: false
# ملف الشهادة (للإنتاج)
ssl_cert: ""
ssl_key: ""
# فترة انتهاء الجلسة (بالساعات)
session_timeout: 24
```
---
## أمثلة التكوين
### تكوين التطوير
```yaml
# config/settings.yaml - وضع التطوير
general:
mode: development
log_level: DEBUG
timezone: UTC
monitoring:
enabled: true
scan_interval: 5
deep_scan: false
blocking:
enabled: false # لا تحظر في التطوير
notifications:
enabled: false # لا ترسل إشعارات في التطوير
prometheus:
enabled: false
```
### تكوين الإنتاج
```yaml
# config/settings.yaml - وضع الإنتاج
general:
mode: production
log_level: WARNING
timezone: Asia/Riyadh
monitoring:
enabled: true
scan_interval: 1
deep_scan: true
blocking:
enabled: true
threshold: 3
time_window: 30
use_iptables: true
default_duration: 360 # 6 ساعات
notifications:
enabled: true
slack:
enabled: true
webhook_url: ${SLACK_WEBHOOK_URL}
discord:
enabled: true
webhook_url: ${DISCORD_WEBHOOK_URL}
prometheus:
enabled: true
port: 9090
security:
security_checks: true
audit_logging: true
use_https: true
ssl_cert: /etc/ssl/certs/cert.pem
ssl_key: /etc/ssl/private/key.pem
session_timeout: 8
```
---
## متغيرات البيئة
يمكن تجاوز إعدادات YAML باستخدام متغيرات البيئة:
| متغير البيئة | المقابل في YAML |
|--------------|-----------------|
| AG_MODE | general.mode |
| AG_LOG_LEVEL | general.log_level |
| AG_BLOCKING_ENABLED | blocking.enabled |
| AG_SLACK_WEBHOOK_URL | notifications.slack.webhook_url |
| AG_PROMETHEUS_PORT | prometheus.port |
مثال:
```bash
export AG_MODE=production
export AG_LOG_LEVEL=WARNING
export AG_SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...
```
---
## التحقق من الإعدادات
للتحقق من صحة ملف الإعدادات:
```bash
python -c "
import yaml
with open('config/settings.yaml') as f:
config = yaml.safe_load(f)
print('✅ الإعدادات صالحة')
print(f'وضع التشغيل: {config[\"general\"][\"mode\"]}')
print(f'المسار: {config[\"monitoring\"][\"enabled\"]}')
"
```
---
## الدعم
للمساعدة في الإعدادات:
- **المستندات:** راجع التوثيق الكامل
- **GitHub Issues:** أبلغ عن مشكلة
- **البريد:** support@autoguardian.local