Назад | Перейти на главную страницу

iptables 'перезаписывают' запросы на определенный порт?

Хорошо, моя ситуация в основном такова ... У меня есть коробка, которая действует как маршрутизатор, с двумя интерфейсами, 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.

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

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