File size: 11,016 Bytes
7270c96 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 | # دليل إعدادات نظام الحارس التلقائي
# 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
|