CrowdSec Blocklists - это списки IP-адресов, подозреваемых или подтверждённых в злонамеренной активности (взлом, сканирование, спам, брутфорс и т.д.), которые CrowdSec предлагает для автоматической защиты серверов, сетей и приложений.
Так воспользуемся же этим коллективных иммунитетом, чтобы защитить ваши публичные сервисы за микротами.
План такой:
- поднимаем crowdsec в LXC самым быстрым способом
- устанавливаем и настраиваем blocklist mirror bouncer
- импортируем список скриптом в микрот и добавляем в планировщик
- настраиваем firewall
- смотрим счетчики, радуемся
Официальная документация, если кому надо
Установка crowdsec
Создаем LXC контейнер на дебиане, используем в консоли контейнера скрипт из Proxmox VE Helper-Scripts
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/crowdsec.sh)"
Установка и настройка blocklist mirror bouncer
apt install crowdsec-blocklist-mirror
проверяем
> cscli bouncers list
редактируем
nano /etc/crowdsec/bouncers/crowdsec-blocklist-mirror.yaml
в нем меняем строчки
format: mikrotik
> "listen_uri: server_local_IP:41412", тут должен быть локальный ip вашего сервера, а не 127.0.0.1
Перезапуск
systemctl restart crowdsec-blocklist-mirror
Проверяем выгрузкой
apt install curl
curl http://server_local_IP:41412/security/blocklist
Создаем скрипт в микроте
/system script
add dont-require-permissions=no name=crowdsec_import policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":local name \"[crowdsec]\"\
\n:local url \"http://server_local_IP:41412/security/blocklist\"\
\n:local fileName \"blocklist.rsc\"\
\n:log info \"\$name fetch blocklist from \$url\"\
\n/tool fetch url=\"\$url\" mode=http dst-path=\$fileName\
\n:if ([:len [/file find name=\$fileName]] > 0) do={\
\n :log info \"\$name import;start\"\
\n /import file-name=\$fileName\
\n :log info \"\$name import:done\"\
\n} else={\
\n :log error \"\$name failed to fetch the blocklist\"\
\n}"
Добавляем в планировщик
/system scheduler
add interval=1h name=schedule1 on-event="system/script/run crowdsec_import"
Добавляем правила в ФВ|
/ip firewall filter
add action=drop chain=forward comment="Drop from Crowdsec Lists" src-address-list=CrowdSec
add action=drop chain=input comment="Drop from Crowdsec Lists" src-address-list=CrowdSec