Jaka konfiguracja automatycznego powiadamiania / wykrywania włamań jest dobra do użytku na komputerze stacjonarnym?

27

Używam Linuksa od dłuższego czasu i zawsze czuję potrzebę posiadania pasywnej konfiguracji oprogramowania / skryptu, która może ostrzegać mnie o wszelkich podejrzanych działaniach sieciowych, takich jak skanowanie, nieudane próby logowania itp. W locie za pośrednictwem poczty elektronicznej lub przez powiadomienia wizualne / audio.

Wiem, jak przeglądać dzienniki i inne rzeczy, ale w większości jest to proces ręczny i czasochłonny. Szukam czegoś, co jest częściowo / w pełni zautomatyzowane z kilkoma dobrymi możliwościami analizy dzienników.

Mam świadomość systemów IDS do monitorowania sieci takich jak Snort itp., Ale są one przesadą dla przeciętnego użytkownika domowego i bolesnym procesem w celu uruchomienia.

Jaka jest dobra opcja dla mnie jako użytkownika domowego?

irenicus09
źródło
Jak definiujesz „pasywny”? Na przykład coś, co od czasu do czasu biegasz, aby sprawdzić, czy dzieje się coś podejrzanego?
Nanne

Odpowiedzi:

15

Prostym i skutecznym rozwiązaniem ogólnym jest użycie logcheck .

sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]

Logcheck okresowo skanuje skutecznie wszystkie dzienniki (zaczynając od miejsca, w którym zostało przerwane ostatnim razem), filtruje to, co widzi, aby wyeliminować wszystko, co uważane jest za normalne, i opcjonalnie wysyła powiadomienia e-mailem o czymkolwiek, co nie pasuje do normalnych / rutynowych wzorców.

Główną ideą jest uważanie na pojawienie się poważnych wpisów w plikach dziennika, wszystkie z nich przez cały czas, abyś nie musiał.

Logcheck jest wysoce konfigurowalny (man logcheck). Możesz skonfigurować wszystko, w tym:

  • częstotliwość kontroli
  • które pliki dziennika są sprawdzane
  • co jest uważane za normalne vs nie
  • gdzie wysłać e-mailem alerty (nieprawidłowe zdarzenia)

i więcej. Twoje wzorce ignorowania (normalne / rutynowe) znajdują się w wielu plikach w /etc/logcheck/ignore.d.* i możesz je dostosować do własnych potrzeb; głównie możesz chcieć dodać własne wzorce, aby je zignorować. Domyślny pakiet Ubuntu zawiera już obszerny zestaw plików z wzorcami ignorowania dla wielu usług, więc nie ma wiele do dodania, chyba że Twój system działa inaczej. Istnieją 3 zestawy wstępnie skonfigurowanych profili plików ignorowania: ignore.d.workstation , ignore.d.server i ignore.d.paranoid, z których można wybierać.

Główną ideą logcheck jest to, że różne usługi działające w systemie już rejestrują nieprawidłowe zdarzenia. Np. Sshd lub pam już rejestrują błędy uwierzytelnienia. Głównymi brakującymi komponentami są:

  • filtrowanie tego, co jest normalne
  • Alarmując serwis

Oba są dostarczane przez logcheck w wygodnym pakiecie. Możesz łączyć logcheck z dowolnym innym logowaniem. Na przykład iptables można skonfigurować tak, aby syslog rejestrował wszelkie próby połączenia sieciowego, które nie są wyraźnie dozwolone przez dodanie reguł:

 iptables -A input -j LOG
 iptables -A input -j DROP

natychmiast po wszystkich regułach zezwolenia.

Uważam, że logcheck jest o wiele bardziej pomocny niż logwatch (sugerowany w innych odpowiedziach), ponieważ jest dostarczany z bardzo dużą liczbą reguł, aby zignorować to, co uważa się za normalną aktywność. Rezultatem jest znacznie wyższy stosunek sygnału / szumu w ostrzeżeniach wysyłanych przez e-mail. YMMV.

Kolejną zaletą logcheck jest to, że jest on ortogonalny dla każdej logowanej usługi, więc nie występuje powielanie funkcji. Za każdym razem, gdy dodajesz nową usługę, która używa syslogdo rejestrowania zdarzeń, nienormalnych lub nie, do dowolnego pliku pod /var/log, automatycznie otrzymujesz powiadomienia.

JAK:

Ponieważ jest logcheckjuż wstępnie skonfigurowany, dwie linie u góry tej odpowiedzi zasadniczo pokrywają wszystko, czego potrzebujesz, aby zacząć. Po prostu zainstaluj i przejdź do górnego pliku konfiguracyjnego: /etc/logcheck/logcheck.confaby zmienić adres e-mail, aby logcheckotrzymywać powiadomienia e- mailem.

Oto bardziej przyjazne odniesienie do drugiego etapu . Ponieważ Ubuntu opiera się na Debianie, te instrukcje powinny również działać na Ubuntu. Oto kolejna dobra referencja .

