NGINX Redirecionar para Nome de Domínio falsificado localmente com DNSMasq

0

Eu tenho um Linux VPS servindo dados na internet que tem um nome de domínio legítimo e certificado SSL (de GoDaddy.com). Eu irei referenciar este servidor como " www.myserver.com ". Eu também tenho uma máquina Linux local (na minha própria LAN) que eu quero usar para DNS spoof minha internet voltada para o nome de domínio (www.myserver.com) para o seu próprio servidor NGINX rodando naquela máquina local.

Eu configurei o DNSMasq na máquina local para falsificar esse domínio para seu endereço 192.x local e verifiquei de outra máquina na LAN que a escavação relata o endereço local.

Mapeamento de spoof dnsmaq do servidor local:

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

Máquina separada na LAN mostra que o mapeamento falso deve funcionar:

dig +short @192.168.1.142 myserver.com
>> 192.168.1.142

Meu 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

Meu spoof.hosts:

192.168.1.142 www.myserver.com myserver.com

No servidor local, configurei o NGINX com resolvedor para procurar localhost para DNS, conforme mostrado aqui:

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

    }
}

O problema é que quando eu visito minha máquina local 192.168.1.131:8080, ela é redirecionada para minha máquina com a internet real - o nome de domínio real na internet.

Eu quero redirecionar para o DNS falsificado local. O que estou fazendo de errado? Como posso fazer isso? Obrigado.

ATUALIZAÇÃO: também tentei isso, mas sem sorte:

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';

    ...

    }
}
    
por PhilBot 01.02.2018 / 14:34

3 respostas

2

Quando nginx envia um redirecionamento, ele simplesmente diz ao cliente para visitar o novo URL. Portanto, agora, no cliente, o novo nome do host é resolvido e, como esse cliente não está usando o servidor DNS de falsificação, ele vai para o host real.

Talvez você queira usar o nginx no modo de proxy, de modo que o nginx esteja buscando o conteúdo do back-end e transmitindo-o para o cliente.

    
por 01.02.2018 / 16:35
1

Seu nginx não precisará resolver absolutamente nada quando enviar o redirecionamento - ele literalmente apenas informa aos clientes "vá para o link " .

Em seguida, o cliente, por conta própria, usa os servidores DNS com os quais foi configurado para procurar o endereço IP do myserver.com.

Você precisa ter certeza de que o cliente usará 192.168.1.142 e nada mais como seu servidor DNS.

    
por 06.02.2018 / 10:28
1

Se eu entendi corretamente, você tem duas máquinas de interesse na sua LAN: Vamos chamá-las de 142 (que significa 192.168.2.142) e 131 (de 192.168.1.131).

Se eu ainda entendi corretamente, quando você se conectar de 131 a 131: 8080, será encaminhado para 142, falsificando www.myserver.com.

Se for esse o caso, você precisa ter o DNSMasq em execução no 131, não no 142.

O que você precisa verificar é que

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

Se, por outro lado, você tiver mais máquinas que ao se conectar ao 131: 8080 devam ser redirecionadas para 142 www.myserver.com, você precisará que todas essas máquinas usem sua instância do DNSMasq como seu servidor DNS padrão.

    
por 12.02.2018 / 12:08