Własny serwer DNS – to nie takie straszne ani trudne jak się wydaje

dodał 19 grudnia 2017 o 09:41 w kategorii Top  z tagami:
Własny serwer DNS – to nie takie straszne ani trudne jak się wydaje

Myśleliście o tym, by usługę DNS utrzymywać także samodzielnie, we własnej infrastrukturze? Gdybyście chcieli zainstalować i skonfigurować własny serwer DNS — oto krótki poradnik jak sobie poradzić z tym zagadnieniem.

Pamiętacie artykuł w którym wspominaliśmy o ataku MiTM gdzie atakujący uzyskał dostęp do wpisów DNS głównej domeny Fox-IT.com, utrzymywanych przez firmę trzecią? Ta historia mogła potoczyć się inaczej, gdyby Fox-IT podjął inne decyzje na temat tego, jaką część infrastruktury odda w ręce firm trzecich.

Artykuł pod patronatem Aruba Cloud

We współpracy z firmą ArubaCloud pokazaliśmy Wam, jak postawić swój serwer backupów, jak skonfigurować własny serwer VPN i podłączyć do niego komputer, telefony komórkowe oraz domowy ruter a także jak schować się przed cenzurą sieci i jak zacząć serwer zabezpieczać, jak postawić swój własny zdalny pulpitswój serwer WWWjak monitorować zmiany w plikachjak zablokować reklamy na komórce, jak skonfigurować bezpieczną kopię zapasowąjak zabezpieczyć logowanie do serwera za pomocą jednorazowych tokenów  lub za pomocą klucza Yubikey a także jak monitorować swoje systemy w dwóch odsłonach oraz jak postawić swój serwer Jabbera, jak synchronizować pliki a także jak logować zdarzenia systemowe.

Jeśli nie macie jeszcze swojego własnego serwera, to jest to dobra okazja by się w taki wyposażyć. Aruba oferuje dwa miesiące korzystania ze swojego podstawowego serwera gratis – a po zakończeniu promocji będzie on Was kosztował zaledwie 4 złote miesięcznie. Co więcej Aruba ma już serwerownię w Warszawie. Instrukcję jak krok po kroku skorzystać z promocji i uruchomić swój serwer znajdziecie w tym artykule. Jeśli macie już swój serwer – to zapraszamy do lektury kolejnych akapitów.

W artykule przedstawimy jak zainstalować usługę PowerDNS. Pliki stref będą przechowywane w bazie danych SQL. Zarządzanie plikami stref z poziomu interfejsu webowego umili nam (lub nie) PowerAdmin napisany w języku PHP. Aby wszystko zaczęło poprawnie działać będziemy potrzebowali serwera WWW (w tym przypadku Apache2, choć nie ma przeciwwskazań aby zainstalować i skonfigurować nginx’a), bazę danych MariaDB oraz przykładową domenę. Poniżej znajdziecie film z zapisanym przebiegiem całej konfiguracji, a pod nim także opis tekstowy.

pakiet bind

Na podstawie informacji CVE dla pakietu bind zgłoszono następującą liczbę błędów:

CVE dla BIND

Sytuacja z PowerDNS’em wygląda nastepująco:

Wniosek? Eksperci od bezpieczeństwa nie byli aż tak zainteresowani kodem źródłowym powerdns jak w przypadku bind’a ;-)

Instalujemy, konfigurujemy…

Zaczynamy od instalacji serwera SQL – MariaDB:

Zezwalamy na uruchomienie usługi MariaDB podczas startu systemu:

Uruchamiamy usługę MariaDB:

Wykonujemy obowiązkową konfigurację usługi MariaDB:

Instalujemy usługę PowerDNS wraz z obsługą bazy danych MySQL:

Zezwalamy na uruchomienie usługi PowerDNS podczas startu systemu:

Tworzymy użytkownika o loginie ‚pdns’ wraz z bazą o nazwie ‚pdnsdb’. Utworzonemu użytkownikowi nadajemy wszystkie możliwe uprawnienia dla utworzonej bazy.

Po utworzeniu dedykowanej bazy oraz utworzeniu nowego użytkownika, importujemy schemat bazy:

Konfiguracja PowerDNS:

Edytujemy plik /etc/pdns.pdns.conf:

Po zapoznaniu się z zawartością pliku, na jego końcu dopisujemy:

