NGINXはDNSMasqローカルスプーフィングを使用してドメイン名にリダイレクトします。

NGINXはDNSMasqローカルスプーフィングを使用してドメイン名にリダイレクトします。

正当なドメイン名とSSL証明書(GoDaddy.comから提供)を使用してインターネット経由でデータを提供するLinux VPSがあります。私はこのサーバーを」www.myserver.comまた、私のインターネット接続ドメイン名(www.myserver.com)を、そのローカルコンピュータサーバーで実行されている独自のNGINX WebにDNSなりすましに使用したいローカルLinuxボックス(私のLANにあります)もあります。

ドメインをローカル192.xアドレスになりすますために、ローカルコンピュータにDNSMasqを設定し、LAN上の他のコンピュータからローカルアドレスを報告したことを確認しました。

ローカルサーバーdnsmaqなりすましマッピング:

cat /etc/dnsmasq.d/spoof.hosts 
192.168.1.142 www.myserver.com myserver.com

LAN上の別のコンピュータは、なりすましマッピングが機能する必要があることを示します。

dig +short @192.168.1.142 myserver.com
>> 192.168.1.142

私のdnsmasq.conf:

server=127.0.0.1
listen-address=127.0.0.1
listen-address=192.168.1.142
no-dhcp-interface=
no-hosts
addn-hosts=/etc/dnsmasq.d/spoof.hosts

私のなりすましホスト:

192.168.1.142 www.myserver.com myserver.com

ローカルサーバーで、次のようにローカルホストのDNSを検索するようにリゾルバとしてNGINXを設定しました。

http {

    access_log off;
    include mime.types;

    default_type html;

    sendfile        on;

    keepalive_requests 50;
    keepalive_timeout  75s;

    reset_timedout_connection on;

    server_tokens off;

    server {

       listen 8080 default_server;

       resolver 127.0.0.1 valid=10s;

       location / {
           return 302 http://myserver.com/;
       }

    }

    server {

      listen       80;
      server_name *.myserver.com;

      // Various Endpoints

    }
}

問題は、自分のローカルコンピュータ192.168.1.131:8080にアクセスすると、自分のコンピュータにリダイレクトされることです。実際インターネット接続コンピュータ -本物インターネット上のドメイン名。

ローカルなりすましDNSにリダイレクトしたいです。私は何が間違っていましたか?どうすればいいですか?ありがとうございます。

更新:私もこれを試しましたが、幸運ではありませんでした。

http {
    access_log off;
    include mime.types;

    default_type html;

    sendfile        on;

    keepalive_requests 50;
    keepalive_timeout  75s;

    reset_timedout_connection on;

    server_tokens off;

    server {

          listen 80 default_server;
          server_name _;
      resolver 127.0.0.1;
          return 301 https://myserver.com/$request_uri;   

    }

    server {

        listen       443;
    server_name *.myserver.com;

    ssl on;
    ssl_certificate /etc/nginx/ssl/1e17e6d8f94cc4ee.crt;
        ssl_certificate_key /etc/nginx/ssl/example.com.key;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

    ...

    }
}

答え1

nginxがリダイレクトを送信すると、クライアントに新しいURLにアクセスするように指示します。新しいホスト名がクライアントで解決され、クライアントがなりすましたDNSサーバーを使用しないため、物理ホストに移動します。

おそらく、nginxがバックエンドからコンテンツを取得してクライアントに渡すように、プロキシモードでnginxを使用したいと思うかもしれません。

答え2

nginxがリダイレクトを送信するときに何も解析する必要はありません。実際にはクライアントに「ゴートhttps://myserver.com代わりに」。

その後、クライアントは設定された DNS サーバー自体を使用して myserver.com の IP アドレスを探します。

クライアントは192.168.1.142をDNSサーバーとして使用し、他のものも使用しないようにする必要があります。

答え3

私が正しく理解したら、LANに興味のある2つのシステムがあります。これを142(192.168.2.142の場合)および131(192.168.1.131の場合)と呼びます。

それでも正しく理解している場合は、131から131:8080に接続すると、www.myserver.comをなりすまして142に転送したいと思います。

この場合、142ではなく131でDNSMasqを実行する必要があります。

確認する必要があるものは

$ dig +short myserver.com   # running on 131, no @parameter
>> 192.168.1.142

一方、www.myserver.comをなりすまして131:8080に接続するときに142にリダイレクトする必要があるコンピュータが多い場合は、DNSMasqインスタンスをプライマリDNSサーバーとして使用するにはそのコンピュータがすべて必要です。

関連情報