Как установить быстрый и легкий DNS-сервер MaraDNS на CentOS 7
На этой странице
- Установка MaraDNS
- Настройка MaraDNS в качестве авторитетного сервера имен
- Настройка 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\ #Чтобы разрешить подключения откуда угодно.
Вы можете скачать эти образцы файлов отсюда. Не забудьте еще раз перезапустить службы.
Вот и все!