Prosty IDS dla SSH i nie tylko
Napisał: Patryk Krawaczyński
14/08/2016 w Administracja, Bezpieczeństwo Brak komentarzy. (artykuł nr 539, ilość słów: 391)
M
onit jest małym, ale potężnym narzędziem, które potrafi zarządzać monitoringiem i kondycją systemu. Potrafi przeprowadzać zautomatyzowane czynności utrzymaniowe, naprawcze i zaradcze w sytuacjach wystąpienia różnych błędów. Nie tylko umie czuwać nad poprawnym działaniem procesów, ale również zgłaszać incydenty oraz podejmować różne akcje (np. poprzez skrypty). Poniżej zamieszczam prosty przykład, jak wykorzystać tego daemona do monitorowania logowań przez SSH i wysyłania powiadomień przez e-mail.
Przykład zostanie wykonany na systemie Ubuntu 16.04.1 LTS:
apt-get install monit touch /etc/monit/conf-enabled/sshlogins
Definiujemy zawartość pliku sshlogins, aby powiadamiał nas za każdym razem, jak ktoś zaloguje się przez usługę SSH za pomocą hasła lub klucza:
check file sshlogins with path /var/log/auth.log ignore content = "/etc/monit/whitelist_ips" if content = "(Accepted password|Accepted publickey)" then alert
W pliku /etc/monit/whitelist_ips
możemy wpisać w formacie linia po linii adresy IP, dla których powiadomienia mają być ignorowane. Ostatnim krokiem jest zdefiniowanie szablonu powiadomienia i adresu na jaki będzie wysyłana wiadomość (/etc/monit/monitrc
):
set mail-format { from: monit@$HOST subject: monit alert -- $EVENT $SERVICE message: $EVENT Service $SERVICE Date: $DATE Action: $ACTION Host: $HOST Description: $DESCRIPTION Your faithful employee, Monit } set alert security_incydents@hotmail.com not on { instance, action, pid, ppid, nonexist }
Zamiast warunku then alert możemy wykorzystać then exec i wykonać napisany przez nas skrypt, który powiadomi inny system monitoringu np. PagerDuty lub OpsGenie, czy po prostu wykonać prosty PUSH przez API na naszą ulubioną platformę do powiadomień.
Więcej informacji: How do I set up an email alert when a ssh login is successful?, Monit, Logujemy logowania i nie tylko cz.I i cz.II.