Utwardzanie systemu SUSE Linux Enterprise Server Piotr Szewczuk Starszy konsultant pszewczuk@suse.com
O czym będziemy rozmawiać Podstawowe operacje przy instalacji / po instalacji systemu SUSE Linux Enterprise Server Usługi systemowe, aktualizacje systemu, kontrola uprawnień Zabezpieczanie usługi SSH, kontrola uprawnień Wykorzystanie mechanizmów Host-based Intrusion Detection System (HIDS) Zabezpieczanie systemu za pomocą AppArmor Audyt i monitorowanie 2
Utwardzanie systemu SLES Utwardzanie systemów Linux to proces ciągły Przy utwardzaniu należy stosować się do zaleceń, dobrych praktyk i zdrowego rozsądku Aktualizować czy nie aktualizować, oto jest pytanie! Pamiętajmy o rzeczach oczywistych np. firewall, nie używanie konta root Starajmy się stosować różne metody zabezpieczeń 3
Utwardzanie systemu SLES podstawy Zabezpieczamy pliki Kontrolujemy uprawnienia Izolujemy usługi Firewall Kontenery linuksowe (LXC) Wirtualizacja (KVM, XEN) 4
Dokumenty zanim zaczniemy pracę https://www.suse.com/documentation/sles11/book_security /data/book_security.html https://www.suse.com/documentation/sles11/book_hardeni ng/data/book_hardening.html https://www.pcisecuritystandards.org/security_standards/d ocuments.php http://www.sans.org/score/checklists/linuxchecklist.pdf 5
6 SUSE Linux Enterprise cykl życia produktu
Proces instalacji i konfiguracji poinstalacyjnej
Instalacja systemu SLES Układ partycji wydzielamy partycje pod kątem wielkości danych, LVM, BtrFS Wybór pakietów do instalacji instalujemy minimalną liczbę pakietów 8
SUSE Linux Enterprise Server aktualizacje https://www.suse.com/support/ 9
SUSE Linux Enterprise Server aktualizacje zypper ref; zypper lu; zypper up zypper lr yast2 wagon aktualizacja systemu do nowej wersji np. SLES 11 SP2 SLES 11 SP3 10
11 SUSE Linux Enterprise Server aktualizacje
12 YaST Security module
Usługi w systemie SLES yast2 runlevel 13
Usługi w systemie SLES cd. chkconfig l insserv r alsasound Sprawdzamy jakie usługi nasłuchują na portach sieciowych netstat tulp, nmap stu remote_host 14
15 YaST firewall
Bezpieczeństwo wewnętrzne
System plików Sprawdzanie plików i katalogów pod kątem możliwości zapisywania do nich przez wszystkich find / -perm -0002 -type f -print find / -perm -0002 -type d -print Sprawdzanie plików i katalogów pod kątem możliwości odczytu danych przez wszystkich find / -perm -0004 -type f -print find / -perm -0004 -type d -print 17
System plików cd. Sprawdzanie plików pod kątem bitów suid / sgid find / -perm +4000 -type f print find / -perm +2000 -type f -print 18
Utwardzanie haseł systemowych Poprzez odpowiednie moduły PAM mamy możliwość sterowania polityką haseł min. długość hasła, ilość cyfr oraz dużych i małych liter w haśle Domyślnie nie jest uruchomiona restrykcyjna polityka haseł!!! Konfiguracja edycja plików lub za pomocą polecenia pam-config np. pam-config cracklib-minlen=10 19
Bezpieczne zarządzanie SSH ssh-keygen -t dsa -b 1024 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_dsa. Your public key has been saved in /root/.ssh/id_dsa.pub. Aby przyśpieszyć logowanie za pomocą ssh należy wyłączyć rozwiązywanie nazw DNS w konfiguracji serwera ssh (na zdalnym serwerze) #vi /etc/sshd/sshd_config UseDNS no #rcsshd restart 20
Bezpieczne zarządzanie SSH Automatyczna propagacja kluczy ssh na serwer ssh-copy-id -i /root/.ssh/id_dsa.pub root@sles11-hae-node2 zaleca się, aby lokalnie też można było logować się za pomocą ssh: ssh-copy-id -i /root/.ssh/id_dsa.pub root@localhost Dodatkowe zabezpieczenia sshd #vi /etc/sshd/sshd_config Port 1234 PermitRootLogin no AllowUsers lokalnyadmin #rcsshd restart 21
Bezpieczne zarządzanie SUDO Sudo mechanizm nadawania praw do wykonywania programów, poleceń w systemie Linux Tworzymy konto lokalnego administratora np. lokadm i nadajemy mu prawa do wykonywania poleceń z prawami konta root visudo Cmnd_Alias BlokCmd = /usr/bin/passwd Lokalnyadmin ALL=ALL,!BlockCmd Wykonywany program należy poprzedzić poleceniem sudo np. sudo fdisk -l 22
Seccheck SUSE Security Checker Zestaw skryptów testujących zabezpieczenia lokalne Instalacja: zypper in seccheck Testy wykonywane są automatycznie za pomocą usługi cron: security-daily testy wykonywane codziennie security-weekly testy wykonywane tygodniowo security-monthly testy wykonywane raz na miesiąc Wynik testów przesyłany jest za pomocą poczty elektronicznej do lokalnej skrzynki użytkownika root 23
Zaawansowane zabezpieczanie
Host Intrusion Detection System aide AIDE program do sprawdzania integralności plików w systemie /etc/aide.conf plik konfiguracyjny aide i pierwsze uruchomienie Po utworzeniu bazy aide należy ją przenieść w bezpieczne miejsce Następnie cyklicznie sprawdzamy co zmieniło się w naszym systemie poleceniem: aide -check Aktualizacja bazy: aide --update 25
26 Host Intrusion Detection System aide
Host Intrusion Detection System rootkity chkrootkit, rkhunter narzędzia nie są dostępne standardowo w SLES 11. Można je zainstalować z dodatkowych kanałów na stronie http://software.opensuse.org 27
AppArmor Tworzy barierę ochronną wokół procesu systemowego Zabezpiecza przed błędami, które mogą skutkować wykonaniem nieuprawnionego kodu Łatwy w użyciu interfejs graficzny moduł YaST Załączone domyślne polisy dla serwerów usług Tworzenie nowych polis w ciągu godzin nie dni ;-) 28
AppArmor AppArmor wykorzystuje LSM (Linux Security Modules Framework) do przyznawania / zabraniania dostępu do zasobów systemowych Decyzja o dostępie jest podejmowania w obszarze jądra systemu, tak więc jest obligatoryjna i nie można stosować obejść przez aplikacje albo użytkowników 29
30 AppArmor schemat działania
AppArmor profile Profil opisuje co jest dozwolone Tworzenie profili: YaST, aa-genprof, vim 31
Składnia profili AppArmor #include możliwość korzystania z części innych profili Capability zgodność ze standardem POSIX Network Access Control definiuje dostęp do sieci po typie protokołu, typie datagramu Local Variable lokalne zmienne definiują skrócone ścieżki dostępowe File Access Control definiuje pliki do których aplikacje mogą mieć dostęp Możliwość korzystania z wyrażeń regularnych w regułach np. /lib/ld-*.so* 32
AppArmor przykład profilu (nscd) #include <tunables/global> /usr/sbin/nscd { #include <abstractions/base> #include <abstractions/consoles> #include <abstractions/nameservice> #include <abstractions/ssl_certs> capability net_bind_service, network inet dgram, network inet stream, /etc/netgroup r, /etc/nscd.conf r, /tmp/.winbindd/pipe rw, /usr/sbin/nscd rmix, 33
Audyt i monitorowanie Konfigurujemy systemowego demona logów tak, aby logi były przesyłane do centralnego serwera Monitorujemy na bieżąco logi systemowe Logrotate Logwatch Logger zapisujmy ważne informacje do logów Wykonujemy własne testy penetracyjne, np. za pomocą http://www.kali.org, http://www.openvas.org Wdrażamy rozwiązania klasy SIEM, np. NetIQ Sentinel 34
Zapraszamy do kontaktu z SUSE Infolinia handlowa 800 22 66 85 infolinia@suse.pl Polski dział pomocy technicznej 35
36 Promocja na wakacje w sklepie www.suse24.pl
Corporate Headquarters Maxfeldstrasse 5 90409 Nuremberg Germany +49 911 740 53 0 (Worldwide) www.suse.com Join us on: www.opensuse.org 37
Unpublished Work of SUSE LLC. All Rights Reserved. This work is an unpublished work and contains confidential, proprietary and trade secret information of SUSE LLC. Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for SUSE products remains at the sole discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All thirdparty trademarks are the property of their respective owners.