Saturday, September 23rd, 2017

Автоматическая синхронизация файлов конфигурации master и slave DNS серверов

Published on Март 30, 2009 by   ·   Комментариев нет

Зачем это нужно?
best online casinos
Для одного из проектов мне потребовалось обеспечить автоматическое
распространение DNS зон, прописанных на master dns, slave серверам. Так
как зон ожидалось не больше 100-200 мне хотелось сделать максимально
простую, но в тоже время безопасную схему синхронизации серверов, без
использования LDAP или SQL в качестве backend. В итоге я решил задачу
используя shell скрипты, которыми решил поделиться с общественностью.
Всё нижеописанное работает на OS FreeBSD но должно без проблем работать
и в любой другой UNIX OS c BIND в роли DNS.

Как это работает

Все master зоны на primary dns лежат в отдельной директории
(/etc/namedb/master-auto) и названы в формате .db.

Например example.com.db, kernel.org.db и т.п. Это важный момент, так как
на этом основан алгоритм получения списка доменов (это проще и удобнее
чем читать named.conf). Используя протокол SSH клиенты (secondary
сервера) запрашивают у primary сервера список доменов и, в случае
различий с локальным списком, обновляют конфигурацию. Клиентов может
быть сколько угодно, обновление происходит по cron, например, раз в 10
минут. Для безопасного транспорта содержимого зон используется TSIG
протокол.

Конфигурация сервера

Как я уже писал выше, primary сервер должен по протоколу SSH отдавать
список обслуживаемых доменов. Для этого я завёл пользователя dnssync.
Shell данного пользователя будет специально созданный для данной цели sh
скрипт.

     # pw user add dnssync -s /home/dnssync/domainlist.sh

Пароль пользователю не нужен, так как для подключения будет
использоваться SSH ключ.

Теперь создадим сам скрипт:

   mkdir /home/dnssync; chmod 700 /home/dnssync;

vi /home/dnssync/domainlist.sh

        #!/bin/sh
         
          export COLUMNS=1
          # directory with <zone>.db files
          cd /etc/namedb/master-auto
          echo "DOMAINLIST_START"
          /bin/ls *.db|/usr/bin/sed &#039;s/\.db//&#039;
          echo "DOMAINLIST_END"

Корректируем права доступа:

       chmod +x /home/dnssync/domainlist.sh

Как видно из текста скрипта, всё что он делает — это получает список
файлов в директории, убирает суффикс .db и добавляет к выводу
DOMAINLIST_START перед листингом и DOMAINLIST_END в конце вывода. Для
проверки запустите /home/dnssync/domainlist.sh — должно быть что-то
вроде

       DOMAINLIST_START
          example.com
          kernel.org
          DOMAINLIST_END

Конфигурация клиента

Теперь перейдём к настройке secondary DNS. Для начала нам потребуется
настроить авторизацию по ключу для подключения к главному серверу. Если
ключ ещё не создан, запустим ssh-keygen, указав пустой passphrase. Нам
потребуется скопировать публичный ключ (по умолчанию
/root/.ssh/id_rsa.pub в FreeBSD) в список авторизованных ключей на
главном сервере (в файл /home/dnssync/.ssh/authorized_keys). В этом же
файле можно задать IP адрес владельца ключа для большей безопасности.
Чтобы убедиться, что всё работает, на клиенте введём ком

765qwerty765

































Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]