Использование локального несвязанного DNS-сервера для Strongswan VPN-подключений

Идея: я хотел бы использовать несвязанный DNS, установленный на том же сервере, что и решение VPN, для блокировки рекламы и аналогичных нежелательных сайтов с DNS для всех подключений VPN.

В настоящее время unbound настроен для локальных запросов.

Как настроить Strongswan/ipsec для использования unbound в качестве DNS-сервера? Нужно ли открывать несвязанные с Интернетом или я могу каким-либо образом запрашивать DNS локально из VPN-подключения через сервер?

Заранее спасибо!

PS: Если вам нужна дополнительная информация о настройке, не стесняйтесь спрашивать.

1 ответ

Решение

Один из способов сделать это - назначить IP-адрес серверу из подсети, которую вы используете для виртуальных IP-адресов ваших клиентов. Затем вы назначаете своим клиентам этот IP-адрес в качестве DNS-сервера и исключаете IP-адрес из пула IP-адресов. При желании можно фильтровать доступ к этому IP-адресу через модуль сопоставления политик Netfilter (см. Справочную страницу iptables-extensions), чтобы он был доступен только через VPN.

Например, если ваш пул IP-адресов 192.168.8.0/24 (например, настроен в rightsourceip в ipsec.conf или в разделе "пул" в swanctl.conf) вы назначаете 192.168.8.1 на ваш сервер (на любом интерфейсе, например lo), а затем измените пул на 192.168.8.2/24 (поэтому первый адрес, назначенный клиенту, будет 192.168.8.2). Назначить 192.168.8.1 как DNS-сервер, настройте его в rightdns в ipsec.conf или в разделе пула в swanctl.conf.

Хотя вы также можете использовать общедоступный IP-адрес сервера и разрешить доступ к UDP-порту 53 только через VPN с использованием упомянутого соответствия политик, это не будет работать с клиентами Apple, поскольку они не отправляют пакеты на общедоступный IP-адрес сервера через VPN (таким образом, вам придется сделать DNS-сервер общедоступным или динамически добавить правила брандмауэра, которые разрешают доступ к нему с общедоступного IP-адреса клиента).

Другие вопросы по тегам