PowerDNS będzie przechowywał ustawienia domen w bazie danych SQL. Baza ta nie jest jedyną bazą, która jest obsługiwana przez PowerDNS. W repozytorium CentOS znajdują się następujące pakiety:

Po wprowadzeniu zmian restartujemy usługę PowerDNS:

Sprawdzamy czy usługa nasłuchuje na porcie 53/udp oraz 53/tcp:

Jeśli macie włączonego firewalla na serwerze, pamiętajcie o zezwoleniu ruchu na te porty.

Instalacja Apache2

Zainstalujemy wymagane moduły przez PowerAdmina. Dodatkowo zainstalujemy mod_ssl aby utworzyć odpowiedni certyfikat SSL/TLS.

Zielona kłódka

Jak wdrożyć automatycznie odnawiane, darmowe certyfikaty SSL od Let’s Encrypt

Instalujemy pakiet certbot:

Tworzymy plik /etc/httpd/conf.d/ssl_arubatest.conf:

Tworzymy katalog /var/log/httpd/arubatest.pl/ oraz uruchamiamy usługę httpd

Generujemy certyfikat SSL/TLS dla usługi Apache2:

Po pozyskaniu certyfikatu z Let’s Encrypt ponownie restartujemy usługę httpd w celu zastosowania zmian:

Jeśli chcecie zwiększyć bezpieczeństwo swojego serwera WWW opartego na oprogramowaniu Apache2, zapraszamy do poniższego artykułu gdzie zajmowaliśmy się tą tematyką:

Jak uruchomić swój własny serwer WWW w Aruba Cloud

PowerAdmin

PowerAdmin to jedno z narzędzi, które ułatwi administratorom zarządzanie poszczególnymi strefami w DNS. Narzędzie napisane jest w języku PHP więc będziemy potrzebowali interpretera skryptów PHP.

Po pobraniu i rozpakowaniu pliku, odwiedzamy katalog /poweradmin/install na serwerze.

PowerAdmin – krok 1/7

PowerAdmin – krok 2/7

PowerAdmin – krok 3/7

W polu Username podajemy nazwę użytkownika do bazy danych MySQL wraz z hasłem w polu Password. W polu Database podajemy nazwę bazy danych utworzonej w bazie MySQL. W ostatnim polu jakim jest Poweradmin administrator password definiujemy hasło dla użytkownika admin. Tym hasłem będziemy się posługiwać przy logowaniu się do PowerAdmina.

PowerAdmin – krok 4/7

W kroku 4. w polu Username definiujemy użytkownika w bazie MySQL dla interfejsu webowego oraz nadajemy hasło.

PowerAdmin – krok 5/7

PowerAdmin – krok 6/7

Instalator nie mógł wprowadzić zmian w pliku /var/www/html/poweradmin/inc/config.inc.php więc tworzymy plik wraz z zawartością na stronie:

PowerAdmin – krok 7/7

Po zakończeniu kreatora usuwamy katalog /var/www/html/poweradmin/install.

Opcja1: Ograniczamy dostęp do katalogu /poweradmin dla naszego adres IP z którego chcemy mieć dostęp:

Opcja 2: Tworzymy plik /var/www/html/poweradmin/.htaccess w którym ograniczamy dostęp do zasobu /poweradmin za pomocą kolejnego loginu i hasła:

Nadajemy odpowiednie uprawnienia dla pliku /etc/httpd/passwd w którym będziemy przetrzymywać hasła:

Generujemy użytkownika i hasło:

Opcja 3: Jeśli czujecie się na siłach, nie musicie korzystać z PowerAdmina.

Tworzymy strefę dla naszej domeny – na cele artykułu będzie to domena arubatest.pl:

Konfiguracja strefy dla domeny arubatest.pl

Pentest serwera DNS:

Do przeprowadzenia audytu bezpieczeństwa posłużymy się narzędziem DNSRecon.

Szybki test wykazał, że serwer DNS przedstawia się pełną wersją oprogramowania. Jak ukryć lub zmienić ten komunikat?

Zgodnie z instrukcją:

To wszystko! Skoro zapoznaliście się z naszą konfiguracją i hasłami – zachęcamy do testów – arubatest.pl ;-). Dla najefektywniejszego psotnika — nagroda!