web-dev-qa-db-ja.com

dnsmasq.confで内部IPアドレスをブロックする

Confファイルで次のようなことを実行してWANサイトをブロックできます。

address=/verystrangesite.com/127.0.0.1

したがって、ユーザーが私のゲストLANでそれほど面白くないことを試みようとすると、ERR_CONNECTION_REFUSEDが発生します。

残念ながら、これは内部サイト(ルーター、ゲートウェイ、hwfw、ip cam)では機能しません。少なくともIPでのみ到達可能である場合(代わりにmy-ip.comのようなものがあった場合に機能するかどうかはわかりません) 172.16.1.54)。私が試したものは次のようになります:

address=/172.16.1.2/127.0.0.1

それで、これを達成するための正しい構文を知っていますか?

前もって感謝します

トビアス

1
Tobias

これを実現するための正しい構文はありません。

dnsmasqは単なるDNSサーバーです–それはしませんすべてのネットワークトラフィックの真ん中に位置し、DNSクエリに応答し、ドメイン名をIPアドレスに変換するだけです。 dnsmasqの例はblockサイトではなく、DNSクエリ結果をスプーフィングするだけです(クライアントがDNSを使用している場合のみ)。

IPアドレスで直接Webサイトにアクセスしようとしているクライアント使用しないでくださいそもそもDNSを使用してWebサイトを解決します–アドレスは、いわば「事前に解決済み」です。したがって、そのような接続に影響を与える可能性のあるno dnsmasq構成があります。

代わりに、IPアドレスで任意のホストをブロックするには、ルーターのfirewall(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
1
user1686