iptables «переписывает» запросы на определенном порту?

iptables «переписывает» запросы на определенном порту?

Итак, моя ситуация в основном такова... У меня есть устройство, которое действует как маршрутизатор с 2 интерфейсами, eth0и eth1. eth1- это мой восходящий канал, то есть это интерфейс, через который устройство получает подключение к Интернету. eth0- это нисходящий канал, то есть это интерфейс, через который другое устройство / коммутатор / беспроводная точка доступа / что-то еще будет подключено.

Я хочу каким-то образом с помощью iptables сделать так, чтобы все запросы на порт 53 с любого адреса, исходящие с , eth0вместо этого отправлялись на DNS-сервер, работающий по адресу 127.0.0.1, и когда этот DNS-сервер отправляет ответ, машина, отправившая запрос, должна была бы думать, что ответ пришел с того адреса, на который они фактически отправили пакет.

Например, предположим, что есть подключенная машина, eth0настроенная на использование 8.8.8.8в качестве DNS-сервера. DNS-сервер машины маршрутизации имеет запись для example.comуказания на 192.0.2.1. Кто-то на машине, подключенной к, eth0запускает dig example.com @8.8.8.8. Они получают ответ, который КАЖЕТСЯ, что пришел от 8.8.8.8, но НА САМОМ ДЕЛЕ пришел от блока маршрутизации, и этот ответ говорит, что запись A для example.com — это 192.0.2.1.

Как я могу это сделать?

Обратите внимание, что это должно работать для ЛЮБОГО адреса DNS-сервера, а не только 8.8.8.8.

решение1

Для этого вам понадобится специальное программное обеспечение, и это считается Злом. Взлом Интернета путем проведения атаки «человек посередине» на трафик DNS — это именно то, для чего внедряются такие вещи, как DNSSec.

Если вы намерены искать, вы можете проверить результаты для "DNS Interception" и "Transparent DNS Proxy". Некоторые вещи, которые приходят на ум, это брандмауэры Barracuda, dnschefи, возможно, различные наборы веб-фильтров предлагают эту функцию.

Связанный контент