Zabezpieczenie systemów i usług sieciowych Laboratorium 2
Transkrypt
Zabezpieczenie systemów i usług sieciowych Laboratorium 2
Zabezpieczenie systemów i usług sieciowych Laboratorium 2 Przygotowanie środowiska do zajęć polega na instalacji pakietów openntpd, ntpdate, libapache2-mod-php, zabbix-server-pgsql, zabbix-frontend-php, zabbix-agent, php-pgsql, php-bcmath, php-mbstring, php-xmlwriter, php-xmlreader, auditd (patrz laboratorium 1) na swoim serwerze ćwiczeniowym. Pracując na serwerach ćwiczeniowych używamy konta root. Zadanie 1 Celem zadania jest ustawienie automatycznej synchronizacji czasu z serwerem wzorcowym. Dzięki tej operacji możliwe jest właściwe skorelowanie zdarzeń z logów pomiędzy kilkoma serwerami. Do synchronizacji zazwyczaj stosowany jest protokół ntp. Nasz serwer zyskał automatyczną synchronizację czasu w momencie instalacji pakietu opennntpd. Jednak program ten nie wykonuje skokowej synchronizacji czasu, minimalnie zwalnia on lub przyspiesza zegar komputera. W przypadku dużej rozbieżności zegara proces synchronizacji będzie długotrwały. Aby wykonać pierwsze skokowe nastawienie zegara wydajemy polecenie: ntpdate ntp.task.gda.pl. Aktualną datę i godzinę ustawioną w systemie możemy sprawdzić wydając polecenie date. Po wykonaniu zadania należy zgłosić się do prowadzącego w celu weryfikacji. Zadanie 2 Celem zadania jest uruchomienie na serwerze systemu monitoringu. Podczas przygotowania do ćwiczenia zainstalowaliśmy serwer zabbix, wymaga on jednak konfiguracji. Rozpoczynamy od dodania bazy danych oraz użytkownika bazy: - przełączamy się na użytkownika postgres: s u - postgres - dodajemy nowe konto bazy danych: createuser zabbix (“no” na wszystkie pytania jeśli się pojawią) - dodajemy nową bazę danych dla użytkownika: c reatedb -O zabbix zabbix - ustawiamy hasło użytkownika bazy: psql -c "ALTER ROLE zabbix PASSWORD 'zabbix'" Następnie wypełniamy bazę podstawowymi danymi: - schemat: zcat /usr/share/zabbix-server-pgsql/schema.sql.gz | psql -U zabbix -W -h 127.0.0.1 zabbix - obrazki: zcat /usr/share/zabbix-server-pgsql/images.sql.gz | psql -U zabbix -W -h 127.0.0.1 zabbix - dane: zcat /usr/share/zabbix-server-pgsql/data.sql.gz | psql -U zabbix -W -h 127.0.0.1 zabbix Teraz możemy zamknąć powłokę użytkownika postgres (Ctrl + D). Kolejnym krokiem jest wpisanie hasła do bazy danych w pliku konfiguracyjnym serwera: /etc/zabbix/zabbix_server.conf. Parametr zawierający hasło do bazy to: “DBPassword”. Możemy teraz uruchomić serwer zabbix: systemctl enable zabbix-server, a następnie systemctl start zabbix-server Kolejnym krokiem jest aktywacja panelu www zgromadzonych danych. Zaczynamy od ustawienia /etc/php/7.0/apache2/php.ini : - post_max_size = 16M - max_execution_time = 300 - max_input_time = 300 - date.timezone = 'Europe/Warsaw' który posłuży do parametrów php oglądania w pliku Następnie musimy ręcznie poprawić błąd w plikach php zabbixa. W tym celu edytujemy plik: /usr/share/zabbix/include/classes/setup/CFrontendSetup.php i zmieniamy w linii 75 operator porównania z '>=' na ‘<=’. Po zakończeniu edycji ustawień php zmieniamy parametr DocumentRoot naszego serwera www (plik: /etc/apache2/sites-enabled/000-default.conf) na /usr/share/zabbix. Po zakończeniu edycji restartujemy nasz serwer www i przechodzimy w przeglądarce do naszej strony ( http://localhost/ ). Dalej kończymy proces instalacji postępując zgodnie z instrukcjami na ekranie. Domyślne dane logowania do panelu www: Admin/zabbix Po zalogowaniu do panelu www wybieramy opcję ‘Configuration’ -> ‘Hosts’ i włączamy monitoring naszego serwera. Od teraz w zakładce monitoring możemy podglądać parametry pracy naszej maszyny wirtualnej. Po wykonaniu zadania należy zgłosić się do prowadzącego w celu weryfikacji. Zadanie 3 Celem zadania jest zapoznanie z podstawowym programem do wewnętrznego audytu systemu. Program audit po uruchomieniu rejestruje wszystkie istotne zdarzenia systemowe w pliku /var/log/audit/audit.log (może być skonfigurowany do wysyłania informacji na zdalny serwer). Przed uruchomieniem programu w pliku /etc/audit/auditd.conf ustawiamy opcję flush na SYNC oraz dopisujemy kilka reguł na końcu pliku /etc/audit/audit.rules : -a -w -w -w -w -w exit,always -S unlink -S rmdir /var/www -p wa /etc/group -p wa /etc/passwd -p wa /etc/shadow -p wa /etc/sudoers -p wa Aby uruchomić program wydajemy komendę systemctl restart auditd. Następnie aby zapisać jakieś logi instalujemy dowolny pakiet oprogramowania, np. ack-grep i wyświetlamy zawartość logu audytu poprzez cat /var/log/audit/a udit.log . Jakie informacje zawiera taki plik? Jak szybko przyrasta jego rozmiar? Oraz pytanie dodatkowe: Co robi program ack-grep ? Po wykonaniu zadania należy zgłosić się do prowadzącego w celu weryfikacji. Zadanie 4 Ponownie sprawdzić stronę serwera Zabbix i odnaleźć wykres “CPU Jumps”. Podać jaki wpływ na wydajność serwera ma parametr “Context switches” i do jakich wartości powinniśmy dążyć? Zadanie 5 Celem zadania jest zapoznanie się z podstawowymi narzędziami do analizy logów programu auditd. Narzędzia te to: ausearch oraz aureport . Pierwsze z nich pozwala na wygodne i szybkie przeszukiwanie często obszernych logów programu auditd. Uruchamiając je bez żadnych parametrów uzyskamy listę opcji dostępnych w programie. Zadanie: Proszę wyszukać wszystkie rekordy zawierające w polu komendy (comm) słowo dpkg. Narzędzie aureport pozwala na uzyskanie zbiorczego raportu na temat wszystkich zarejestrowanych zdarzeń. Jest to bardzo wygodne do automatycznej generacji zbiorczego raportu o stanie systemu. Zadanie: Wygenerować zbiorczy raport i przedstawić prowadzącemu w celu weryfikacji ( w przypadku zaliczenia zdalnego, proszę wkleić raport do treści listu).