Dziś kolejny wpis związany z zabezpieczaniem (m.in.) serwera działającego pod kontrolą systemu Linux (konkretnie Debian/Raspbian), niezależnie czy to będzie komputer stacjonarny, dedyk, Raspberry Pi czy VPS.
W ostatnich wpisach omówiłem zabezpieczenia związane z zaporą sieciową (firewall), czyli UFW i Fail2Ban – dziś pójdziemy w trochę innym kierunku, bo przedstawię 2 programy, które służą nie tyle przeciwdziałaniu, co wykrywaniu potencjalnie udanych ataków na nasz system…
Spis treści w artykule
Chkrootkit (Check Rootkit)
Chkrootkit jak sama nazwa wskazuje jest programem który skanuje system na obecność m.in. znanych mu rootkitów, koni trojańskich i złośliwych modułów jądra (LKM).
Duża zaletą może być to, że instalacja programu sprowadza się do jednej komendy:
sudo apt-get install chkrootkit
A sama konfiguracja to właściwie 3 linijki, których być może nie będziecie nawet zmieniać:
sudo nano /etc/chkrootkit.conf
W pliku tym domyślnie znajdziecie takie oto 3 linijki:
RUN_DAILY="false"
RUN_DAILY_OPTS="-q"
DIFF_MODE="false"
Pierwsza decyduje, czy ma być wykonywany codzienny automatyczny skan (proponuje zostawić „false”, o tym za chwilę), druga to opcje z jakimi uruchomi się program.
Trzecią można zmienić na „true” – będzie porównanie loga dzisiejszego z oczekiwanym (wcześniejszym).
Skanowanie
Sama obsługa jest równie prosta co instalacja i konfiguracja – by przeskanować system wystarczy skorzystać z polecenia:
sudo chkrootkit
Automatyczne skanowanie
Jeśli ktoś z Was chce by system był skanowany automatycznie, to zamiast korzystać z opcji w pliku konfiguracyjnym (co powoduje uruchomienie skryptu za pomocą funkcji cron.daily) lepiej skorzystać z systemowego CRONa i np. takiej komendy:
0 8 * * * root (/usr/sbin/chkrootkit 2>&1 | mail -s 'Chkrootkit @NazwaSerwera' [email protected])
Dzięki czemu oprócz tego, że sami wybieramy dokładną datę i godzinę skanowania, to jeszcze otrzymamy raport na podany adres e-mail.
Rkhunter (RootKit Hunter)
Kolejnym programem tego typu który często gości na moich serwerach jest Rkhunter, który realizuje dość podobne zadanie, z tym, że zazwyczaj nie uruchamiam go automatycznie „gdzieś w nocy” (choć na niektórych serwerach i tak się zdarza) ale podczas aktualizacji systemu:
sudo rkhunter --versioncheck
sudo rkhunter --update
sudo rkhunter --check -l --sk
read -p "[Enter] > Aktualizacja"
sudo aptitude update -y&& sudo aptitude upgrade -y && sudo aptitude dist-upgrade -y
read -p "[Enter] > Rkhuner --propupd"
sudo rkhunter --propupd
Dzięki czemu (przynajmniej w teorii) jestem w stanie wyłapać ew. zmiany w plikach systemowych, które pojawiły się między aktualizacjami, co normalnie nie zdarza się zbyt często.
Ale może od początku:
Instalacja i (podstawowa) konfiguracja
Program zainstalujecie korzystając – w systemie Debian/Ubuntu/Raspbian – z komendy:
sudo apt-get install rkhunter
I choć właściwie od razu jest gotowy do działania, to ja polecam jeszcze przyjrzeć się plikowi konfiguracyjnemu:
sudo nano /etc/rkhunter.conf
Znajdziecie tu m.in. takie pozycje jak adres do powiadomień w przypadku znalezienia potencjalnych problemów:
MAIL-ON-WARNING=me@mydomain root@mydomain
Komendę e-mail:
MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"
Jeśli w Waszym systemie użytkownik root może łączyć się po SSH warto zmienić na „yes”:
ALLOW_SSH_ROOT_USER=no
Lista wyjątków – warto tu dodać pliki (programy) które mogą zmieniać się częściej niż tylko przy aktualizacji:
SCRIPTWHITELIST=
Np.:
SCRIPTWHITELIST=/usr/bin/unhide.rb
Skanowanie ręczne i zaplanowane/automatyczne
Skanowanie możemy uruchomić ręcznie, np. za pomocą komendy:
sudo rkhunter -c -sk
Choć warto wcześniej zaktualizować bazę programu:
sudo rkhunter --versioncheck
sudo rkhunter --update
A jeśli od ostatniego skanowania coś zmieniło się w systemie, i jesteście pewni, że to jedyne zmiany, to możecie zaktualizować bazę danych programu o te zmiany (nie będzie alertu):
sudo rkhunter --propupd
Harmonogram
Oczywiście możecie ustawić również automatyczne uruchamianie za pomocą CRONa, wystarczy skorzystać z tych poleceń (oczywiście należy je odpowiednio na potrzeby CRONa dopasować, tzn, ustawić co i kiedy):
/usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update
/usr/local/bin/rkhunter --cronjob --report-warnings-only 2>&1 | /usr/bin/mail -s "RKhunter Raport" [email protected]
Unhide
Jeśli instalujecie programy nie tylko z repozytorium, ale również ze źródeł (jest duża szansa, że tak) to warto zainstalować również pakiet/program Unhide:
sudo apt-get install unhide
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01
ten caly rkhunter prawdopodobnie jedynie skanuje najwazniejsze zmiany w systemie, natomiast jesli chodzi juz o usuwanie wirusow – tego juz nie robi. Czy ktos zna konsolowy antivirus ktory automatycznie usowa zagrozenia?
Jeśli chcesz takiego typowego antywirusa, to chyba ClamAV. Do tego możesz ew dołożyć LMD i/lub Lynis. I wraz z bohaterami artykuły będzie to chyba komplet.
Bardzo dziękuję za wyjaśnienia i wskazówki.