Архив рубрики: Публикации

Установка и примеры настройки Dnsmasq

Данная инструкция будет состоять из двух основных частей — установка программного обеспечения и примеры по его настройки под различные задачи. Мы рассмотрим примеры работы на системах Linux Ubuntu и Rocky Linux (CentOS).




Установка, настройка системы и запуск




1. Установка выполняется немного, по-разному, в зависимости от выбранного дистрибутива Linux. Рассмотрим примеры систем на базе Deb и RPM.




а) Для Debian / Ubuntu (Deb):




apt install dnsmasq




б) Для Rocky Linux / CentOS (RPM):




yum install dnsmasq




Установка завершена. 




После установки или старта сервиса мы можем увидеть ошибку:




failed to create listening socket for port 53: Address already in use




Как правило, она связана с тем, что на компьютере работает сервис systemd-resolved, который занял порт 53. Чтобы это исправить, отключаем его:




systemctl disable systemd-resolved --now




2. После установки разрешим автозапуск сервиса.




Вводим команду:




systemctl enable dnsmasq




Для систем на базе RPM также необходимо запустить сервис:




systemctl start dnsmasq




3. Настраиваем брандмауэр. Нам необходимо открыть UDP порт 53.




Как правило, используется 2 системы управления netfilter — iptables и firewalld. Рассмотрим обе.




а) При использовании iptables (как правило, для систем на базе Deb):




iptables -I INPUT -p udp --dport 53 -j ACCEPT




И сохраняем правило.




б) При использовании firewalld (как правило, для систем на базе RPM):




firewall-cmd --permanent --add-port=53/udp




firewall-cmd --reload




4. Проверяем работоспособность сервиса. На любом из компьютеров в сети делаем запрос при помощи nslookup:




nslookup dmosk.ru 192.168.0.15




* где 192.168.0.15 — адрес в сети нашего сервера, куда мы установили dnsmasq.




Мы должны получить ответ на подобие:




Server:        192.168.0.15
Address:    192.168.0.15#53

Non-authoritative answer:
Name:    dmosk.ru
Address: 92.53.96.18




Наш dnsmasq установлен и готов к дальнейшей настройке.




Примеры настройки dnsmasq




Переходим к основной части инструкции. Приведем примеры использования и соответствующей настройки dnsmasq.




1. Перевод запросов на другой DNS-сервер для определенного домена




Предположим, у нас есть задача — переводить все запросы для имен с доменом consul на другой DNS-сервер, который находится в нашей сети. Также, данный сервер слушает не на стандартном для NS-сервера порту (53), а на порту 8600. Кстати, это реальный пример работы при настройке кластера consul.




Создаем конфигурационный файл:




vi /etc/dnsmasq.d/consul




В него добавим одну строку:




server=/consul/127.0.0.1#8600




* в данном примере мы будем переводить все запросы для домена consul на сервер 127.0.0.1 (в этом примере локальный сервер, но может быть любой) и порт 8600.




Если мы работаем в системе с включенным SELinux и переводим запросы на нестандартный порт, то необходимо добавить правило:




semanage port -a -t dns_port_t -p tcp 8600




* где 8600 — порт, на который переводим запросы DNS.




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




systemctl restart dnsmasq




2. Настройка кэширования




По умолчанию, dnsmasq работает как кэширующий сервер. Мы же подредактируем настройки.




Создаем конфигурационный файл:




vi /etc/dnsmasq.d/cache




cache-size=10000
all-servers
no-negcache




* где:




  • cache-size — размер кэша (количество хостов).



  • all-servers — задает поведение, при котором наш сервер будет отправлять запрос всем доступным ему серверам DNS и принимать ответ от того, кто первый ему ответит.



  • no-negcache — не кэшировать негативные ответы.




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




systemctl restart dnsmasq




3. Подмена IP-адресов




Есть несколько вариантов подмены IP-адресов в dnsmasq. Для настройки создадим файл:




vi /etc/dnsmasq.d/replacement




В зависимости от ситуации, применяем один из вариантов, описанных ниже.




а) Подмена одного адреса:




alias=1.1.1.1,2.2.2.2




* в данном примере если наш сервер получит ответ 1.1.1.1, он его заменит на 2.2.2.2.




б) Подмена адресов в подсети:




alias=1.1.1.0,2.2.2.0,255.255.255.0




* в данном примере все адреса из подсети 1.1.1.0/24 будут заменены на соответствующие адреса подсети 2.2.2.2/24.




в) Диапазоны:




alias=1.1.1.100-1.1.1.200,192.168.0.0,255.255.255.0




* в данном примере адреса в диапазоне от 1.1.1.100 до 1.1.1.200 будут переопределены в адреса в диапазоне от 192.168.0.100 до 192.168.0.200.




После внесения необходимых строк, нужно перезагрузить сервис.




Выполняем команду:




systemctl restart dnsmasq




4. Произвольный адрес




Мы можем быстро добавить любой адрес и привязать его к доменному имени. Делается это с помощью директивы address:




vi /etc/dnsmasq.d/addresses




address=/dmosk.local/127.0.0.1
address=/dmosk.local/192.168.0.15
address=/mail.dmosk.local/192.168.0.16




* в нашем примере dnsmasq будет знать о двух записях — dmosk.local и mail.dmosk.local. Первая будет разрешаться в два адреса.




Выполняем команду:




systemctl restart dnsmasq




5. Форвард запросов на другой сервер




С помощью опции server мы можем указать серверы, на которые нужно передавать запрос DNS.




vi /etc/dnsmasq.d/forwards




