Поиск по сайту:

Как установить быстрый и легкий DNS-сервер MaraDNS на CentOS 7


На этой странице

  1. Установка MaraDNS
  2. Настройка MaraDNS в качестве авторитетного сервера имен
  3. Настройка MaraDNS в качестве рекурсивного сервера имен

MaraDNS — это небольшой, бесплатный и легкий сервер доменных имен. Это альтернативный DNS-сервер с открытым исходным кодом, который действует как кеширующий, рекурсивный или авторитетный сервер имен. Он удивительно прост в настройке и доступен для платформ Linux и Windows. Его можно скачать отсюда.

Ниже приведены некоторые интересные характеристики MarDNS:

  • Простота установки
  • Низкое использование памяти (используется около 5 МБ ОЗУ)
  • Может выступать в качестве авторитетного сервера имен и рекурсивного сервера имен.
  • Обратите внимание: документация на веб-сайте MaraDNS очень проста для понимания.

Давайте теперь начнем с MaraDNS на CentOS 7. Ниже приведены инструкции по установке и настройке MaraDNS:

Установка МараДНС

На данный момент нет доступных RPM-пакетов MaraDNS для CentOS 7, поэтому мы будем устанавливать и компилировать его из исходного кода.

Установите gcc:

sudo yum install gcc

Загрузите последний исходный архив отсюда. Вы можете сделать это как:

wget http://maradns.samiam.org/download/2.0/2.0.11/maradns-2.0.11.tar.bz2

Извлеките содержимое архива:

tar -xjf maradns-2.0.11.tar.bz2

Перейдите в извлеченный каталог MaraDNS, скомпилируйте и установите программы:

cd maradns-2.0.11
sudo make
sudo make install

Теперь MaraDNS установлен. Служба MaraDNS установлена в /etc/init.d/maradns. Вы можете просто запустить службу:

sudo /etc/init.d/maradns start

Чтобы запустить рекурсивный демон, запустите:

sudo /etc/init.d/maradns.deadwood start

По умолчанию полномочный сервер имен прослушивает порт 127.0.0.1, а рекурсивный — порт 127.0.0.2.

Убедитесь, что MaraDNS запущен при загрузке:

chkconfig maradns on


Сценарий инициализации рекурсивного DNS-сервера должен быть совместим с chkconfig, прежде чем вы сможете запускать его при запуске. Добавьте приведенный ниже контент в начало файла /etc/init.d/maradns.deadwood:

# chkconfig: - 55 45
# description: MaraDNS is secure Domain Name Server (DNS)
# probe: true

Установите его для запуска при загрузке:

chkconfig maradns.deadwood on

Настройка MaraDNS в качестве авторитетного сервера имен

Авторитетные DNS-серверы «знают» сопоставление URL-адреса с IP-адресом для любого заданного домена. Они являются источником информации, которую рекурсивные DNS-серверы отправляют веб-клиентам, таким как браузеры (Chrome, Firefox). Вы можете настроить MaraDNS в качестве авторитетного сервера имен. в качестве:

Отредактируйте файл конфигурации MaraDNS, например, /etc/mararc:

ipv4_bind_addresses = "127.0.0.1"
chroot_dir = "/etc/maradns"
csv2 = {} csv2["example.net."] = "db.example.net"

Первая строка указывает MaraDNS прослушивать IP-127.0.0.1. Вы можете добавить к нему больше IP-адресов, разделенных запятой. Например, 127.0.0.1, х.х.х.х.

Во второй строке chroot_dir указывается каталог, в котором будут храниться все файлы зоны.

Третья строка инициализирует хэш csv2 командой csv2={}.

В четвертой строке упоминается файл зоны с именем db.example.net для доменного имени example.net.

Вот файл зоны с именем db.example.net для доменного имени example.net, который говорит сам за себя:

example.net.      +14400    soa    ns1.example.net.  2012010117 14400 3600 604800 14400 ~ 
example.net.      +14400    ns     ns1.example.net. ~ 
example.net.      +14400    ns     ns2.example.net. ~ 
ns1.example.net.  +14400    a      127.0.0.1 ~ 
ns2.example.net.  +14400    a      127.0.0.1 ~ 
example.net.      +14400    a      127.0.0.1 ~ 
www.example.net.  +14400    a      127.0.0.1 ~ 
example.net.      +14400    mx     10 mail.example.net. ~
mail.example.net. +14400    a      127.0.0.1 ~

Вы начинаете со строки Start Of Authority (SOA). Затем вы указываете полномочные серверы имен и другие записи. Запись состоит из доменного имени, TTL (время жизни), типа записи и значения записи.
Следует отметить две вещи: все доменные имена заканчиваются точкой, т. е. они должны быть полностью определенными доменными именами, и все записи заканчиваются символом тильды (~). Чтобы узнать больше, ознакомьтесь с документацией по формату файлов зон.

Для простоты давайте просто укажем example.net на 127.0.0.1. Вот как вы это делаете:

example.net.    127.0.0.1 ~

Перезапустите службу как:

sudo /etc/init.d/maradns restart

Настройка MaraDNS в качестве рекурсивного сервера имен

Когда ваш веб-браузер отправляет DNS-запрос — при условии, что браузер еще не хранит сопоставление в своем кеше — он отправляется на рекурсивный DNS-сервер. Это также называется переадресацией DNS. По умолчанию он прослушивает порт 127.0.0.2, и вы можете добавить к нему дополнительные IP-адреса, разделенные запятой. Например, 127.0.0.2, х.х.х.х. Вы можете настроить MaraDNS как рекурсивный сервер имен, добавив следующие строки в файл /etc/dwood3rc:

upstream_servers = {}
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Forwarding requests to Google DNS Servers

Перезапустите службу как:

sudo /etc/init.d/maradns.deadwood restart

Вы закончили настройку сервера MaraDNS! :)

Совет. Если вы хотите, чтобы ваш сервер MaraDNS отвечал на внешние DNS-запросы, вам необходимо:

Добавьте общедоступный IP-адрес ваших машин в оба файла конфигурации (/etc/mararc и /etc/dwood3rc) и измените их следующим образом:

/etc/mararc:

ipv4_bind_addresses = "127.0.0.1, x.x.x.x" #Replace x.x.x.x with your machine's public address.

/etc/dwood3rc:

bind_address="127.0.0.2, x.x.x.x" #Replace x.x.x.x with your machine's public address.

recursive_acl=\0.0.0.0/0\ #Чтобы разрешить подключения откуда угодно.

Вы можете скачать эти образцы файлов отсюда. Не забудьте еще раз перезапустить службы.

Вот и все!