Jak zapewnić bezpieczeństwo Państwa VPS: hardening, Lynis i harmonogram konserwacji
Artykuł Zabezpieczanie VPS: pierwsze pięć minut pozwala Państwu przygotować podstawy: aktualizacje, logowanie kluczem, zaporę sieciową i fail2ban. Serwer nigdy jednak nie jest skończony. Oprogramowanie się starzeje, certyfikaty wygasają, a dyski się zapełniają. W tym artykule dowiedzą się Państwo, jak krok po kroku dalej uszczelniać serwer (hardening), jak sprawdzić go za pomocą Lynis i jaki rytm konserwacji się sprawdza.
Cztery zasady
- Mała powierzchnia ataku. Czego nie ma, to nie może stanowić luki. Prosimy usunąć usługi i pakiety, których Państwo nie używają, i pozostawić otwarte z zewnątrz tylko te porty, które są naprawdę potrzebne. Zob. Które usługi nasłuchują na Państwa VPS i co jest dostępne z zewnątrz?
- Minimalne uprawnienia. Żadnej codziennej pracy jako root, usługi działające na własnym użytkowniku, nigdy
chmod 777. Zob. Odczytywanie i prawidłowe ustawianie uprawnień plików na VPS. - Obrona warstwowa. Należy założyć, że jedno zabezpieczenie zawiedzie. Baza danych, która nasłuchuje tylko na
127.0.0.1, znajduje się za zaporą sieciową i ma silne hasło, pozostaje bezpieczna, nawet jeśli jedno z tych trzech zabezpieczeń przestanie działać. - Wiedza o tym, co się dzieje. Logi, monitoring i kopie zapasowe. Bez tych trzech elementów zauważą Państwo problem dopiero wtedy, gdy będzie za późno.
CIS Benchmarks w skrócie
Center for Internet Security (CIS) opracowuje CIS Benchmarks: listy zalecanych ustawień dla poszczególnych produktów, również dla Debiana i Ubuntu. Dzielą się one na Level 1 (podstawowe środki bez większych wad, cel dla większości serwerów) i Level 2 (bardziej rygorystyczne, mogą ograniczać funkcje lub wydajność). Prosimy traktować je jako materiał referencyjny: zrozumieć zalecenie przed jego zastosowaniem, zmieniać jedną rzecz naraz i zapisywać, dlaczego świadomie czegoś Państwo nie wdrażają. Należy uważać na gotowe skrypty, które stosują „wszystko z CIS” za jednym razem: w ten sposób łatwo odciąć sobie dostęp.
Sprawdzanie za pomocą Lynis
Lynis to darmowy program open source, który sprawdza serwer od wewnątrz. Sam niczego nie zmienia, jedynie raportuje.
sudo apt install lynis sudo lynis audit system
Na AlmaLinux i Rocky Linux instalują go Państwo z EPEL poleceniem sudo dnf install lynis. Wynik należy czytać w następujący sposób:
- Warnings trzeba koniecznie przejrzeć, na przykład pakiety ze znanymi lukami (oznacza to, że czekają aktualizacje).
- Suggestions to porady. Wiele z nich jest przydatnych, niektóre nie pasują do Państwa serwera. Sugestia wyłączenia
AllowTcpForwardingprzerwie na przykład Państwa tunele SSH. Prosimy nie stosować ich bezrefleksyjnie. - Każdy komunikat ma kod w nawiasach kwadratowych, np.
[SSH-7408]. Dzięki niemu mogą Państwo sprawdzić w/var/log/lynis.log, co dokładnie zostało przetestowane. - Hardening index (liczba do 100) to drogowskaz, a nie wynik, za którym należy gonić.
Przed wprowadzeniem zmian na podstawie wyników Lynis prosimy wykonać snapshot, zob. Snapshoty i kopie zapasowe VPS, oraz wiedzieć, jak otworzyć konsolę, jeśli mimo wszystko odetną sobie Państwo dostęp.
Rytm konserwacji
Przykład dla małego serwera. Prosimy dostosować go do własnej sytuacji i wpisać terminy do kalendarza.
| Kiedy | Co |
|---|---|
| Co tydzień | Przegląd powiadomień z monitoringu; systemctl --failed; restart, jeśli istnieje /var/run/reboot-required |
| Co miesiąc | apt list --upgradable (czy coś nie utknęło?); aktualizacja kontenerów; miejsce na dysku; błędy w logach za pomocą journalctl -p err --since "1 month ago" |
| Co kwartał | Próbne przywrócenie kopii zapasowej; przegląd użytkowników i authorized_keys; ponowne uruchomienie Lynis |
| Co roku | Sprawdzenie daty końca wsparcia używanej wersji i zaplanowanie aktualizacji; aktualizacja pliku security.txt, jeśli go Państwo mają; aktualizacja dokumentacji serwera |
Pomoc w poszczególnych zadaniach: Aktualizacje i aktualizacje automatyczne, Monitoring z zewnątrz i od wewnątrz, Kopie zapasowe za pomocą restic w innej lokalizacji, Odbieranie dostępu SSH do VPS byłemu pracownikowi lub po utracie laptopa oraz Aktualizacja VPS do nowej wersji Debiana lub Ubuntu.
Dokumentacja serwera
Dla każdego serwera prosimy sporządzić krótki dokument i przechowywać go poza serwerem, na przykład w menedżerze haseł:
- nazwa, adresy IP, system operacyjny i data końca wsparcia tej wersji;
- co jest uruchomione (usługi, kontenery, strony internetowe) i które porty są w tym celu otwarte;
- gdzie znajdują się kopie zapasowe, jak je przywrócić i kiedy ostatnio to Państwo testowali;
- jakie sekrety są przechowywane na serwerze (nie same sekrety, lecz jakie to są i gdzie się je wymienia);
- kto ma dostęp i co świadomie zrobili Państwo inaczej niż w ustawieniach standardowych.
Taka dokumentacja pomaga podczas awarii, przy aktualizacji oraz wtedy, gdy administrowanie przejmuje ktoś inny.
timedatectl, czy zegar jest zsynchronizowany: przy nieprawidłowym czasie logi są bezużyteczne, a certyfikaty mogą zostać uznane za nieważne.Państwa VPS jest w pełni samodzielnie zarządzany: hardening i konserwację wewnątrz serwera wykonują Państwo sami. My pomagamy w części dotyczącej WebOké, takiej jak ekran VPS, sieć, snapshoty i codzienne kopie zapasowe.
Chcą Państwo dowiedzieć się więcej? Zapraszamy na bezpłatny kurs VPS i administrowanie serwerem Linux, lekcja 10.1 Hardening i zasady CIS lub lekcja 10.4 Kontrola końcowa: Państwa serwer pod lupą.
