sobota, 17 lipca 2010

Instalacja bind'a na centOS'ie

Załóżmy, że chcesz zainstalować bind'a na CentOS'ie ale nie wiesz jakie wpisy powinny być w poszczególnych plikach konfiguracyjnych.

Istnieje możliwość oszukania wszystkich tych, którzy twierdzą, że trzeba do tego przeczytać przynajmniej jedną książkę i mnóstwo how to w Internecie. Założenia są następujące:
- jest jeden serwer na którym będzie działał serwer DNS, bez środowiska graficznego,
- mamy drugi komputer lub uruchomioną maszynę wirtualną z centOS'em ze środowiskiem graficznym.

Pomysł polega na tym aby na maszynie ze środowiskiem graficznym zainstalować bind'a za pomocą narzędzia system-config-bind i następnie zainstalować binda na serwerze bez środowiska graficznego i przekopiować odpowiednie pliki.

Rozpoczynamy od instalacji narzędzia graficznego do konfiguracji bind'a na komputerze ze środowiskiem graficznym (a pani z polskiego mówiła, żeby takie same wyrazy się nie powtarzały w jednym zdaniu ):
- yum install system-config-bind

Uruchamiamy narzędzie graficzne przez wprowadzenie w konsoli system-config-bind.
Tak w ogóle to właśnie instaluje tego centOS'a ze środowiskiem graficznym i traf chciał, że zapodałem yum update i jak by to powiedzieć it is taking forever.
Jest na etapie cleanup więc chyba nie będzie tak źle.

No i poszło wreszcie zaczynamy:
yum install system-config-bind

No i się po drodze okazało, że nie ustawiłem aby była komunikacja pomiędzy komputerem matką, a maszyną wirtualną.
Czyli jak zwykle bridge-adapter, trzeba było jeszcze usunąć podmonotowywanie pliku iso, bo mi się chciał centOS jeszcze raz instalować, a tego bym raczej nie przeżył.
Po domyślnej instalacji ze środowiskiem graficznym system wstaje w trybie tekstowym.
Polecenie znane wszystkim użytkownikom linuxa startx uruchamia system w trybie graficznym, alternatywnym wyjściem jest wpisanie init 5.

W celu sprawdzenia czy serwer działa poprawnie jako cache DNS (nie ma ustawionej żadnej strefy, tylko odpytujemy inne serwery) należy wprowadzić zmiany w /etc/resolv.conf.

Należy za komentować wszystkie tzw. nameservery i dodać nameserver 127.0.0.1 (czyli będziemy odpytywać siebie sami) i oczywiście wystartować bind'a /etc/init.d/named start
jak się pojawi ok, to wszystko działa (jeszcze działa).

Pingujemy lub korzystamy z polecania host -a lub dig nazwa_domeny, nie mamy takich informacji w konfiguracji serwera DNS więc serwer musi odezwać się do innych serwerów DNS - co mu się z powodzeniem udaje.

No to sprawdzamy czy faktycznie odpytuje mój i tylko mój działający serwer DNS, czy też korzysta z jakiegoś innego:

host -a wp.pl
Trying "wp.pl"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63008
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 3, ADDITIONAL: 2

;; QUESTION SECTION:
;wp.pl. IN ANY

;; ANSWER SECTION:
wp.pl. 3600 IN TXT "v=spf1 ip4:212.77.96.0/19 ip4:195.205.40.200/29 mx -all"
wp.pl. 3600 IN MX 5 mx5.wp.pl.
wp.pl. 3600 IN MX 0 mx.wp.pl.
wp.pl. 3600 IN SOA ns2.wp.pl. dnsmaster.wp-sa.pl. 2010070802 900 600 86400 3600
wp.pl. 3379 IN A 212.77.100.101
wp.pl. 3600 IN NS ns1.task.gda.pl.
wp.pl. 3600 IN NS ns2.wp.pl.
wp.pl. 3600 IN NS ns1.wp.pl.

;; AUTHORITY SECTION:
wp.pl. 3600 IN NS ns1.task.gda.pl.
wp.pl. 3600 IN NS ns2.wp.pl.
wp.pl. 3600 IN NS ns1.wp.pl.

;; ADDITIONAL SECTION:
mx.wp.pl. 3600 IN A 212.77.101.4
mx5.wp.pl. 3600 IN A 212.77.101.9

Received 335 bytes from 127.0.0.1#53 in 53 ms


Tak, wiem czytacie i czytacie, a tak naprawdę ważna jest tylko ostatni wiersz:
Received 335 bytes from 127.0.0.1#53 in 53 ms


uruchamianie nameda przy starcie systemu:
/sbin/chkconfig named on

Wąłczanie uruchamiania nameda przy starcie systemu:
/sbin/chkconfig named of


Po przekopiowaniu plików na maszynę bez środowiska graficznego niestety nie chciała się ona normalnie uruchomić, w /var/log/messages znalazłem następujące informacje:
- nieprawidłowe uprawnienia do pliku /etc/named.conf oraz /etc/rndc.key
Sprawdziłem więc jakie uprawnienia mają wskazane pliki na serwerze ze środowiskiem graficznym:
-rw-r--r-- 1 root root 1,3K kwi 28 2005 named.conf
-rw-r----- 1 root named 108 lip 12 23:57 rndc.key

Zmieniłem więc uprawnienia wskazanych plików, ale dalej named nie działał poprawnie.
Poprawiłem uprawnienia w katalogu /var/named na:
drwxrwx--- 2 named named 4,0K sty 20 17:33 data
-rw-r--r-- 1 root named 208 kwi 28 2005 localdomain.zone
-rw-r--r-- 1 root named 195 kwi 28 2005 localhost.zone
-rw-r--r-- 1 root named 427 kwi 28 2005 named.broadcast
-rw-r--r-- 1 root named 424 kwi 28 2005 named.ip6.local
-rw-r--r-- 1 root named 426 kwi 28 2005 named.local
-rw-r--r-- 1 root root 1,3K lip 12 23:57 named.root
-rw-r--r-- 1 root named 427 kwi 28 2005 named.zero
drwxr-xr-x 2 named named 4,0K lip 12 23:57 slave
drwxrwx--- 2 root named 4,0K sty 20 17:33 slaves


coś nie chciało pójść więc przeinstalowałem system (jak coś nie działa to albo debugujemy albo reinstall w wielu przypadkach reinstall jest rozwiązaniem szybszym):

Po reinstalacji centOS'a bez środowiska graficznego skopiowałem pliki przez tarowaniez zachowaniem uprawnień "tar -pcvf named.tar.gz named"
i rozpakowałem z zachowaniem uprawnień "tar -pxvf named.tar.gz"

Oprócz skopiowania na serwer katalogu /var/named trzeba również skopiować następujące pliki:
- /etc/named.conf
- /etc/rndc.key
- /etc/request-key.conf

Uruchomiłe serwer bind i przetestowałem działanie jeszcze raz i wszystko działa poprawnie nawet bez środowiska graficznego.
Więc jak chcecie zainstalować serwer DNS, to powyżej macie najłatwiejszą opcję jego konfiguracji.

W planach na przyszłość mam zainstalowanie serwera bind z wykorzystaniem chroot (większe bezpieczeństwo, nawet jak ktoś przejmie kontrolę nad bind'em to będzie uwięziony w jego katalogu).

Brak komentarzy:

Prześlij komentarz