Atualizar dinamicamente o IP de encaminhamento no nginx

1

Como o aviso habitual - procurei uma solução por algum tempo, mas ainda não encontrei nenhuma solução de trabalho.

Meta: crie uma solução de DNS dinâmico para acessar minha rede doméstica sem serviços de terceiros.

Configuração: Servidor da Internet executando nginx com domínios disponíveis, rede local com roteador, atribuído automaticamente um novo IP a cada dia pelo provedor.

Alcançado até agora: consegui usar nginx como proxy reverso para encaminhar solicitações para https://dyn.mydomain.tld para https://my.current.ip.address usando uma diretiva server correspondente a

server {
    443 ssl http2;
    ssl on;
    ssl_certificate  /etc/letsencrypt/live/dyn.mydomain.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/dyn.mydomain.tld/privkey.pem;
    location / {
        proxy_pass https://my.current.ip.address;
    }
}

Isso redirecionou com êxito e transparência a solicitação para a interface da Web do roteador local.

Problema: No entanto, é claro que preciso que isso funcione com meu endereço IP dinâmico. Eu posso dizer ao meu roteador para chamar um URL arbitrário, passando o novo endereço IP sempre que ele muda, então o que eu pareço é uma URL no meu servidor que irá atualizar o IP para o qual o nginx redireciona as requisições. O que estou procurando é uma solução que faça isso com tão pouco desempenho e (mais importante) implicações de segurança.

Pensamentos: O que eu pensei primeiro é ter esse IP em um arquivo que é lido pelo nginx, mas eu li isso deve dar um desempenho muito ruim (se é que é possível fazer uma variável ler de um arquivo na configuração do nginx).

Outra ideia seria ter um script para atualizar o endereço IP em algum lugar e ter o nginx recarregado para "estaticamente" carregar o valor. No entanto, isso significaria que eu teria que dar privilégios de script / URL de acesso público, pelo menos para reiniciar o nginx e talvez reescrever um arquivo - o que parece ser algo que eu não gostaria de fazer?

Pergunta (conciso): existe uma maneira de fornecer ao nginx um valor dinâmico para o encaminhamento de IP que pode ser atualizado pela execução de um script em uma solicitação HTTPS iniciada pelo roteador?

Afora: A implementação listada como "alcançado até agora" apresenta o certificado Lets Encrypt instalado no servidor para o navegador, enquanto o certificado (autoassinado) do navegador não é mais usado (ao acessar a página de configuração do roteador diretamente através de seu IP atual ou através de um serviço de DNS dinâmico de terceiros, o navegador reclama do certificado autoassinado). Embora isso pareça um progresso de conveniência, isso não é um problema de segurança, pois a identidade do roteador pode não ser verificada corretamente?

    
por uli_1973 18.09.2017 / 11:18

0 respostas