Использование локального несвязанного 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-адреса клиента).