Блокировка внутренних IP-адресов с помощью dnsmasq.conf

Блокировка внутренних IP-адресов с помощью dnsmasq.conf

Чтобы заблокировать WAN-сайты, можно сделать что-то вроде этого в файле conf:

address=/verystrangesite.com/127.0.0.1

Так что если пользователь попытается сделать что-то не очень смешное в моей гостевой локальной сети, он получит ошибку ERR_CONNECTION_REFUSED.

К сожалению, это не работает для внутренних сайтов (маршрутизаторов, шлюзов, hwfw, ip cam), по крайней мере, если они доступны только по IP (не знаю, сработало бы это, если бы у меня было что-то вроде my-ip.com вместо 172.16.1.54). То, что я попробовал, выглядит так:

address=/172.16.1.2/127.0.0.1

Итак, знаете ли вы правильный синтаксис, чтобы добиться этого?

заранее спасибо

Тобиас

решение1

Правильного синтаксиса для достижения этой цели не существует.

dnsmasq — это всего лишь DNS-сервер — онненаходится в середине всего сетевого трафика, он просто отвечает на запросы DNS и транслирует доменные имена в IP-адреса. Ваши примеры dnsmasq неблокироватьсайты, они просто подделывают результаты DNS-запроса (и только если клиент вообще использует ваш DNS).

Клиенты пытаются получить доступ к веб-сайту напрямую по IP-адресуне использоватьDNS для его разрешения в первую очередь – адрес уже был «предопределен», так сказать. Поэтому естьнетКонфигурация dnsmasq, которая может повлиять на такие соединения.

Вместо этого, чтобы заблокировать произвольные хосты по IP-адресу, сделайте это в настройках маршрутизатора.брандмауэр(Linux iptables/nft/ferm, BSD pf). Чтобы сгенерировать сообщение об ошибке «подключение отклонено», добавьте правило брандмауэра, которое будет «отклонять» подключение:

iptables -I FORWARD [...] -d 172.16.1.2 -p tcp -j REJECT --reject-with tcp-reset
iptables -I FORWARD [...] -d 172.16.1.2 ! -p tcp -j REJECT --reject-with icmp-port-unreachable

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