Рубрики
Uncategorized

Поддерживать локальные домены для вашей частной сети

Я всегда хотел получить доступ к частным серверам (доступ только через VPN или SSH Tunnels) через … Помечено Linux, VPN, DNS, DNS.

Я всегда хотел получить доступ к частным серверам (доступ только через VPN или SSH-туннели) через домены, не проходя через хлопочие файлы локально модификации хостов в стороне клиента (ME и моих коллег) или файлы конфигурации SSH, поэтому вот моя попытка решить эту проблему.

Я использовал t3a.nano AWS EC2 экземпляра, чтобы продемонстрировать идею с Ubuntu 20.04 на нем, с помощью Openvpn. Как мой VPN-сервер и dnsmasq как DNS-сервер.

Я использовал dnsmasq вместо чего-то вроде Bind Потому что намного проще настроить и поддерживать.

Openvpn.

Это было сделано только для демонстрационной цели, поэтому быстро настроить сервер OpenVPN без боли Я использовал Angristan/openvpn-install Сценарий, чтобы сделать это.

curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh

chmod +x openvpn-install.sh

CLIENT= PORT_CHOICE=2 PORT=443 PROTOCOL_CHOICE=2 AUTO_INSTALL=y ./openvpn-install.sh

Это создаст профиль OpenVPP с именем, который вы выбрали в своем домашнем каталоге.

SystemD-решений

Для того, чтобы DNS-сервер, мы будем использовать, мы должны отключить SystemD-решений от прослушивания порта 53:

# /etc/systemd/resolved.conf

[Resolve]
DNSStubListener=no

dnsmasq.

apt install dnsmasq

Установите Localhost адреса как единственные именные серверы в /etc/resolv.conf Чтобы маршрутить все запросы DNS на наш DNS-сервер

# /etc/resolv.conf

nameserver ::1
nameserver 127.0.0.1
options trust-ad

Теперь для конфигурации DNSMASQ:

# /etc/dnsmasq.conf

no-resolv
local=/lan/
listen-address=::1,127.0.0.1,10.0.1.136
expand-hosts
domain=lan
cache-size=1000
server=8.8.8.8
server=8.8.4.4

Конфигурация DNSMASQ объяснила:

No-Resolv: не читайте /etc/resolv.conf.

Слушай-адрес: адреса, которые мы хотим прослушать связь. 10.0.1.136 Личный IP экземпляра EC2 DNSMASQ установлен в.

Домен и локальные: наш пользовательский домен вспомогательный

Развертывающие хосты: читать имена хостов из /etc/hosts и решить это как hostname.lan.

Кэш-размер: кэш 1000 DNS-запрос. По умолчанию 150.

Сервер: Если DNSMAMAQ не может разрешить запрос Вызов внешнего сервера

Чтобы добавить новый хост или домен в сеть, просто добавьте его в файл хостов:

# /etc/hosts

...
10.0.1.136 messi
10.0.1.136 salah
...

Проверьте нашу настройку

Теперь, чтобы проверить, работает ли наша конфигурация копать С моей клиентской машины, который подключен к моей частной сети через VPN, с доменами Messi.lan и Salah.lan.

Messi.lan.

# dig messi.lan
; <<>> DiG 9.16.8-Ubuntu <<>> messi.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56241
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;messi.lan.         IN  A

;; ANSWER SECTION:
messi.lan.      0   IN  A   10.0.1.136

;; Query time: 448 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; MSG SIZE  rcvd: 54

Salah.lan.

# dig salah.lan
; <<>> DiG 9.16.8-Ubuntu <<>> salah.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43569
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;salah.lan.         IN  A

;; ANSWER SECTION:
salah.lan.      0   IN  A   10.0.1.136
;; Query time: 384 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; MSG SIZE  rcvd: 54

Оба вернули наш IP-адрес сервера в разделе «Ответ». Это работает отлично.

Вы даже можете использовать любой веб-сервер (например, nginx), чтобы проверить настройку, указав разные имена серверов и запросите его с нашего клиентского компьютера.

Примечания

  • Вам может потребоваться настроить свой клиент OpenVPN, чтобы использовать адрес сервера DNS.

Сделать

  • Настройте OpenVPN для маршрута только внутреннего трафика через VPN
  • Кэшируйте DNS-запросы локально, чтобы улучшить производительность.

Оригинал: «https://dev.to/akhal3d96/maintain-local-domains-for-your-private-networks-47df»