Внутренний домен на OpenVPN с Dnsmasq

Вопрос или проблема

Я пытаюсь настроить работу dnsmaq и OpenVPN вместе на DigitalOcean. Я хочу создать VPN, который перенаправляет запросы, оканчивающиеся на *.local, на дроплет, а остальные разрешаются через Google DNS.

Это мой /etc/dnsmasq.conf:

address=/.local/10.8.0.1
resolv-file=/etc/resolv.dnsmasq
listen-address=127.0.0.1
listen-address=10.8.0.1
bind-interfaces
server=8.8.8.8
server=8.8.4.4

Это мой /etc/openvpn/server.conf:

dev tun
proto udp
port 1194
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
push "route 10.8.0.0 255.255.255.0"
push "dhcp-option DNS 10.8.0.1"
push "redirect-gateway def1 bypass-dhcp"
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

В данный момент я подключен к VPN, и он работает. Я могу открыть любой сайт, кроме тех, которые заканчиваются на *.local (получаю ERR_NAME_NOT_RESOLVED).

Изменение:

Это мой файл /etc/resolv.conf:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ ВРУЧНУЮ -- ВАШИ ИЗМЕНЕНИЯ БУДУТ ПЕРЕЗАПИСАНЫ
nameserver 2001:4860:4860::8844
nameserver 2001:4860:4860::8888
nameserver 8.8.8.8

После установки dnsmasq он был nameserver 127.0.0.1, но каждый раз, когда я перезапускаю сервер, он возвращается к тому, что выше.

После некоторого поиска я увидел, что не открыл порт DNS-сервера в брандмауэре. Это была проблема.

Ответ или решение

Настройка VPN-сервера с поддержкой разрешения внутренних доменных имен с использованием OpenVPN и Dnsmasq на DigitalOcean — это задача, которая требует внимательного подхода к конфигурации сетевых и DNS-сервисов. Рассмотрим ключевые элементы настройки и возможные улучшения для решения проблемы и повышения функциональности.

Фундаментальная настройка

1. Настройка dnsmasq

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

address=/.local/10.8.0.1
resolv-file=/etc/resolv.dnsmasq
listen-address=127.0.0.1
listen-address=10.8.0.1
bind-interfaces
server=8.8.8.8
server=8.8.4.4
  • address=/.local/10.8.0.1: Указывает dnsmasq, что все запросы доменов, заканчивающихся на .local, должны быть разрешены на IP 10.8.0.1, который является адресом внутри VPN.
  • resolv-file указывает на альтернативный файл, к которому dnsmasq обращается для получения информации о внешних DNS-серверах.

2. Настройка OpenVPN

Конфигурация вашего сервера /etc/openvpn/server.conf отвечает за VPN-соединение:

dev tun
proto udp
port 1194
...
push "dhcp-option DNS 10.8.0.1"
...
  • push "dhcp-option DNS 10.8.0.1": Этот параметр инструктирует клиентов использовать 10.8.0.1 в качестве DNS-сервера, что должно направлять запросы .local через ваш dnsmasq.

Проблема с разрешением имён

Неполадки с .local указывают на то, что dnsmasq не может корректно обрабатывать такие запросы. Обратите внимание на следующее:

  • Открытие доступных портов в брандмауэре: Убедитесь, что порт 53 (TCP и UDP) открыт для вашего dnsmasq.
  • Проверка серверной конфигурации: Убедитесь, что dnsmasq запущен корректно и его процессы работают.

Конфликты с resolvconf

Файл /etc/resolv.conf может постоянно перезаписываться, поскольку его обновляет служба resolvconf. Чтобы утвердить постоянное использование локального dnsmasq, настройте службу так, чтобы она делала следующее:

  • Настраивайте resolvconf для использования nameserver 127.0.0.1 через создание или редакцию скриптов в /etc/resolvconf/resolv.conf.d/.

Заключение

Важно последовательно проверить все элементы: конфигурацию VPN, dnsmasq, а также сетевые правила за пределами вашего сервера, такие как настройки межсетевого экрана. Эти компоненты помогут вам обеспечить корректное разрешение внутренних доменных имён в VPN-сети на DigitalOcean. Не забывайте проверять журналы системы для выявления любых потенциальных ошибок, которые могут указывать на дополнительные проблемы в конфигурации.

Оцените материал
Добавить комментарий

Капча загружается...