DNS сервер · 3 min read · Oct 02, 2025
Как установить быстрый и легковесный DNS-сервер MaraDNS на CentOS 7
MaraDNS — это маленький, бесплатный и легковесный сервер доменных имен. Это альтернативный открытый DNS-сервер, который действует как кэширующий, рекурсивный или авторитетный сервер имен. Его удивительно легко настроить, и он доступен для платформ Linux и Windows. Его можно скачать отсюда. Вы можете прочитать больше о DNS, рекурсивном DNS, авторитетном DNS здесь.
Ниже приведены некоторые интересные характеристики MarDNS:
- Легкость установки
- Низкое использование памяти (использует примерно 5 МБ ОЗУ)
- Может действовать как авторитетный сервер имен и рекурсивный сервер имен.
- Не забудьте, что документация на сайте MaraDNS очень проста для понимания.
Теперь давайте начнем с MaraDNS на CentOS 7. Ниже приведены шаги, которые помогут вам установить и настроить MaraDNS:
Установка 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.11sudo makesudo make installMaraDNS теперь установлен. Сервис 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 — это безопасный сервер доменных имен (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, x.x.x.x
Вторая строка chroot_dir указывает каталог, где будут храниться все файлы зон.
Третья строка инициализирует хеш csv2 с помощью команды csv2 = {}.
Четвертая строка указывает файл зоны с именем db.example.net для доменного имени example.net.
Вот файл зоны с именем db.example.net для доменного имени example.net, который говорит сам за себя:
example.net. +14400 soa ns1.example.net. [email protected]. 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, x.x.x.x. Вы можете настроить MaraDNS как рекурсивный сервер имен, добавив следующие строки в файл /etc/dwood3rc:
upstream_servers = {}
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Пересылка запросов на DNS-серверы GoogleПерезапустите сервис:
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" # Замените x.x.x.x на публичный адрес вашей машины./etc/dwood3rc:
bind_address="127.0.0.2, x.x.x.x" # Замените x.x.x.x на публичный адрес вашей машины.recursive_acl = “0.0.0.0/0” # Чтобы разрешить подключения откуда угодно.
Вы можете скачать эти образцы файлов отсюда. Не забудьте перезапустить сервисы еще раз.
Вот и все!
Get new posts in your inbox
No spam. Unsubscribe anytime.