Страница 1 из 1

Редирект DNS запросов.

Добавлено: 2017-05-19 19:14:28
Духовитин
Товарищи, привет!

Искал в инете, но ответа так и не нашёл.
Задача такая:
Есть шлюз на FreeBSD 11 amd64, и на шлюзе работает unbound. Я хочу чтобы все запросы из локалки на посторонние dns сервера заворачивались на этот unbound.

Нашёл в частности похожую тему у Лиссяры на форуме: ТУТ, но ответа там как я понял не содержится.

У меня вот конфиг текущий:
re0 192.168.0.1 - локалка
re1 a.b.c.d - интернет.

На алиасе локального интерфейса, на адресе 10.0.0.1 висит unbound.
И есть правила фаервола:

Код: Выделить всё

# Нат для раздачи интернета
${FW} nat 1 config log if ${extIF} unreg_only reset same_ports 

# Нат для перехвата DNS запросов на внутреннем интерфейсе
${FW} nat 2 config log if ${intIF} unreg_only reset same_ports \
        redirect_port   tcp     10.0.0.1:53 53 \
        redirect_port   udp     10.0.0.1:53 53

${FW} add nat 2 log all from any to not 10.0.0.1 53 via ${intIF}
${FW} add nat 2 log all from 10.0.0.1 53 to any via ${intIF}

${FW} add nat 1 ip from any to me in via ${extIF}
${FW} add nat 1 ip from ${intLAN} to any out via ${extIF}
В правилах вижу, что запросы на посторонние DNS сервера перекидываются на нат 2. Но т.к. в запросе целевой адрес не ${intIP}, то и проброса на 10.0.0.1 не происходит.
Подскажите пожалуйста, как такой перехват реализовать?

С помощью fwd 10.0.0.1,53 тоже не проходит по описанным всеми причине, что клиент отправивший DNS запрос получает ответ от другого адреса DNS нежели у которого запрашивал.

Отправлено спустя 1 минуту 14 секунд:
Если в качестве DNS сервера у клиентов указываю 192.168.0.1 или 10.0.0.1 то всё работает. Но надо чтобы принудительно заворачивал посторонние DNS запросы на внутренний сервер.

Редирект DNS запросов.

Добавлено: 2017-05-19 20:05:43
snorlov
У вас же локалка, зачем там давать ip других днс-серверов, если упадет фря, то и инета не будет и куда они пойдут...

Редирект DNS запросов.

Добавлено: 2017-05-19 20:12:27
Духовитин
В смысле зачем давать ip других?
Я не буду давать ip других. По DHCP всем раздаётся локальный dns, но вот малоли у кого на личном ноуте или телефоне или планшете стоит другой dns сервер.
Просто, хочу единой dns фильтрации и контроля за запросами внезависимости от того какой сервер прописан на компе пользователя. Там же и мобильники по wifi подключены, мало ли там прописан другой dns.

Редирект DNS запросов.

Добавлено: 2017-05-19 22:43:13
snorlov
Не думаю, что на мобильнике или ноуте или планшете будет прописан постоянный ip или dns, они все обычно всё берут с dhcp... Если это и случится, то у вас будет небывалый случай.., для него можно будет и попу приподнять... Я во всяком случае подобного не встречал и с кресла не вставал...

Редирект DNS запросов.

Добавлено: 2017-05-20 8:38:27
Духовитин
Т.е. советуете левые сервера просто запретить, а там уже у кого работать не будет разбираться почему не тот dns.

Редирект DNS запросов.

Добавлено: 2017-05-20 21:24:37
snorlov
Конечно, вдобавок вы за работе сети отвечаете.
P.S. вы алгоритм работы днс-сервисов почитайте, если очень хочется, чтобы левые днc'ы работали, пустите запросы к ним, т.е. запросы по порту 53, через еще один нат...

Редирект DNS запросов.

Добавлено: 2017-05-20 22:27:20
Духовитин
Ничего не понял из последнего поста.
Мне наоборот не хочется чтобы левые днс работами, и через какой ещё один нат туда пускать запросы? :)

Редирект DNS запросов.

Добавлено: 2017-05-21 10:01:41
snorlov
Духовитин писал(а):Ничего не понял из последнего поста.
Мне наоборот не хочется чтобы левые днс работами, и через какой ещё один нат туда пускать запросы? :)
Вы хотите, чтобы у клиентов с левыми настройками днс'а он, этот сервис, работал, при этом их запросы перенаправлялись к ващему днсу, так вот, для начала почитайте вообще про алгоритм работы этого сервиса, может после этого все вопросы и снимутся...

Редирект DNS запросов.

Добавлено: 2017-05-26 9:18:25
pimlab
После прочтения вашего сообщения, то же решил проверить что куда ходит мимо моего днс сервера (dnsmasq), так как режу рекламу подмиеной днс.
Обнаружил, что телефон жены постоянно проверяет google.com через 8.8.8.8 и 8.8.4.4 xотя все настройки по dhcp.
Завернул иx в pf на lo0

Код: Выделить всё

 rdr pass on $int_if inet proto {tcp udp} from ($int_if:network) to {8.8.8.8,8.8.4.4} port 53 -> lo0 port 53
 
и сначала не проверил, что без всяких дополнительныx натов, но это работает