Państwowa Wyższa Szkoła Zawodowa w Elblągu Instytut Informatyki Stosowanej im. Krzysztofa Brzeskiego PRACA DYPLOMOWA INŻYNIERSKA Testowanie bezpieczeństwa i zabezpieczanie serwera SAMBA autor: Krzysztof Roman Hornicki praca wspólna z: Przemysław Matuszak opiekun pracy: mgr. Inż. Mariusz Bagiński konsultant merytoryczny:<tytuły, imię i nazwisko >
Spis treści 1. Wstęp 1.1 Cel pracy 1.2 Opis funkcjonalny Samby 1.3 Przegląd dokumentacji technicznej dotyczącej administracji serwerem SAMBA 1.4 Przegląd literatury dotyczącej testów penetracyjnych i metod zabezpieczeń 2. Przygotowanie środowiska testowego 2.1 Instalacja systemu Linux Kali 1.0.9a i386 narzędzia do przeprowadzania testów penetracyjnych 2.2 Instalacja systemu Linux Debian 7.7.0 środowisko dla oprogramowania Samba 2.2.1 Podstawowa konfiguracja systemu bind9 /etc/hosts /etc/network/interfaces /etc/fstab X.X.X Instalacja zależności 2.2.2 Kompilacja pakietu Samba ze źródeł 2.2.3 Konfiguracja Samby jako członka grupy roboczej /usr/local/samba/etc/smb.conf 2.2.4 Konfiguracja Samby jako kontroler domeny Active Directory /usr/local/samba/etc/smb.conf /etc/krb5.conf /etc/bind/named.conf 3. Przygotowanie skryptów do przeprowadzenia testów penetracyjnych 4. Przeprowadzenie testów penetracyjnych przy pomocy narzędzi Metasploit i OpenVAS 5. Zabezpieczenie rozważanych instalacji serwera Samba
1. Wstęp. W XXI wieku Informatyka stała się bardzo poważną dziedziną nauki. Świat w dobie cyfryzacji nie istniał by bez Informatyki, która zapewnia bardzo szybki i sprawny dostęp do informacji. Szukanie nowych rozwiązań przyczynia się do rozwoju nowych technologi co przyczynia się również do rozwoju naszej cywilizacji. Systemy operacyjne takie jak Linux i Microsoft zaczynają coraz bardziej ze sobą współpracować dzieląc się swoimi usługami np.: Samba czy AD (ang. Active Directory). Idące w tym kierunku działania sprzyjają w dużych korporacjach lepszą i bardziej efektywną współpracą oraz wprowadzają znaczne oszczędności. Rozwiązania takie upraszczają znacznie zarządzanie użytkownikami oraz wspóldzielonymi zasobami dyskowymi. Samba jest oprogramowanie typu Open Source (ang. otwarte źródło). Otwartość kodu źródłowego powoduje, że wokół takich projektów skupiają się środowiska programistyczne, które bezpłatnie i nieustannie pracują nad ulepszeniem kodu źródłowego aplikacji a co za tym idzie, poprawia się sprawność i nie zawodność tego typu oprogramowania. Dodatkowym atutem wolnego oprogramowania jest znacznie szybsza ewolucja niż w przypadku oprogramowania zamkniętego. Błędy wykryte podczas użytkowania otwartego oprogramowania są usuwane niemalże natychmiast, co ma ogromne znaczenie w dobie informatyzacji i cyfryzacji, poprawia bezpieczeństwo i zmniejsza koszty związane z eksploatacją aplikacji.
1.1. Cel pracy. Celem niniejszej pracy jest przetestowanie bezpieczeństwa i zabezpieczenie serwera Samba. Termin bezpieczeństwo należy rozumieć jako odporność na działania osób trzecich, które mają na celu zaburzenie normalnej pracy serwera Samba. Na tej płaszczyźnie mówimy o jakości kodu źródłowego aplikacji. Zabezpieczenie serwera Samba polega na konfiguracji aplikacji serwerowej jak również całego środowiska produkcyjnego, w którym działa aplikacja. Odpowiednia konfiguracja przyczynia się do poprawnego działania aplikacji w środowisku, przy optymalnym wykorzystaniu zasobów sprzętowych, a wszelkie działania użytkownika nie mają wpływu na działanie całości systemu informatycznego. Serwer Samba jako klasyczny serwer plików w grupie roboczej oraz jako kontroler domeny Active Directory zostanie zbadany pod kątem zabezpieczeń przez poddanie go testom penetracyjnym. 1.2. Opis funkcjonalny Samby. Samba to oprogramowanie umożliwiające łączenie hostów pracujących z systemami operacyjnymi Windows i Linux w spójną sieć. Hosty mogą pracować wspólnie z serwerem Samba w grupie roboczej. Daje to możliwości współdzielenia zasobów dyskowych między sobą. Użytkownicy w zależności od zdefiniowanych praw mogą posiadać dostęp do pewnych zasobów logicznych rozproszonych po sieci, lecz nie muszą posiadać wiedzy, gdzie fizycznie znajduję się dany zasób. Usługi drukowania w sieci również są współdzielone, dzięki czemu urządzenia drukujące mogę być udostępniane w taki sposób, aby obsługiwać dany fizyczny wycinek sieci (np. pokój, pięrtro). Oprócz centralnego zarządzania takimi urządzeniami, co znacznie ułatwia pracę działu informatycznego w przedsiębiorstwie, zmniejszają się również koszty związane z obsługą sprzętu poprzez ograniczenie ich ilości. Samba jako kontroler domeny Active Directory znacznie rozszerza możliwości pracy grupowej hostów przyłączonych do domeny, którą zarządza. Oprócz możliwości współdzielenia plików i drukarek między użytkownikami domeny, potrafi świadczyć inne usługi przydatne w sieci. Kontroler domeny potrafi przechowywać dane użytkowników służące do ich autoryzacji. Przechowuje również ich profile, dzięki czemu istnieje możliwość przygotowania dowolnego, zdalnego hosta do pracy wedle potrzeb użytkownika. Samba umożliwia indywidualną konfigurację sprzętową i programową maszyny zalogowanej do domeny, począwszy od wyłączenia obsługi CD i wykrywania pamięci masowych USB, aby np. uniemożliwić kradzież danych, po automatyczne mapowanie zasobów dyskowych, czyli podłączanie zdalnych dysków i katalogów. Dzięki takim mechanizmom w razie zajścia potrzeby istnieje możliwość współdzielenia aplikacji serwerowej między użytkownikami domeny. Samba pośrednio świadczy również takie usługi jak DHCP, DNS czy WINS. W zależności od potrzeb istnieje możliwość zdalnej konfiguracji adresów IP hostów i narzędzi, które służą do rozwiązywania nazw.
1.3 Przegląd dokumentacji technicznej dotyczącej administracji serwerem SAMBA Ponieważ serwer Samba to darmowe i niewątpliwie stabilne oprogramowanie istnieje wiele źródeł wiedzy na temat konfiguracji i wykorzystania jego potencjału. Książka Samba 4 przewodnik administratora, usługi katalogowe na zawołanie autora Marcelo Leal (wydanie 2014) to obszerny zasób gotowych konfiguracji i przykładów. Książka wyjaśnia minimum aspektów związanych z teorią funkcjonowania serwera Samba i jego komponentów, lecz w dosyć przyswajalny sposób przedstawia konfigurację konkretnych funkcji. Z pewnością nie jest przeznaczona dla użytkowników, którzy zaczynają swoją przygodę z kontrolerem domeny. Witryna http://www.samba.org/samba/docs/man/samba-howto-collection/ to oficjalna strona projektu Samba z dużym zbiorem gotowych, typowych konfiguracji. Zawiera również obszerną dokumentację techniczną nie tylko dla użytkownika, ale również dla programisty. Witryna http://www.samba.org.pl/ to prywatny blog Zbyszka Górki poświęcony Sambie pracującej w roli kontrolera domeny. Zawiera wiele przydatnych informacji dotyczących konfiguracji poszczególnych usług. Przeznaczona dla użytkowników bardziej zaawansowanych, prowadzona w języku polskim.
1.4 Przegląd literatury dotyczącej testów penetracyjnych i metod zabezpieczeń Książka Metasploit przewodnik po testach penetracyjnych autorzy: David Kennedy, Lim O'Gorman, David Kearns, Mati Aharoni to zbiór gotowych skryptów i informacje pomocne przy wykonywaniu testów penetracyjnych związanych z bezpieczeństwem usług sieciowych Witryny http://www.metasploit.com/ ; http://www.exploit-db.com/ ; http://www.rapid7.com/ to strony poświęcone testom penetracyjnym, wskazówki dotyczące sposobu przeprowadzania testów i gotowe skrypty analizujące bezpieczeństwo.
2. Przygotowanie środowiska testowego. 2.1 Instalacja systemu Linux Kali 1.0.9a i386 narzędzia do przeprowadzania testów
2.2. Instalacja systemu Linux Debian 7.7.0 środowisko dla oprogramowania Samba.
2.2.1 Podstawowa konfiguracja systemu bind9 /etc/hosts /etc/network/interfaces /etc/fstab X.X.X Instalacja zależności 2.2.2 Kompilacja pakietu Samba ze źródeł Samba dostarczana wraz z dystrybucją Debiana 7.7.0 jest w wersji 3, nieobsługującej funkcję kontrolera domeny Active Directory. Na potrzeby tej pracy ze strony projektu Samba.org została pobrana i skompilowana werjsa 4.1.14. Należy pobrać ze strony http://samba.org plik samba-4.1.14.tar.gz i rozpakować jego zawartość najlepiej do katalogu /usr/src/samba. Można to wykonać w powłoce poleceniami: cd /usr/src wget https://download.samba.org/pub/samba/samba-4.1.14.tar.gz tar -cvvf samba-4.1.14.tar.gz 2.2.3 Konfiguracja Samby jako członka grupy roboczej 2.2.4 Konfiguracja Samby jako kontroler domeny Active Directory