Wytyczne bezpieczeństwa
1. Bezpieczeństwo fizyczne
- Dostęp do BIOS'u (Basic Input/Output System) serwera powinien być zabezpieczony hasłem.
- Możliwość uruchamiania systemu z urządzeń innych niż wewnętrzny dysk twardy (np. USB, CD-ROM, floppy drive) powinna być zablokowana.
- Bootloader systemu powinien być zabezpieczony hasłem (np. GRUB).
2. Bezpieczeństwo systemu operacyjnego Linux
- W systemie operacyjnym powinno być zainstalowane tylko niezbędne oprogramowanie wymagane do działania systemu.
- Niepotrzebne usługi powinny być wyłączone, a oprogramowanie odinstalowane (np. xserver, udostępnianie systemów plików NFS/SMB, narzędzia do kompilacji gcc/g++ itp.).
- Dla punktów montowań takich jak: /, /var, /var/log, /usr, /tmp, /home powinny być stworzone osobne systemy plików.
Systemy plików powinny być montowane z odpowiednimi opcjami (np. dla /tmp nodev,nosuid,noexec).
- System operacyjny powinien być na bieżąco aktualizowany (szczególnie dotyczy to aktualizacji bezpieczeństwa).
- Dostęp do Cron'a dla nieuprzywilejowanych użytkowników powinien być ograniczony (/etc/cron.allow, cron.deny).
- Wiadomość powitalna wyświetlana przy próbie logowania powinna jednoznacznie informować, że dostęp od serwera jest dozwolony tylko dla autoryzowanych osób.
3. Polityka haseł
- Hasła użytkowników systemu powinny być silne tzn. nie powinno być krótsze niż 10 znaków, zawierać duże i małe litery oraz cyfry i znaki specjalne.
Wymagania dotyczące haseł powinny być weryfikowane przez biblioteki takie jak libpam-cracklib i/lub libpam-pwquality.
- Hasła powinny być regularnie zmieniane (np. co 90 dni).
4. Zabezpieczenia sieci
4.1 Firewall
- Dostęp do serwera przez sieć powinien być zabezpieczony firewall'em.
- Usługa SSH powinna być dostępna tylko dla ograniczonej liczby adresów IP.
- Dostęp do HTTPS powinien być ograniczony dla wybranych prefiksów adresów IP (geolokalizacja adresów IP).
- Protokół IPv6 jeśli nie jest używany powinien być wyłączny.
- Przekazywanie pakietów między interfejsami sieciowymi powinno być wyłączone (IP forwarding).
4.2 Zdalny dostęp przez SSH
- Domyślny port 22 powinien być zmieniony na inny np. 2134.
- Logowanie jako użytkownik root powinno być zablokowane.
- Autentykacja powinna być dokonywana z użyciem pary kluczy (public/private).
- Usługa SSH powinna być zabezpieczona przed atakami typu brute-force (np. przez wykorzystanie aplikacji fail2ban).
5. Logowanie zdarzeń
- Informacje pochodzące ze standardowych źródeł powinny być rejestrowane za pomocą programu syslog.
Zalecane jest logowanie na zdalny serwer logów.
- Logi powinny być na bieżącą przeglądane w celu wykrycia potencjalnych problemów (logwatch, swatch).
- Zegar systemowy powinien być prawidłowo ustawiony (zalecane jest używanie protokołu NTP).
6. Kopie bezpieczeństwa
- Kopie baz danych powinny być robione za pomocą dedykowanych narzędzi.
- Kopie system operacyjnego powinny być robione na zdalne host lub zewnętrzne nośniki.
7. Dodatkowe zabezpieczenia
- System operacyjny powinien być zabezpieczony mechanizmami typu Mandatory Access Control (MAC) (np. AppArmor).
- Zalecane jest uszczelnienie słabych punktów systemu za pomocą narzędzi z pakietu Bastille Linux.
- Zaleca się dokonywanie testów integralności plików systemu za pomocą narzędzi takich jak AIDE, Tripwire.
- Komunikacja sieciowa serwera może być dodatkowo zabezpieczona za pomocą systemów IPS/IDS (np. Snort).
DeployerGuide/Security