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

386
b4d

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

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

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

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

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

0
Вы используете сплит-туннелирование? Или весь трафик клиента направляется на сервер VPN? Какими клиентами вы пользуетесь? ecdsa 5 лет назад 0
Весь трафик туннелируется через VPN-серверы при подключении клиента. Клиентами являются iOS и macOS. b4d 5 лет назад 0

1 ответ на вопрос

1
ecdsa

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

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

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

Спасибо за ответ, кажется логичным, я опробую его и сообщу о результатах. b4d 5 лет назад 0
Я сделал это, но клиент все еще использует вторую запись DNS в rightdns. Если я пытаюсь заставить VPN один "dig @ 192.168.8.1 что-то" это тайм-ауты. Я назначил IP для интерфейса обратной связи с помощью: «ip addr add 192.168.8.1 dev lo». Я считаю, что проблема с iptables, в настоящее время я принимаю все в цепочке вперед между 192.168.8.0/24 и всем остальным. Попытался заменить IP на 192.168.8.2/24, но iptables не примет изменения. Есть идеи, что еще я могу сделать? b4d 5 лет назад 0
Цепочка INPUT в этом случае актуальна (адрес назначения является локальным), а не FORWARD. ecdsa 5 лет назад 0
Хм, разве это правило не должно поймать его? ПРИНЯТЬ все - lo * 0.0.0.0/0 0.0.0.0/0 / * Loopback * / b4d 5 лет назад 0
Хорошо, это работает, используя LOG в iptables, я заметил, что пакеты отбрасываются. При добавлении правила все исправлено: ПРИНЯТЬ udp - * * 192.168.8.2/24 192.168.8.1 udp dpt: 53 / * DNS unbound over VPN * / Не забудьте добавить интерфейс в unbound.conf и разрешить контроль доступа. Спасибо экдса! b4d 5 лет назад 0
ОК, здорово, у тебя все получилось. ecdsa 5 лет назад 0