Wdrażanie i Zarządzanie Serwerami Zabezpieczającymi (st. dzienne)

Materiały dotyczące wykładu publikowane będą na stronie mgr. inż. Łukasza Jopka.

Zajęcia

Zgodnie z Państwa prośbą, od trzeciego tygodnia zajęć laboratorium zostało przeniesione na termin: Środa, godz. 15:00 sala 311
  1. 07.X.2011 ??? zajęcia wprowadzające i organizacyjne: program przedmiotu, harmonogram semestru
    Mechanizm wirtualizacji VirtualBox, dystrybucja Debian GNU/Linux
    Wykorzystanie maszyn wirtualnych (VirtualBox), instalacja serwera Debian GNU/Linux jako maszyny wirtualnej

    VirtualBox - instalator dla MS Windows (powinien być już zainstalowany na komputerach w laboratorium)
    Obraz ISO płyty instalacyjnej Debian GNU/Linux (191MB)
  2. 14.X.2011 ??? podstawowe mechanizmy iptables (Instrukcja)
    podstawowe narzędzia konsolowe do zarządzania systemem oraz konfiguracją sieci w GNU/Linux;
    instalacja pakietów oprogramowania, zarządzanie usługami, konta użytkowników;
    iptables: dodawania, usuwanie, zamiana reguł; tworzenie i zarządzanie łańcuchami;
    blokowanie, przekazywanie i logowanie pakietów; filtrowanie ruchu sieciowego o określonych charakterystykach
  3. 19.X.2011 — realizacja Zadania 1
  4. 26.X.2011 — realizacja Zadania 1 cd.
  5. 9.XI.2011sprawdzenie Zadania 1
  6. 16.XI.2011 — Bezpieczeństwo serwerów sieciowych na poziomie systemu operacyjnego (Instrukcja (PDF)):
    Instalacja serwera WWW (Apache); uprawnienia procesów; prawa dostępu do plików i katalogów;
    izolacja procesów; mechanizm chroot; instalacja systemu w podkatalogu dla serwera WWW;
  7. 23.XI.2011 — realizacja Zadania 2
  8. 30.XI.2011 ??? zajęcia odwołane ze względu na Konferencję IT Academic Day 2011
  9. 7.XII.2011 ??? dzień dziekański
  10. 14.XII.2011 ??? sprawdzenie Zadania 2
  11. 21.XII.2011 ??? sprawdzenie Zadania 2

    — PRZERWA ŚWIĄTECZNA —

  12. 4.I.2012 ??? sprawdzenie Zadania 2 cd;
    podstawowe błędy w aplikacjach webowych: Cross-Site Scripting, SQL Injection, ...
  13. 11.I.2012 — realizacja Zadania 3
  14. 18.I.2012 — sprawdzenie zaległych zadań
  15. 25.I.2012 — sprawdzenie Zadania 3 // ostatni możliwy termin zaliczenia laboratorium

Materiały dodatkowe i odnośniki

Do testowania zapór sieciowych polecam wykorzystanie maszyn wirtualnych np. na VirtualBox.

Laboratorium prowadzone jest w oparciu o dystrybucję Debian GNU/Linux.

Polecam także dystrybucję Linuksa System Rescue CD (możliwy rozruch komputera z płyty CD lub z napędu USB).

Odnośniki dotyczące konfiguracji sieci pod Linuksem (ifconfig, iptables, ...):

Serwer Apache, bezpieczeństwo aplikacji webowych:
http://robert.nowotniak.com/pl/security/websecurity/

 

Przykładowe materiały z podstawami systemu operacyjnego GNU/Linux:

Inne odnośniki:

Zadanie 1

Zadanie polega na stworzeniu konfiguracji zapory sieciowej, opartej na iptables w systemie GNU/Linux. Końcowy projekt musi się składać ze skryptu (np. w powłoce systemowej bash), konfigurującego zaporę, oraz z krótkiej dokumentacji, opisującej znaczenie kolejnych fragmentów w skrypcie (może mieć formę minisprawozdania).

Skrypt powinien umożliwiać demonstrację działania konfiguracji zapory. Powinno być możliwe działanie skryptu bez interakcji z użytkownikiem oraz obsługa argumentów wywołania skryptu (np. do włączenia/wyłączenia zapory lub poszczególnych elementów dodatkowych w konfiguracji). W skrypcie mają się znaleźć polecenia podnoszące odpowiednie interfejsy sieciowe, ewentualnie przypisujące im adresy, uruchamiające ewentualne usługi pomocnicze, dodające wpisy w tablicy routingu, reguły iptables etc. W dokumentacji musi się znaleźć opis poszczególnych fragmentów skryptu oraz opis poszczególnych reguł konfiguracji zapory iptables. Nie dopuszcza się występowania w skrypcie wpisanych "na sztywno" adresów IP ani nazw interfejsów sieciowych (należy posłużyć się zmiennymi). Należy założyć, że dostępny jest interfejs sieciowy, prowadzący do sieci zewnętrznej (Internet) oraz (opcjonalnie) interfejs sieciowy sieci lokalnej.

Minimalne wymagania dla zapory (ocena 3):

  1. Host musi domyślnie odrzucać próby połączeń z sieci zewnętrznej z usługami pracującymi na hoście
    (próby połączeń mają być logowane)
  2. Akceptowane mają być połączenia na wybrane porty (zdefiniowane w zmiennej) hosta
    (np. z usługami WWW, FTP, PostgreSQL, DNS).
  3. Liczba nowych połączeń na wybrane porty musi podlegać ograniczeniu (np. 10 / minutę - zdefiniowane w zmiennej).
  4. Host ma nie odpowiadać na zapytania typu ping z sieci zewnętrznej (ale ma akceptować otrzymywanie odpowiedzi typu ping reply)
  5. Host musi akceptować przychodzące pakiety, należące do połączeń ustanowionych z sieci wewnętrznej lub z hosta
  6. Ruch na wybranych portach (TCP i UDP, zdefiniowanych w zmiennych) ma być przekierowywany na adres innego hosta w sieci.

Dla uzyskania jak najlepszej oceny, konfiguracja powinna być wzbogacona o dodatkowe aspekty.

Przykłady:

Oczekiwana jest możliwość prezentacji działania wszystkich zrealizowanych elementów konfiguracji w laboratorium (np. z wykorzystaniem maszyn wirtualnych lub z wykorzystanie hostów dostępnych przez Internet). W przypadku braku możliwości prezentacji danego elementu konfiguracji w laboratorium należy szczegółowo opisać i zilustrować działanie w dokumentacji (np. w postaci screenshotów).

Zadanie 2

Zadanie polega na wykonaniu bezpiecznej instalacji i konfiguracji serwera WWW (Apache).

Wymagany zakres wiedzy:

Wymagania na maksymalną ocenę:

Materiały pomocnicze: http://robert.nowotniak.com/pl/security/websecurity/

Zasady uzyskania zaliczenia

Wyniki

...