1つを除くすべてのアドレスに対してdnsmasq削除/拒否/リダイレクトクエリを実行できますか?

1つを除くすべてのアドレスに対してdnsmasq削除/拒否/リダイレクトクエリを実行できますか?

地域調査システムを構築しています。 LinuxノートブックはLimesurvey(通常のLAMPスタック上)を実行し、会議参加者に配布された5つのタブレットを介してアクセスできます。タブレットはアンケートを読み込むように事前設定されているため、問題はありません。しかし、私は許したいです。参加者は携帯電話でもアンケートリンクにアクセスできます。。私がする計画は次のとおりです。

  1. ノートブックはアクセスポイントとして使用されます。 DNSMASQはAPに参加した後にIPを提供します。私は彼らに簡単なローカルアドレス(例:http://ライム)アンケートインターフェースにアクセスするには、DNSMASQがDNSサーバーとして機能するため、これが可能である必要があります。これにより、石灰の解決策がわかります。

  2. クライアントエラーをすばやく処理したいです。たとえば、APにサインアップした後に誤って別のアドレスを入力した場合(または単にgoogle.comなどのオンラインにアクセスしたい場合) - DNSMASQが必要です。まもなくエラーを返すには、正しいリンクを指定してカスタムエラーページにリダイレクトすることをお勧めします。

  3. 編集する:私はこれを調べた。おそらく私がしなければならないことがあるでしょう。捕虜ポータルタイプソリューション。私はまだ最も簡単な方法でスプラッシュページを表示したいと思います。つまり、アンケートをリストし、他のすべてのリクエストをスプラッシュページに削除/リダイレクトしたいと思います。この接続ではインターネットが利用できないため、認証は不要です。この場合、認証は追加のクリックにすぎませんが、人々がアンケートに簡単にアクセスできることを願っています。

可能ですか?この計画を実行するより良い方法はありますか?

ベストアンサー1

確かに!すべての名前解決を単一のアドレスにリダイレクトするには、次のコマンドを使用します。

address=/#/10.0.0.101

これはファイルの必須項目です/etc/dnsmasq.conf。何らかの理由でサーバーが再起動されると、これらの構成が適用されるため、この方法を使用することをお勧めします。

コマンドラインでは、このオプションは次のように呼び出されます。

-A, --address=/<domain>[/<domain>...]/[<ipaddr>]  

以下はdnsmasqマニュアルのコピーですaddress=

-i vlanただし、(使用すると予想されるインターフェイスの)設定と-a 10.6.66.1(dnsmasqがDNS解決を受信すると予想されるアドレスの)設定も合理的に見えます。しないでください! 。

dnsmasqがワイルドカードモードでポート53のすべてのサーバーアドレスにバインドできるようにします。これにより、DNS解決のためにサーバーへのすべての要求がdnsmasqによって応答されます。

3つのモードは「Wildcard」、「Bound Interface」、「Bind Dynamic」です。
「ワイルドカード」モードでは、dnsmasqはワイルドカードのIPアドレス(0.0.0.0または::)にバインドされます。これにより、そのポートからサーバーに送信されるすべてのパケットを受信できます。アクセス制御(--interface、--read-interface、--listen-addressなど)はdnsmasqによって実装されています。これはカーネルに問い合わせて、パケットが受信されるインターフェイスとパケットが送信されるアドレスを決定します。設定されたルールを適用します。他のモードが指定されていない場合、ワイルドカードモードはデフォルトモードです。

ポート53を使用(外部クライアントの場合はデフォルト):

port=53   # It is set to be 53 by default, not really needed.

どちらも閉じて無効にします。avahi-dnsそしてsystemd.resolved

ポート53または5353でリッスンしている他のプログラム/サービスがないことを確認してください。

$ netstat -pantu | grep ':53'

また、このオプションを設定すると、dnsmasq DNSリゾルバがエラー(NXDOMAIN)を持つ類似した(ドットなし)名前を解決し、mylocaldomain(特定の)名前解決が他のサーバーに転送されないようにすることができます。

# Never forward plain names (without a dot or domain part)
domain-needed
# Never forward addresses in the non-routed address spaces.
bogus-priv

/etc/resolv.confで設定されているサーバーが使用されていないことを確認してください。

no-resolv
no-poll

上記のすべては、すべてのドメインを単純なアドレスとして解決するようにdnsmasqのDNS側を設定します。別のアドレスを確認するために、別の名前をファイルに含めて追加することは依然として可能です/etc/hosts

127.0.0.1
10.0.3.101   linum

最後のアドレスは、調査に使用されたWebサーバーのアドレスでなければなりません。
上記の最初のアドレス(10.0.0.101)は、アンケートページのアクセス方法を説明するエラーページでなければなりません。

しかし、それはすべてではありません。また、dnsmasq DNSソルバーアドレスとともにネームサーバーオプションを提供するようにDHCPサーバーを構成する必要があります(オプション番号5を使用しないでください。廃止予定(20年以上使用されている必要があります))。

dhcp-option=6,10.0.0.101

また、dnsmasqのDHCP部分に必要なその他の設定もあります。

これにより、コンピュータ(タブレットまたは携帯電話)が定義されているDNSサーバーによって提供されるDHCPアドレスを取得できます。これに準拠するすべてのコンピュータはこれらの設定オプションを尊重し、他のアドレスを確認することはできません。

ただし、デバイスはDNS解決を要求せずに直接IP番号にアクセスしようとする可能性があります。このような状況を回避するには、ローカルネットワークを提供するルーターでIPFilter構成を使用する必要があります。


~からman dnsmasq:

-A, --address=/[/...]/[] 指定さ
れたドメインのすべてのホストに対して返される IP アドレスを指定します。ドメイン内のクエリは転送されず、常に指定されたIPアドレス(IPv4またはIPv6のいずれか)で応答されます。ドメインにIPv4アドレスとIPv6アドレスの両方を提供するには、-Aフラグを繰り返し使用します。単一のクエリに複数のIPアドレスを含めるには、代わりに--addn-hosts =を使用してください。 /etc/hosts および DHCP リースは、個々の名前のこの設定を上書きします。一般的な用途は、バナー広告を避けるために、doubleclick.netドメイン全体をおなじみのローカルWebサーバーにリダイレクトすることです。ドメイン仕様は --server と同じように機能しますが、すべてのドメインと一致する /#/ の追加機能があります。したがって、--address = /#/ 1.2.3.4は、/ etc / hostsまたはDHCPから応答せず、より具体的な- -serverディレクティブを介してアップストリームネームサーバーに送信されないすべてのクエリに対して常に1.2.3.4を返します。 --server の場合、アドレスを持たない 1 つ以上のドメインは no-such-domain 応答を返すため、--address=/example.com/ は --server=/example.com/ と等しく、たとえば NXDOMAIN を返します。 。 comとすべてのサブドメイン。

また読んでください:

偽のDNSエントリを追加
すべてのクエリを1つのアドレスにのみ解決するバインディングの設定

おすすめ記事