В прошлой статье мы рассмотрели вопрос интеграции CrowdSec в панель управления ISPManager 6. Как сделать работу с этим инструментом еще более эффективной и продуктивной? Для этого вы можете подключить уведомления прямо в вашем Телеграме.
Простым действием можно превратить CrowdSec в проактивную систему защиты: вам удастся не просто блокировать различные киберугрозы, но и осуществлять полноценный контроль в режиме реального времени над всеми процессами. А это особенно важно для безопасности сервера и веб-приложений.
Зачем нужны уведомления для CrowdSec в Телеграме?
Давайте рассмотрим самые главные преимущества, которые вы ощутите после элементарной настройки:
- Оповещение об атаках в режиме online. Вы сразу же получаете уведомление в мессенджер, если системой CrowdSec была обнаружена угроза (брутфорс-атак, сканирование портов, DDoS-активность или любые другие подозрительные паттерны).
- Мониторинг на расстоянии. Под рукой достаточно иметь всего один смартфон, установленный Telegram и включенные уведомления. Это удобно, просто, а еще эффективно.
- Возможность сразу реагировать на возникшую угрозу. В ряде случаев это критически важно. Если пользователь сразу узнает об угрозе, он сможет тут же - проверить логи, выполнить корректировку правил блокировки, внести любые необходимые изменения в систему защиты с учетом характера возникшей киберугрозы.
Также уведомления дают вам понять, что CrowdSec на страже защиты и исправно выполняет свои функции:
- осуществляет мониторинг;
- видит потенциальные угрозы;
- применяют нужные механизмы для нейтрализации угрозы.
Вы сможете выполнить настройку даже для группового чата в Телеграме. Это особенно полезно, когда за контроль и безопасность отвечает сразу группа системных администраторов, специалистов службы безопасности или технической поддержки.
Что можно увидеть в уведомлении?
Стандартная настройка уведомлений CrowdSec обычно включает следующую информацию:
- IP-адрес, с которого идёт атака;
- тип угрозы;
- длительность блокировки;
- время инцидента;
- ссылка на CrowdSec CTI.
Дальше рассмотрим порядок действий для правильной настройки уведомлений.
Настраиваем уведомления
Чтобы сделать уведомления в Telegram активными, для этого вам нужно в первую очередь настроить Telegram-бот. Затем в файле /etc/crowdsec/profiles.yaml раскомментировать строки с параметрами notifications и http_default, а содержимое файла /etc/crowdsec/notifications/http.yaml замените на:
type: http # Don't change
name: http_default # Must match the registered plugin in the profile
# One of "trace", "debug", "info", "warn", "error", "off"
log_level: info
# group_wait: # Time to wait collecting alerts before relaying a message to this plugin, eg "30s"
# group_threshold: # Amount of alerts that triggers a message before <group_wait> has expired, eg "10"
# max_retry: # Number of attempts to relay messages to plugins in case of error
# timeout: # Time to wait for response from the plugin before considering the attempt a failure, eg "10s"
#-------------------------
# plugin-specific options
# The following template receives a list of models.Alert objects
# The output goes in the http request body
format: |
{
"chat_id": "-%ID_ЧАТА_TELEGRAM%",
"text": "
{{range . -}}
{{$alert := . -}}
{{range .Decisions -}}
{{.Value}} will get {{.Type}} for next {{.Duration}} for triggering {{.Scenario}}.
{{end -}}
{{end -}}
",
"reply_markup": {
"inline_keyboard": [
{{ $arrLength := len . -}}
{{ range $i, $value := . -}}
{{ $V := $value.Source.Value -}}
[
{
"text": "See {{ $V }} on shodan.io",
"url": "https://www.shodan.io/host/{{ $V -}}"
},
{
"text": "See {{ $V }} on crowdsec.net",
"url": "https://app.crowdsec.net/cti/{{ $V -}}"
}
]{{if lt $i ( sub $arrLength 1) }},{{end }}
{{end -}}
]
}
url: https://api.telegram.org/bot%ID_БОТА_TELEGRAM%/sendMessage
method: POST
headers:
Content-Type: "application/json"
Дальше просто перезапускаем службу:
systemctl status crowdsec
Проверяем статус плагинов для уведомлений командой:
cscli notifications list
Чтобы проверить работу уведомлений, блокируем IP-адрес, а затем удаляем его из списка:
cscli decisions add --ip 4.3.2.1 --duration 1h
cscli decisions delete --ip 4.3.2.1
Вот и всё. Легко и просто. На этом настройка завершена.