← شروع آموزش

WIUNIX ACADEMY

آموزش CrowdSec و Nginx؛ لاگ معتبر، LAPI خصوصی و مسدودسازی قابل‌بازگشت

صفحهٔ 2 از 5؛ مراحل قبلی و پیش‌نیازها را پیش از ادامه مرور کن.

آموزش متناسب با محیط تو

کجا اجرا می‌کنی؟

سیستم‌عامل و نسخه را انتخاب کن تا مراحل، دستورها و راه‌حل‌ها برای همان محیط نمایش داده شوند.

Ubuntu26.10بررسی‌شده با مستندات رسمی ·

آموزش متناسب با مقادیر تو

تنظیمات این آموزش

مقادیر نمونه را برای محیط خودت تنظیم کن؛ متن و دستورهای مرتبط با هم تغییر می‌کنند. رمز، کلید خصوصی و توکن وارد نکن. مقادیر فقط در همین زبانه نگهداری می‌شوند و به سرور یا لینک اشتراک‌گذاری فرستاده نمی‌شوند. پیش از اجرا، DNS، گواهی‌ها و سیاست شبکهٔ واقعی را بررسی کن.

آی‌پی، دامنه یا پورت مثال‌ها با محیط تو فرق دارد؟ دکمهٔ زیر را باز کن، مقادیر را تغییر بده و «اعمال در آموزش» را بزن؛ سپس دستورهای به‌روز‌شده را کپی کن.

تنظیم مقادیر برای محیط من7 مقدار قابل‌تغییر
04

قدم بعدی

فایل‌های انتشار بررسی‌شده را دریافت کنید

در بررسی2026-10-21، API انتشار موتور1.8.1 و bouncer1.2.3 را گزارش کرد و مخزن‌ها بایگانی نبودند. هش‌ها متعلق به فایل‌های واقعاً دریافت‌شده برای این بررسی‌اند؛ امضای ناشر یا تضمین پشتیبانی آینده نیستند. اسکریپت نصب داخل آرشیوها را اجرا نکنید؛ نمونهٔ ما تنظیمات سیستمی را جایگزین نمی‌کند.

bash

ترمینال ماشین آزمایشگاهی مستقل

set -eu
sudo curl --fail --location --proto '=https' --tlsv1.2 --output '/srv/academy-crowdsec/downloads/engine.tgz' https://github.com/crowdsecurity/crowdsec/releases/download/v1.8.1/crowdsec-release.tgz
sudo curl --fail --location --proto '=https' --tlsv1.2 --output '/srv/academy-crowdsec/downloads/bouncer.tgz' https://github.com/crowdsecurity/cs-nginx-bouncer/releases/download/v1.2.3/crowdsec-nginx-bouncer.tgz
printf '%s\n' 'ae64cdab8ee49534d6c36eab4ce40b5478842a4b4abfe83f7796aace569821eb  /srv/academy-crowdsec/downloads/engine.tgz' '8cb0c176f01bda3a5fc5493d20bcd7261630c7dfbd60c00b2bff8eefc8fe84d5  /srv/academy-crowdsec/downloads/bouncer.tgz' | sudo sha256sum --check
sudo tar --extract --gzip --no-same-owner --file '/srv/academy-crowdsec/downloads/engine.tgz' --directory '/srv/academy-crowdsec'
sudo tar --extract --gzip --no-same-owner --file '/srv/academy-crowdsec/downloads/bouncer.tgz' --directory '/srv/academy-crowdsec'
sudo cp -r '/srv/academy-crowdsec/crowdsec-v1.8.1/config/patterns' '/srv/academy-crowdsec/config/patterns'
sudo luarocks --tree '/srv/academy-crowdsec/rocks' install lua-resty-http 0.17.1-0
sudo '/srv/academy-crowdsec/crowdsec-v1.8.1/cmd/crowdsec/crowdsec' -version
از کجا بدانم درست انجام شد؟

هر دو بررسی SHA256 برابر OK و نسخهٔ موتور1.8.1 است.

05

قدم بعدی

فایل‌های موتور مستقل را ویرایش کنید

فایل‌های رزروشده را با محتوای YAML کادرهای بعدی ذخیره کنید. نبود online_client و گزینهٔ -no-capi ارتباط CAPI را کنار می‌گذارد. گذرواژهٔ ماشین برای پردازشگر لاگ است و کلید مستقل bouncer برای دریافت تصمیم‌ها؛ این دو اعتبارنامه یکی نیستند.

bash

ترمینال ماشین آزمایشگاهی مستقل

sudo nano '/srv/academy-crowdsec/config/engine.yaml' '/srv/academy-crowdsec/config/acquis.yaml' '/srv/academy-crowdsec/config/profiles.yaml' '/srv/academy-crowdsec/config/simulation.yaml'
از کجا بدانم درست انجام شد؟

چهار فایل اختصاصی ذخیره شده و تنظیمات CrowdSec سیستم تغییر نکرده است.

موتور و API محلی

محتوای فایل است؛ دستور ترمینال نیست.

yaml · /srv/academy-crowdsec/config/engine.yaml
common:
  daemonize: false
  log_media: file
  log_level: info
  log_dir: /srv/academy-crowdsec/logs
config_paths:
  config_dir: /srv/academy-crowdsec/config
  data_dir: /srv/academy-crowdsec/data
  simulation_path: /srv/academy-crowdsec/config/simulation.yaml
  hub_dir: /srv/academy-crowdsec/hub
  index_path: /srv/academy-crowdsec/hub/.index.json
  notification_dir: /srv/academy-crowdsec/notifications
  plugin_dir: /srv/academy-crowdsec/plugins
crowdsec_service:
  acquisition_path: /srv/academy-crowdsec/config/acquis.yaml
  parser_routines: 1
cscli:
  output: human
db_config:
  type: sqlite
  db_path: /srv/academy-crowdsec/data/crowdsec.db
  use_wal: false
api:
  client:
    credentials_path: /srv/academy-crowdsec/config/local-api.yaml
  server:
    listen_uri: 127.0.0.1:18081
    profiles_path: /srv/academy-crowdsec/config/profiles.yaml
    trusted_ips:
      - 127.0.0.1
prometheus:
  enabled: true
  level: full
  listen_addr: 127.0.0.1
  listen_port: 18082

فقط لاگ همین Nginx خوانده شود

محتوای فایل است؛ دستور ترمینال نیست.

yaml · /srv/academy-crowdsec/config/acquis.yaml
filenames:
  - /srv/academy-crowdsec/logs/access.log
labels:
  type: nginx

تصمیم کوتاه برای هشدار IP محلی

محتوای فایل است؛ دستور ترمینال نیست.

yaml · /srv/academy-crowdsec/config/profiles.yaml
name: local_ip_ban
filters:
  - Alert.Remediation == true && Alert.GetScope() == "Ip"
decisions:
  - type: ban
    duration: 2m
on_success: break

وضعیت شبیه‌سازی آزمایشگاه

محتوای فایل است؛ دستور ترمینال نیست.

yaml · /srv/academy-crowdsec/config/simulation.yaml
simulation: false
همهٔ آموزش‌های آکادمی ↗