Configurei o Nginx Proxy Manager no meu servidor e configurei um proxy reverso para meu domínio com SSL (Let's Encrypt). Tudo funciona bem e posso acessar meu serviço web através do meu domínio com segurança via HTTPS, mas tenho um problema: qualquer um pode acessar meu serviço via http://IP:PORT, que eu quero bloquear completamente.
Quero restringir o acesso ao meu servidor para que ele só possa ser acessado por meio de https://DOMÍNIO e não pelo endereço IP público do servidor.
Já tentei as seguintes coisas:
- Redirecionando HTTP para HTTPS e restringindo o acesso somente ao domínio. -> não é possível escrever o endereço IP no campo de domínio no NPM
- Usando código Nginx personalizado para bloquear completamente o acesso IP direto. -> então o host proxy obtém o status 'offline'
- habilitar HSTS -> ainda permite acesso por IP
Alguém já enfrentou um problema semelhante ou pode sugerir a melhor maneira de configurar isso no Nginx Proxy Manager? Eu realmente apreciaria qualquer tipo de ajuda ou sugestão.
Desde já, obrigado!
Exclua a porta 81 das portas públicas e faça com que o Nginx Proxy Manager faça o proxy em sua própria interface de administração.
Um exemplo diferente mostra melhor como descrever uma rede. Não precisamos da porta 81 pública, então excluí-la deixa:
Configuração adicional, como banco de dados externo, não incluída; consulte a documentação de configuração das variáveis de ambiente.
Crie um proxy para sua própria interface de administração. Nome como proxymanager.example.com, host de encaminhamento do nome do contêiner (
nginxproxymanager
conforme acima) e porta de encaminhamento 81. TLS como de costume com as opções SSL, se público você pode usar Let's Encrypt.É verdade que isso pode ser difícil de configurar na primeira vez. Se você precisar da UI do administrador para fazer isso, talvez deixe a porta 81 exposta temporariamente. Até salvar o host proxy, remova-o.
Agora, tanto a interface de administração quanto os hosts proxy estão usando hosts virtuais baseados em nome. Teste se a porta 81 não está acessível e se nomes de host desconhecidos obtêm o site padrão configurado.
Serviços Docker adicionais podem ser proxyados sem portas públicas. Adicione-os à mesma rede e faça referência a eles pelo nome no NPM.