WIUNIX ACADEMY
آموزش CrowdSec و Nginx؛ لاگ معتبر، LAPI خصوصی و مسدودسازی قابلبازگشت
صفحهٔ 2 از 5؛ مراحل قبلی و پیشنیازها را پیش از ادامه مرور کن.
آموزش متناسب با محیط تو
کجا اجرا میکنی؟
سیستمعامل و نسخه را انتخاب کن تا مراحل، دستورها و راهحلها برای همان محیط نمایش داده شوند.
آموزش متناسب با مقادیر تو
تنظیمات این آموزش
مقادیر نمونه را برای محیط خودت تنظیم کن؛ متن و دستورهای مرتبط با هم تغییر میکنند. رمز، کلید خصوصی و توکن وارد نکن. مقادیر فقط در همین زبانه نگهداری میشوند و به سرور یا لینک اشتراکگذاری فرستاده نمیشوند. پیش از اجرا، DNS، گواهیها و سیاست شبکهٔ واقعی را بررسی کن.
آیپی، دامنه یا پورت مثالها با محیط تو فرق دارد؟ دکمهٔ زیر را باز کن، مقادیر را تغییر بده و «اعمال در آموزش» را بزن؛ سپس دستورهای بهروزشده را کپی کن.
تنظیم مقادیر برای محیط من7 مقدار قابلتغییر
قدم بعدی
فایلهای انتشار بررسیشده را دریافت کنید
در بررسی2026-10-21، API انتشار موتور1.8.1 و bouncer1.2.3 را گزارش کرد و مخزنها بایگانی نبودند. هشها متعلق به فایلهای واقعاً دریافتشده برای این بررسیاند؛ امضای ناشر یا تضمین پشتیبانی آینده نیستند. اسکریپت نصب داخل آرشیوها را اجرا نکنید؛ نمونهٔ ما تنظیمات سیستمی را جایگزین نمیکند.
ترمینال ماشین آزمایشگاهی مستقل
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 است.
قدم بعدی
فایلهای موتور مستقل را ویرایش کنید
فایلهای رزروشده را با محتوای YAML کادرهای بعدی ذخیره کنید. نبود online_client و گزینهٔ -no-capi ارتباط CAPI را کنار میگذارد. گذرواژهٔ ماشین برای پردازشگر لاگ است و کلید مستقل bouncer برای دریافت تصمیمها؛ این دو اعتبارنامه یکی نیستند.
ترمینال ماشین آزمایشگاهی مستقل
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 محلی
محتوای فایل است؛ دستور ترمینال نیست.
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 خوانده شود
محتوای فایل است؛ دستور ترمینال نیست.
filenames:
- /srv/academy-crowdsec/logs/access.log
labels:
type: nginx
تصمیم کوتاه برای هشدار IP محلی
محتوای فایل است؛ دستور ترمینال نیست.
name: local_ip_ban
filters:
- Alert.Remediation == true && Alert.GetScope() == "Ip"
decisions:
- type: ban
duration: 2m
on_success: break
وضعیت شبیهسازی آزمایشگاه
محتوای فایل است؛ دستور ترمینال نیست.
simulation: false