CMTS info

Helpful linux and DOCSIS/CMTS howtos and tips

Stawianie BINDa

1) Instalacja w systemie – Należy stosować najnowszą wersje Binda – mniej dziur

a. z paczki - stosownie do systemu operacyjnego
b. ze źródeł – standard (./configure , make , make install)

2) Konfiguracja prostego cachującego serwra DNS

Znajdujemy główny plik konfiguracyjny np. /etc/named.conf Zawartość powinna wyglądać podobnie:

/etc/named.conf

options {
        directory "/var/named";
};
zone "." {
        type hint;
        file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
        type master;
        file "named.local";
};

Widać tu 3 częsci: options – globalne opcje serwera oraz dwa wpisy zone - są to strefy, czyli pliki z domenami. W opcjach podany mamy tylko katalog gdzie pracować będzie bind, gdzie ma szukać plików stref itp. Pierwsza strefa służy do obsługi zapytań klientów. Gdy klient chce połączyć się np. z wp.pl to nasz serwer odpyta najpierw serwery głowne( z pliku named.ca) w poszukiwaniu serwera odpowiedzialnego za domeny pl itd. Domyślnie pozwalamy żeby odpytywał nas każdy, co może skońcyzć się atakiem dos. Druga strefa służy do zamiany Adresu pętli zwrotnej na adres domenowy. W większości przypadków zbędne – w pliku host istnieje wpis pełniący podobną rolę. Znacznik type wskazuje na typ domeny, zasadniczo domena powinna znajdować się na dwóch serwerach - master i slave. Serwer z strefą slave co jakiś czas pobiera strefe z serwera master.

Przykładowy plik named.ca

.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129 
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33

Przykładowy plik named.local

$TTL	86400
$ORIGIN localhost.
@			1D IN SOA	@ root (
					42		; serial (d. adams)
					3H		; refresh
					15M		; retry
					1W		; expiry
					1D )		; minimum

			1D IN NS	@
			1D IN A		127.0.0.1

Powyższe pliki są dostarczane w paczce z bindem, jeśli ich nie ma wystarczy wkleić te i serwer zadziała.

3) Nasza pierwsza domena: dla ułatwienia (autorowi ;-)) => example.org

W głównym pliku konfiguracyjnym dodajemy

zone "example.org" {
		type master;
		file "example.org";
		allow-transfer { XXX.XXX.XXX.XXX; };
		notify yes;
		allow-update { none; };
	};

Znaczy to tyle co (w kolejności):
-domena nazywa się example.org
-ten serwer jest serwerem głównym dla tej domeny
-plik ze strefą to: example.org (nazwa może być dowolna)
-pozwalamy na pobranie pliku strefy z serwera o IP XXX.XXX.XXX.XXX
-będziemy informować slawe’a o zmianie domeny.
-nie dajemy sobie zmieniać zawartości domeny

Przykładowy plik example.org

$TTL 72000
$ORIGIN elwico.pl.
@               IN        SOA  neja.elwico.pl. staff.elwico.pl. (
                2006112201
                3600
                3600
                2419200
                72000
                )
@	IN	NS	ns1.example.org.
@	IN	NS	ns2.example.org.
@       IN      MX      1 mail.example.org.
                        TXT "XXXXXXX"

@               IN      A       XXX.XXX.XXX.XXX
mail            IN      A       XXX.XXX.XXX.XXX
wwww           IN      CNAME   www.example.org.
www           IN      A       XXX.XXX.XXX.XXX

$TTL – wyznacza czas domyślny czas życia w sekundach $ORIGIN – domyslna nazwa domeny (jeśli nie podamy gdzieś pełnej nazwy – bez . na końcu) @ IN SOA ns1.example.org. root.example.org. - Start Of Authorit, email do administratora domeny (root@example.org) oraz głowny dns(ns1.example.org) w nawiasie {} kolejno: nr seryjny domeny - jak cos zmieniamy z strefie, warto to też zmienic , żeby slave pobral nową wersję. Refresh - jak często slavy sprawdzają czy jest nowa wersja strefy Retry – po jakim czasie pslave ma ponowić próbe sciągnięcia strefy Expire – po jakim czasie od zaniku łaćzności z amsterem slave przestanie podawać informacje o domenie Ttl – jak długo mają być cachowane informacje o naszej domenie na innych serwerach.

@	IN	NS	ns1.example.org.
@	IN	NS	ns2.example.org.
Kolejno primary i secondary DNS

@       IN      MX      1 mail.example.org.
Adres serwera pocztowego, liczba to priorytet danego serwera

TXT "XXXXXXX" – to ciąg spf dla naszej domeny

@               IN      A       XXX.XXX.XXX.XXX
wpisając example.org chcemy uzyskac adres XXX.XXX.XXX.XXX

mail            IN      A       XXX.XXX.XXX.XXX
podajemy adres serwera pocztowego

www           IN      A       XXX.XXX.XXX.XXX
ustawiamy adres www.example.org na XXX.XXX.XXX.XXX

wwww           IN      CNAME   www.example.org.
Ludzie którzy wpiszą wwww.example.org przejda do www.example.org

Tyle powinno wystarczyć żeby postawić nawet średniej wielkości domenę.

4) Nasza pierwsza domena - server zapasowy

Tutaj sprawa się upraszcza, wystarczy tylko w pliku konfiguracyjnym zapisać:

zone "example.org" {
		type slave;
		file "example.org";
		masters { XXX.XXX.XXX.XXX; };
	};

Jedyne o czym należy pamiętać to to, że bind musi mieć wtedy prawo zapisu do katalogu głownego. Można też podać inny katalog lub podkatalog z prawem zapisu.

5) Dodatkowe opcje

Forwarders{ XXX.XXX.XXX.XXX }; wskazuje serwery do których mamy słać zapytania jeśli nie znajdujemy odpowiedzi w strefach i cache’u. Version „”; pozwala ustawić odpowiedz serwera w polu wersji. logging { category lame-servers { null; }; jeśli w logu jest wpis o lame server to dodaj ten wpis. Dla dodatkowego zwiększenia bezpieczeństwa binda można uruchamiać jako inny użytkownik –u uid i/lub w chroocie. Pomimo tego bind i tak dropuje prawa w systemie.

Jeśli pojawiają się nam w logu błędy z rev DNS adresów lokalnych można dodać następujące (lub podobne) linie do pliku konfiguracyjnego:

zone "168.192.IN-ADDR.ARPA" {
    type master;
    file "empty";
};


Przykładowy plik empty:

@ 10800 IN SOA ns1.example.org. root.example.org. (
           1 3600 1200 604800 10800 )
@ 10800 IN NS ns1.example.org.

Template: designsbydarren.com on license
All trademarks belong to their respective owners. All materials presented here for informational purposes only.