Чтобы заблокировать 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