FreeBSD 10 Bind

Опубликовано:
Начиная с FreeBSD 10, в базовый состав операционной системы не входит DNS-сервер и его нужно устанавливать из портов отдельно. Этим мы и займемся.
Настройка будет серверная, а потому наш named, как и положено на защищенном сервере, будет резвиться в песочнице и отдавать только свои зоны.

 

  • Использованные версии ПО:
    # uname -sr
    
    FreeBSD 10.0-STABLE
    
    # pkg info | grep bind
    bind99-9.9.5_12                BIND DNS suite with updated DNSSEC and DNS64
    
  • Установка
    # cd /usr/ports/dns/bin99
    # make install clean
    

    Настройки:

    [ ] DOCS            Build and/or install documentation
    [ ] FILTER_AAAA     Enable filtering of AAAA records
    [ ] FIXED_RRSET     Enable fixed rrset ordering
    [ ] GSSAPI          GSSAPI support
    [x] IDN             International Domain Names support
    [x] IPV6            IPv6 protocol support
    [x] LARGE_FILE      64-bit file support
    [ ] LINKS           Create conf file symlinks in /usr/local
    [ ] NEWSTATS        Enable alternate xml statistics channel format
    [ ] REPLACE_BASE    Replace base BIND (FreeBSD 9.x and earlier)
    [ ] RPZ_NSDNAME     Enable RPZ NSDNAME policy records
    [ ] RPZ_NSIP        Enable RPZ NSIP trigger rules
    [ ] RPZ_PATCH       RPZ improvements
    [ ] RRL             Response Rate Limiting
    [ ] SIGCHASE        dig/host/nslookup will do DNSSEC validation
    [x] SSL             Build with OpenSSL (Required for DNSSEC)
    [x] THREADS         Threading support
    ???????????????????????? Dynamically Loadable Zones ??????????????????????
    [ ] DLZ_POSTGRESQL  DLZ Postgres driver
    [ ] DLZ_MYSQL       DLZ MySQL driver (no threading)
    [ ] DLZ_BDB         DLZ BDB driver
    [ ] DLZ_LDAP        DLZ LDAP driver
    [ ] DLZ_FILESYSTEM  DLZ filesystem driver
    [ ] DLZ_STUB        DLZ stub driver
    
  • Настройка

    /etc/rc.conf:

    named_enable="YES"
    named_flags="-t /var/named"
    

    /var/named — это и есть наша песочница, где named будет жить

    Делаем песочницу, которая раньше делалась в FreeBSD автоматом

    # mkdir -p /var/named/usr/local/etc/
    # mkdir -p /var/named/var/dump
    # mkdir -p /var/named/var/run/named
    # mkdir -p /var/named/var/stats
    # mv /usr/local/etc/namedb /var/named/usr/local/etc/
    # cd /usr/local/etc
    # ln -s /var/named/usr/local/etc/namedb
    # cd /var/run
    # ln -s /var/named/var/run/named
    
    последнюю строчку возможно придется вбить после запуска named, если вдруг ругнется на отсутствие файла и не захочет делать ссылку.
  • Черновик

    /usr/local/etc/namedb/named.conf

    acl localnet { 192.168.0.0/22; 127.0.0.1;};.
    acl all { any; };
    options {
    // Запрет отдавать номер версии сервера.
       version none;
    // Запрет отдавать имя хоста, на котором работает BIND
       hostname none;
    // запрет отдавать запросы об идентификаторе
       server-id none;
    // Разрешаем по-умолчанию днс запросы только от доверенных сетей
       allow-query { localnet; };
    // Разрешать ли рекурсивные запросы, или отдавать только те зоны, которые держит сам сервак.
       recursion yes;
    // Посылка рекурсивных запросов
    // разрешена только клиентам подсети
       allow-recursion { localnet; };
    // Игнорировать запросы blackhole
    // DNS-сервер не посылает запросы к DNS-серверам из этого списка
    // и не отвечает на за­просы, получаемые от этих серверов.
       blackhole {
          0.0.0.0/8;
          10.0.0.0/8;
          169.254.0.0/16;
          172.16.0.0/12;
          192.0.2.0/24;
          192.168.0.0/16;
          224.0.0.0/4;
          240.0.0.0/4;
       };
    };
    
    allow-query: указывает список хостов, которым разрешено запрашивать все зоны name-сервера или конкретную зону внутри name-сервера.
    allow-recursion: указывает список хостов, которым разрешено создавать рекурсивные запросы к name-серверу для всех зон или для конкретной зоны, обслуживаемой name-сервером.
    allow-transfer: указывает список хостов, которым разрешено инициировать запросы зонной пересылки к name-серверу для всех зон или для конкретной зоны внутри name-сервера. Данное утверждение обязательно требуется в конфигурации первичного name-сервера.
    allow-update: указывает список хостов, которым разрешено инициировать запросы динамического обновления.
    allow-update-forwarding: указывает список хостов, которым разрешено перенаправление запросов динамического обновления (независимо от того, кто является источником запроса).
    allow-notify: указывает список хостов, с которых можно принимать сообщения DNS NOTIFY, говорящих об изменениях в зонном файле. Данный список относится только к конфигурации вторичного name-сервера.
    blackhole: указывает список хостов, которые входят в черный список (запрещен доступ) для инициализации любых транзакций с данным name-сервером.
    

Понравилась статья, расскажи о ней друзьям, нажми кнопку!