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…

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
(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk