Konfiguracja stref DNS w LDAP

Przechowywanie informacji DNS w plikach często jest niewygodne, dość uciążliwe i trudne w administrowaniu, w szczególności gdy posiadamy wiele serwerów nazw. Dlatego też warto pomyśleć o przechowywaniu tych informacji w bazach danych. Jedną z nich jest LDAP, która daje nam szerokie możliwości, a co najważniejsze – w jednym miejscu możemy przechowywać dane o organizacji, wykorzystywane przez inne usługi, takie jak: dns, samba, dhcp czy też serwer poczty.

W tym artykule opiszę proces instalacji i konfiguracji serwera nazw (aktualnie BIND 9.4.3), który będzie korzystał z plików stref przechowywanych w katalogu LDAP.

W pierwszej kolejności musimy zainstalować BIND’a z obsługą LDAP. W tym celu skorzystamy z systemu portów.

cd /usr/ports/dns/bind9-sdb-ldap/
make install clean

edit: nowy port /usr/ports/dns/bind97-sdb

Zaznaczamy [X] REPLACE_BASE Replace base BIND with this version

Powyższy sposób zastąpi istniejącego BIND’a, jak również będzie używał standardowego katalogu konfiguracyjnego /etc/namedb.

Przejdźmy do konfiguracji serwera nazw. W tym celu musimy dodać do pliku named.conf konfiguracje strefy korzystającej z bazy LDAP. Standardowa konfiguracja strefy przechowywana w pliku tekstowym wygląda następująco:

zone "firma.local" {
type master;
file "master/firma.local";
notify yes;
};

Zamiast używania pliku do przechowywania informacji o strefie, wskażemy BIND’owi aby korzystał z bazy danych LDAP:

zone "firma.local" {
type master;
database "ldap ldap://127.0.0.1/ou=DNS,dc=firma,dc=bogus 172800";
};

Podczas wykonywania sprawdzenia, BIND dokona przeszukania w głąb (w dół) rozpoczynając od URL’a podanego w konfiguracji – w tym przypadku ou=DNS,dc=firma,dc=bogus. Liczba 172800 oznacza TTL i zostanie użyta przez wszystkie rekordy, które nie posiadają atrybutu dNSTTL.

Powyższy przykład spowoduje, ze named podłączy się anonimowo (w trybie read-only) do LDAP. Jeśli chcemy podłączyć się jako konkretny użytkownik musimy skonfigurować to w następujący sposób:

zone "firma.local" {
type master;
database "ldap ldap://127.0.0.1/ou=DNS,dc=firma,dc=bogus????! bindname=cn=admin%2cdc=firma%2cdc=bogus, !x-bindpw=secret 172800";
};

Nadszedł czas na przygotowanie LDAP. Do pliku konfiguracyjnego slapd.conf musimy dodać:

include /usr/local/etc/openldap/schema/dnszone.schema

Możemy również dodać index’y:

index relativeDomainName eq
index zoneName eq

Na sam koniec musimy wyłączyć demona slapd:

/usr/local/etc/rc.d/slapd stop

przeindexować bazy:

slapindex

i ponownie uruchomić LDAP:

/usr/local/etc/rc.d/slapd start.

Schemat dnszone.schema można pobrać ze strony:
http://www.venaas.no/ldap/bind-sdb/dnszone-schema.txt
Teraz pozostało nam dodanie rekordów do bazy. Poniżej znajduje się przykładowy wpis dla strefy firma.local w formacie LDIF:

dn: ou=DNS,dc=firma,dc=bogus
ou: DNS
objectClass: organizationalUnit
objectClass: top

dn: zoneName=firma.local,ou=DNS,dc=firma,dc=bogus
relativeDomainName: @
zoneName: firma.local
objectClass: dNSZone

dn: relativeDomainName=@,zoneName=firma.local,ou=DNS,dc=firma,dc=bogus
dNSClass: IN
dNSTTL: 3600
objectClass: dNSZone
objectClass: top
relativeDomainName: @
zoneName: firma.local
nSRecord: firma.local.
sOARecord: firma.local. hostmaster.firma.com.pl. 2011030601 3600 900
3600000 3600

dn: relativeDomainName=hosta,zoneName=firma.local,ou=DNS,dc=firma,dc=bogus
dNSClass: IN
dNSTTL: 3600
objectClass: dNSZone
objectClass: top
relativeDomainName: hosta
zoneName: firma.local
aRecord: 192.168.1.1

Aby dodać te rekordy do bazy musimy zapisać je do pliku np: dns.ldif i wydać polecenie:

ldapadd -D "cn=admin,dc=firma,dc=bogus"-W -f dns.ldif.

Jesteśmy już gotowi aby uruchomić i przetestować serwer DNS:

/etc/rc.d/named start

nslookup hosta.firma.local

Server: 127.0.0.1
Address: 127.0.0.1#53

Name: hosta.firma.local
Address: 192.168.1.1

Na sam koniec. Pamiętajcie, że zmieniając rekordy (dodanie, aktualizacja czy usunięcie) należy zmienić serial w rekordzie sOA. Jest to szczególnie ważne gdy posiadacie serwery slave.

0 Komentarzy
KiepskieTakie sobieMoże byćBardzo dobreŚwietny tekst (1 głosów, średnia: 5,00 na 5)
Loading...

Dodaj komentarz

Proszę pozostawić te dwa pola tak jak są: