Wydrukuj dokumentację  Pokaż jako slajdy


Instalacja serwera DNS

Serwer DNS to pdostawowa usługa. W zależności od potrzeb jest możliwe zainstalowanie:

  1. bind - serwer autorytatywny oraz resolver (jednocześnie)
  2. unbound - resolver z możliwością wprowadzenia DNS Blackholing (patrz niżej)
  3. nsd - tylko autorytatywny serwer dla domen (bez funkcji resolvera)

Instalacja bind9.14

Za pomocą własnego repozytorium pakietów należy zainstalować named-a:

pkg install -Uy dns/bind914

Wpisy w /etc/rc.conf

named_chrootdir=""
named_enable="YES"
named_conf="/usr/local/etc/namedb/named.conf"
named_confdir="/usr/local/etc/namedb/"
named_uid="bind"

named_default_zone_to_reload="bsdserwis.com"
named_views="dmz internal external"

rndc_program=/usr/local/sbin/rndc

Dodatkowo można skorzystać z repozytorium skryptów w celu doinstalowania niezbędnych plików Makefile.

Ustawienie uprawnień do katalogów

Konfiguracja serwera bind jest w katalogu /usr/local/etc/namedb/. Jak widać powyżej serwer jest uruchamiany jako użytkownik bind. W związku z powyższym konieczne jest ustawienie odpowiednich uprawnień, aby bind był w stanie wystartować:

chown bind:bind /usr/local/etc/namedb/

# opcjonalnie na podstawie komunikatów z logów
chown bind:bind /usr/local/etc/namedb/*.jnl

Instalacja unbound

unbound jest serwerem DNS pełniącym jedynie funkcję resolvera. Posiada również możliwość wprowadzenia DNS Blackholing dla np. malware domains. unbound posiada możliwość sprawdzenia odpowiedzi DNSowych dla domen zabezpieczonych za pomocą DNSSEC

/!\ Sam unbound nie posiada w sobie narzędzi do obsługi DNS: host, dig, obsługi dnssec, etc. Dlatego trzeba doinstalować pakiet bind-tools.

pkg install -Uy dns/unbound dns/bind-tools

Konfiguracja serwera

(!) Główny plik konfiguracyjny unbound oraz pliki do lokalnego konfiguracji (local-*.conf) znajdują się w repozytorium skryptów. Wszystkie pliki konfiguracyjne posiadają odpowiednie komentarze pozwalające na uruchomienie serwera.

/etc/rc.conf

unbound_enable="YES"
unbound_pidfile="/var/run/unbound/unbound.pid"

Instalacja nsd

nsd to autorytatywny serwer DNS (bez resolvera). Więcej na jego temat na stronie domowej projektu. Analogicznie do unbound nie posiada narzędzi DNS (dns/bind-tools):

pkg install -Uy dns/nsd converters/base64

/etc/rc.conf

nsd_enable="YES"

/var/cron/tabs/nsd

(!) Plik instalowany z repozytorium skryptów:

# --- definicje zmiennych lokalnych ----------------------------------------
#
NULL=/dev/null
LOCAL_PREFIX=/usr/local
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log

#
#minute hour    mday    month   wday    command
#

# --- aktualizacja drzewa ports --------------------------------------------
#
43      07      *       *       *        /usr/local/bin/nsd_zone_write | /usr/bin/grep -v ok

# --- koniec crontaba ------------------------------------------------------

Konfiguracja serwera

(!) Główny plik konfiguracyjny nsd oraz pliki do lokalnego konfiguracji (local-*.conf) znajdują się w repozytorium skryptów. Wszystkie pliki konfiguracyjne posiadają odpowiednie komentarze pozwalające na uruchomienie serwera.

Poniżej podana jest konfiguracja serwera pełniącego rolę serwera master oraz slave - to zaczątek konfiguracji.

master DNS

# --- konfiguracja serwera NSD jako master-a ---------------------
#
server:
        ip-address: 192.168.1.200
        port: 53
        server-count: 1
        ip4-only: yes
        hide-version: yes
        identity: "unidentified server"
        username: bind
        ip-transparent: no
        debug-mode: no
        zonesdir: /usr/local/etc/nsd/master
        verbosity: 0
        zonelistfile: "/var/db/nsd/zone.list"
        database: "/var/db/nsd/nsd.db"
        logfile: "/var/log/nsd/nsd.log"
        pidfile: "/var/run/nsd/nsd.pid"
        xfrdfile: "/var/db/nsd/xfrd.state"
        xfrdir: "/tmp"
        # nsid: "aabbccdd"
        tcp-count: 100
        tcp-query-count: 0
        tcp-timeout: 120
        ipv4-edns-size: 4096
        # ipv6-edns-size: 4096
        statistics: 3600
        xfrd-reload-timeout: 1
        zonefiles-check: yes
        rrl-size: 1000000
        rrl-ratelimit: 200
        rrl-slip: 2
        rrl-ipv4-prefix-length: 24
        rrl-ipv6-prefix-length: 64

# Remote control config section.
remote-control:
        control-enable: yes
        control-interface: 127.0.0.1
        control-port: 8952
        server-key-file: "/usr/local/etc/nsd/nsd_server.key"
        server-cert-file: "/usr/local/etc/nsd/nsd_server.pem"
        control-key-file: "/usr/local/etc/nsd/nsd_control.key"
        control-cert-file: "/usr/local/etc/nsd/nsd_control.pem"

key:
        name: "sec_key"
        algorithm: hmac-sha256
        # dd if=/dev/random of=/dev/stdout count=1 bs=32 | base64
        secret: "fvv9fAUpd06CW9Tv+/NBheW7BGYFXI91Eeuipf+eYRM="

zone:
        name: wtps0n.local
        zonefile: wtps0n.local.cf
        # notify: __IP_SEC__@53 sec_key
        # provide-xfr: __IP_SEC__ sec_key
        # notify: __IP_SEC__@53 NOKEY
        # provide-xfr: __IP_SEC__ NOKEY

slave DNS

Ustawienia globalne mogą być wspólne jak dla master DNS, natomiast różnica będzie dla pliku strefy:

key:
        name: "sec_key"
        algorithm: hmac-sha256
        # dd if=/dev/random of=/dev/stdout count=1 bs=32 | base64
        secret: "fvv9fAUpd06CW9Tv+/NBheW7BGYFXI91Eeuipf+eYRM="

zone:
        name: wtps0n.local
        zonefile: wtps0n.local.cf
        # allow-notify: __IP_PRI__@53 sec_key
        # request-xfr:  AXFR __IP_SEC__ sec_key

Składnia plików stref

Zasadniczo jest to składnia jak w named-zie. Ale są drobne różnice:

Żródła w sieci internet

Inne dokumentacje


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.