komputerowa Podstawy zabezpieczania serwera Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski komputerowa () Podstawy zabezpieczania serwera 1 / 17
Z oczywistych przyczyn... Pojawia się tu tylko niektóre rzeczy. A większość potraktujemy bardzo pobieżnie. komputerowa () Podstawy zabezpieczania serwera 2 / 17
Z oczywistych przyczyn... Pojawia się tu tylko niektóre rzeczy. A większość potraktujemy bardzo pobieżnie. komputerowa () Podstawy zabezpieczania serwera 2 / 17
Co zabezpieczamy? Bezpieczeństwo fizyczne komputera Użytkownicy lokalni Integralność systemu plików Pliki dziennika Bezpieczeństwo sieci komputerowa () Podstawy zabezpieczania serwera 3 / 17
Podstawy Bezpieczeństwo fizyczne komputera Zabezpieczanie przed kradzieża, zamki komputerowe, kamery wideo, itd. BIOS Możliwość startu z dyskietki lub CD Hasła do BIOS-u (standardowe hasła) Szyfrowanie całych partycji Program startujacy (bootloader) hasło Nie zostawiamy aktywnych konsoli: vlock, xlock komputerowa () Podstawy zabezpieczania serwera 4 / 17
Lokalni użytkownicy Podstawy Ogólna zasada minimalnych potrzebnych praw Ograniczanie skad moga się logować (podsłuchiwane hasła) Usuwanie nieaktywnych użytkowników Wymuszanie silnych haseł. Logowanie aktywności użytkowników (last, logowanie tego co robia process accounting) Łatki na jadro (np grsecurity) przykładowo: możliwość ogladania tylko swoich procesów uniemożliwienie wychodzenia poza swój katalog uniemożliwienie logowania na konto root przez su komputerowa () Podstawy zabezpieczania serwera 5 / 17
Podstawy Bezpieczeństwo konta root Często największym zagrożeniem jest sam administrator Konto root tylko do zadań administracyjnych. Przed wykonaniem destrukcyjnego polecenia wykonajmy je w niedestrukcyjny sposób: for i in *; do rm $i; done for i in *; do echo rm $i; done Program sudo komputerowa () Podstawy zabezpieczania serwera 6 / 17
System plików Podstawy Opcje montowania: nosuid, nodev, noexec Ograniczanie przestrzeni użytkownika quota Cykliczne wyszukiwanie: plików z bitami SetUid, SetGid, plików do których wszyscy moga zapisywać Sprawdzanie integralności systemu plików: montowanie partycji /usr w trybie read-only, używanie Tripwire. Wyrzucanie nieużywanego oprogramowania Konie trojańskie używać podpisanych pakietów Regularne kopie zapasowe komputerowa () Podstawy zabezpieczania serwera 7 / 17
Pliki dziennika Rejestrowanie zdarzeń do plików dziennika Większość aplikacji używa demona syslogd (wyjatek to na przykład Apache). Śledzenie nienaturalnych sytuacji, na przykład (prób) włamań Systemy IDS (Intrusion Detection System): Snort Włamywacz może wykasować logi, żeby zatrzeć ślady: logowanie na drukarkę albo na cdrom, logowanie na inny komputer komputerowa () Podstawy zabezpieczania serwera 8 / 17
Pliki dziennika Konfiguracja Syslogd W jednej regule określamy mechanizm ważność plik dziennika Przyklad kern.* auth,authpriv.* news.crit;daemon.debug *.emerg -/var/log/kern.log /var/log/auth.log -/var/log/demony /var/log/wazne Mechanizmy: auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog Ważność: debug, info, notice, warning, err, crit, alert, emerg komputerowa () Podstawy zabezpieczania serwera 9 / 17
Pliki dziennika Konfiguracja Syslogd W jednej regule określamy mechanizm ważność plik dziennika Przyklad kern.* auth,authpriv.* news.crit;daemon.debug *.emerg -/var/log/kern.log /var/log/auth.log -/var/log/demony /var/log/wazne Mechanizmy: auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog Ważność: debug, info, notice, warning, err, crit, alert, emerg komputerowa () Podstawy zabezpieczania serwera 9 / 17
Pliki dziennika Konfiguracja Syslogd, cd. Możliwe też sa modyfikatory: =: dokładnie ten poziom ważności (mail.=err) none: wyłaczenie (*.*;auth,authpriv.none) Zamiast pliku dziennika może wystapić @nazwa_komputera. Docelowy komputer musi nasłuchiwać na porcie 514. komputerowa () Podstawy zabezpieczania serwera 10 / 17
Sieć i usługi sieciowe Bezpieczeństwo sieci Autoryzacja i szyfrowanie Ogólnie: nie przesyłać krytycznych (a właściwie żadnych) informacji niezaszyfrowanych Używać PGP do szyfrowania wysyłanych wiadomości lub/i plików Zamieniać protokoły nieszyfrowane na zaszyfrowane (telnet ssh, http https), używać rozszerzeń typu SMTP AUTH, TLS dla poczty, ewentualnie tunelować Używać IPSec (szyfrowanie na poziomie protokołu IP) komputerowa () Podstawy zabezpieczania serwera 11 / 17
Sieć i usługi sieciowe Zabezpieczanie sieci Wyrzucić niepotrzebne usługi W potrzebnych usługach ograniczać uprawnienia ich działania Lepiej jeśli usługa działa z prawami użytkownika www-data niż root, a najlepiej jeśli działa z prawami nobody Klatki chroot Zdefiniować kto może korzystać z usług Udostępniać tylko konkretnym użytkownikom (uwierzytelnianie) Udostępniać tylko z konkretnych komputerów komputerowa () Podstawy zabezpieczania serwera 12 / 17
Sieć i usługi sieciowe Zabezpieczanie sieci Wyrzucić niepotrzebne usługi W potrzebnych usługach ograniczać uprawnienia ich działania Lepiej jeśli usługa działa z prawami użytkownika www-data niż root, a najlepiej jeśli działa z prawami nobody Klatki chroot Zdefiniować kto może korzystać z usług Udostępniać tylko konkretnym użytkownikom (uwierzytelnianie) Udostępniać tylko z konkretnych komputerów komputerowa () Podstawy zabezpieczania serwera 12 / 17
Sieć i usługi sieciowe Ograniczanie na podstawie adresu IP / nazwy domeny Zapory (firewall) poznamy je na kolejnych zajęciach rozwiazania wbudowane w jadro iptables ograniczaja dostęp na podstawie adresu IP klienta bardzo ogólne rozwiazanie, choć warto, żeby sieć była bezpieczna i przy wyłaczonej zaporze Ustawienia dla poszczególnych usług Czy usługa musi słuchać na wielu portach? Może zmienić domyślny port? (security by obscurity) Czy usługa musi słuchać na wszystkich interfejsach? Dla niektórych wystarczy lo, dla Samby wystarczy sieć lokalna, itd. Czy może przyjmować żadania z określonych komputerów? Narzędzia do badania właczonych portów netstat, nmap komputerowa () Podstawy zabezpieczania serwera 13 / 17
Sieć i usługi sieciowe Metaserver (x)inetd Demony moga działać samodzielnie lub za pośrednictwem metaserwera (inetd). nie wszystkie usługi daja się uruchomić z xinetd metaserwer: mniej miejsca w pamięci ale wolniejsze uruchamianie przykładowy plik /etc/xinetd.d/exim4 service smtp { socket_type = stream protocol = tcp wait = no user = mail server = /usr/sbin/exim4 server_args = -bs } Po zmianie pliku konfiguracyjnego demona exim4 nie trzeba go restartować komputerowa () Podstawy zabezpieczania serwera 14 / 17
Sieć i usługi sieciowe Metaserver (xinetd, cd. Można za jego pomoca rejestrować połaczenia: log_type log_on_success log_on_failure = SYSLOG authpriv = HOST = HOST Oraz przeprowadzać prosta weryfikację adresu klienta: Plik /etc/hosts.allow ALL:LOCAL ALL:komputer.pl sshd:192.168.10.0/24 sshd:192.168.11.0/24 EXCEPT 192.168.11.3 ALL:.domena.pl Plik /etc/hosts.deny ALL:ALL komputerowa () Podstawy zabezpieczania serwera 15 / 17
Na zakończenie: Często aktualizuj system. Specjalne repozytoria z poprawionymi (niekoniecznie najnowszymi) wersjami pakietów. Czytaj listy dyskusyjne o znalezionych lukach w bezpieczeństwie i sposobie naprawy. komputerowa () Podstawy zabezpieczania serwera 16 / 17
Literatura Literatura Kevin Fenzi, Dave Wreski Linux Security HOWTO http://www.tldp.org/howto/security-howto/ Hal Burgiss Security Quick-Start HOWTO for Linux http://www.tldp.org/howto/security-quickstart-howto/ komputerowa () Podstawy zabezpieczania serwera 17 / 17