Po zainstalowaniu rozpoczyna się proces ciągłego doskonalenia. Z czasem dopracowujesz swoje zasady, aby ignorować wszystko, o czym już wiesz i co uważasz, że nie powinno cię to martwić. Ten proces udoskonalania jest tak prosty, jak dodawanie wierszy tekstu do pliku w ulubionym edytorze tekstu.

Każda linia w pliku zignorowanym jest rozszerzonym wyrażeniem regularnym (patrz man 7 regex), ale możesz używać prostych ciągów, o ile odpowiadają one linii dziennika, którą chcesz zignorować. Wystarczy pamiętać, że znaki takie jak *, ?„+” [], ()są wyjątkowe w wyrażeniu regularnym, więc jeśli faktycznie pojawi się w linii z bali, trzeba by uciec im backslashem \w ignorować plików.

Innymi słowy: jeśli pojawi się alert, którego nie chcesz otrzymywać, spójrz na linię logu, która została do Ciebie wysłana, i dodaj pasujący wzór, jako jedną linię do dowolnego pliku ignorowanego. Sugeruję użycie /etc/logcheck/ignore.d.<yourloglevel>/my-ignoresjako osobistego pliku ignorowania. Gdzie <yourloglevel>jest jeden z paranoid, serverlub workstation(jak już wybrałeś w głównym pliku konfiguracyjnym:) /etc/logcheck/logcheck.conf. Spójrz na przykłady w innych plikach ignorowania, aby zobaczyć, jak uwzględnić tekst, który zmienia się cały czas, np. Identyfikatory procesu lub znaczniki czasu. Istnieje wiele istniejących przykładów do nauki.

Ostatnia wskazówka: logcheckzawiera przydatne narzędzie, logcheck-testktóre jest bardzo przydatne do testowania nowych reguł. man logcheck-testdla szczegółów.

arielf
źródło
Cześć, podoba mi się pomysł, który kryje się za logcheck ... czy możesz wskazać mi szczegółowy przewodnik po tym? Dzięki :)
irenicus09
1
@ irenicus09: Właśnie dodałem sekcję howto z opcjonalnym linkiem w celach informacyjnych.
arielf
Gratuluję wygranej, bardzo dobrze napisanej odpowiedzi człowieku. Dzięki :)
irenicus09
3

Jeśli nie masz wielu systemów w sieci, skonfigurowanie IDS, takiego jak Snort, jest prawdopodobnie przesadne (szczególnie jeśli nie masz żadnych usług sieciowych na swoim komputerze). Sugeruję zacząć od skonfigurowania logwatcha, aby wysyłał sobie raport o tym, co dzieje się w twoim systemie. Gdy to zrobisz, skonfiguruj swój dziennik systemowy, aby uzyskać jak najwięcej istotnych informacji.

AndrewX192
źródło
Witam, podoba mi się twoja odpowiedź ... ale czy mógłbyś podać trochę więcej szczegółów na temat tego, jak to zrobić. Zaniepokojenie konfiguracjami może być dość trudne, szczególnie dla niedoświadczonego użytkownika. Byłbym wdzięczny, gdybyś mógł wskazać mi szczegółowy przewodnik po tym. Dzięki.
irenicus09
@ irenicus09 Myślę, że to powinno wystarczyć: Jak skonfigurować Logwatch w systemach opartych na Ubuntu
AndrewX192 20.04.2013
dzięki za przewodnik, udało mi się skonfigurować logwatch i podoba mi się to. Dla monitora skanowania portów skonfigurowałem również portsentry i
wypróbuję
1

Wykrywanie włamań jest potrzebne na pewno podczas uruchamiania usług (ftp, web, nfs, ssh itp.) W sieci. Wynika to z faktu, że są one ujawniane w Internecie oraz z powodu:

  • brak konfiguracji
  • luki w oprogramowaniu

potrzebują codziennego monitorowania przez doświadczonego administratora sieci. Jeśli korzystasz z tych usług, prawdopodobnie masz już minimalną wiedzę, jak uniknąć tych problemów.

Jeśli nie uruchomisz żadnej z tych usług, oznacza to, że zapora routera internetowego już zablokowała jakiekolwiek połączenie przychodzące na portach. Aby przeskanować router sieciowy

Jeśli wszyscy jesteście zieleni, wszyscy jesteście dobrzy.

Last but not least, prawdopodobnie twój router ma wbudowany system wykrywania włamań (ponieważ 99% wszystkich routerów działa z rozłożonym serwerem linux). W tym celu należy sprawdzić instrukcję producenta routera.

Salih Emin
źródło
Witam, dziękuję za odpowiedź. Jest to dość wnikliwe i jestem świadomy wszystkiego, o czym mówisz. Ale chcę powiedzieć, że uruchamiam różne usługi w moim systemie, jak dokładnie śledzę działania z punktu widzenia bezpieczeństwa. Potrzebuję prostego, łatwego w użyciu rozwiązania jako użytkownik domowy i myślę, że
ominąłeś