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).