server=8.8.8.8
server=8.8.4.4




* в данном примере мы передадим запросы на серверы Google.




Применяем настройку:




systemctl restart dnsmasq




6. Файл hosts




В зависимости от ситуации, нам может потребоваться разрешать некоторые имена с помощью файла /etc/hosts. Или наоборот — настройки из данного файла могут нам мешать.




В dnsmasq предусмотрена директива hosts, с помощью которой мы можем манипулировать результатами с использованием файла hosts.




vi /etc/dnsmasq.d/hosts




а) Если мы хотим, чтобы данные из файла учитывались:




hosts




б) Если нам не нужны данные из файла:




no-hosts




Применяем настройку:




systemctl restart dnsmasq




Это, далеко, не все возможности dnsmasq. По мере необходимости, они будут дополняться в данной инструкции.




Диагностика и решение проблем




По умолчанию, dnsmasq пишет не очень много логов. Чтобы это исправить, необходимо отредактировать конфигурацию. Для этого создаем файл:




vi /etc/dnsmasq.d/logs




log-queries
log-facility=/var/log/dnsmasq/dnsmasq.log




* где опция log-queries разрешает логи запросов; log-facility позволяет задать путь до файла с логами.




Создаем каталог для хранения лога:




mkdir /var/log/dnsmasq




Перезапускаем dnsmasq, чтобы применить изменения:




systemctl restart dnsmasq




Прочитать лог можно командой (непрерывное чтение):




tail -f /var/log/dnsmasq/dnsmasq.log

Источник: https://www.dmosk.ru/miniinstruktions.php?mini=dnsmasq



2023-08-15T21:21:17
Network

Как освободить место в разделе /boot в Ubuntu Linux

Появляется предупреждение о том, что в загрузочном разделе не осталось свободного места? Вот несколько способов освободить место на загрузочном разделе в Ubuntu Linux.

На днях мы получили предупреждение о том, что загрузочный раздел почти заполнен или в нем не осталось свободного места. Да, у нас есть отдельный загрузочный раздел, мы полагаем, не многие люди делают это в наши дни.

Это был первый раз, когда мы увидели такую ошибку, и это привело нас в замешательство. Существует несколько способов освободить место в Ubuntu (или дистрибутивах на основе Ubuntu), но не все из них полезны в данном случае. Читать

CMS для интернет-магазинов и маркетплейсов CS-Cart: эффективный инструмент для e-Commerce

В наше время электронная коммерция становится все более популярной и востребованной. Интернет-магазины и маркетплейсы привлекают все больше покупателей, и это не удивительно, ведь возможность быстро и удобно сделать покупку, не выходя из дома, является очень привлекательной для многих людей. Однако, чтобы успешно развиваться в этой сфере, необходимо иметь качественный и удобный интернет-магазин или маркетплейс. В этом поможет CMS для интернет-магазинов и маркетплейсов CS-Cart. Читать

Glibc 2.38 уже выпущен, и это его новости

Glibc

Glibc — это стандартная библиотека времени выполнения для языка GNU C.

После шести месяцев разработки se объявил о выпуске новой версии Glibc 2.38, версия, в которую внесены различные изменения, объявлены и удалены устаревшие функции, интегрированы улучшения безопасности и многое другое.

Тем, кто не знаком с Glibc, следует знать, что это такое. библиотека GNU C, обычно известная как glibc — это стандартная библиотека времени выполнения GNU C. В системах, где она используется, эта библиотека C, которая предоставляет и определяет системные вызовы и другие базовые функции, он используется почти всеми программами. 



Читать

Go 1.21 выходит с изменениями нумерации, улучшениями и многим другим

Голанд

Go — параллельный скомпилированный язык программирования со статической типизацией, вдохновленный синтаксисом C.

Вскоре после 6 месяцев запуска предыдущей версии переделывать популярного языка программирования Перейти 1.21 и в этой новой версии добавлены новые функции к языку, а также PGO, совместимость с предыдущими версиями и многое другое.

Для тех, кто не знает о Go, я должен сказать вам, что этоЭто язык программирования, разработанный Google. с участием сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими преимуществами скриптовых языков, как простота написания кода, скорость разработки и защита от ошибок.





Читать

Как включить или отключить проверку орфографии в Google Chrome

В этой статье объясняется, как включить или отключить проверку орфографии в Google Chrome.

Google Chrome — кроссплатформенный веб-браузер, разработанный Google. Он и Microsoft Edge используют одну и ту же кодовую базу. Они практически идентичны по основным функциям, используя действия просмотра, включая историю и другие данные просмотра, для предоставления персонализированной рекламы, поиска, покупок и новостей.

В браузере Chrome есть встроенная проверка орфографии, которая автоматически выделяет слова с ошибками при вводе текста на веб-страницах. Выберите правильное написание из списка, чтобы исправить ошибку.

В Google Chrome доступны два типа проверки орфографии:

  • Basic: Предлагает исправления для большинства слов с ошибками.
  • Улучшенный: использует ту же проверку орфографии, что и в поиске Google. Текст, который вы вводите в браузере, отправляется в Google.

Чтобы использовать проверку орфографии в Google Chrome, просто начните вводить текст в любом текстовом поле, например в строке поиска или в текстовом поле. Если вы ошиблись в слове, оно будет подчеркнуто красным. Щелкните правой кнопкой мыши слово с ошибкой, чтобы увидеть список предлагаемых исправлений.

Проверка орфографии должна быть включена в Chrome по умолчанию, но если она не работает, следуйте приведенным ниже инструкциям.

Читать