![Abrindo a porta com segurança](https://rvso.com/image/761003/Abrindo%20a%20porta%20com%20seguran%C3%A7a.png)
Estou operando um webapp que deve ser acessível apenas a um pequeno número de pessoas equipadas com tablets. Ele é servido na porta 80 de um servidor que está em nossa rede local, atrás do roteador ISP.
A questão é: como posso garantir o acesso ao usuário autorizado sem que nenhum outro usuário possa acessá-lo? Usuários não autorizados devem terminar com uma redefinição de conexão como se a porta não estivesse aberta.
Pensei em abrir uma porta no roteador, redirecioná-lo para o servidor e protegê-lo com um certificado, mas isso é possível?
Outra solução poderia ser instalar uma VPN, mas pode ser muito difícil de gerenciar para alguns usuários.
Responder1
Há muitas maneiras de fazer isso, mas a correta depende de quais outros mecanismos de segurança você possui. Exemplos:
- Certificados de cliente. Isso é muito possível, exceto que você queira usar a porta 80, que normalmente não é criptografada. Você precisaria reconfigurar seu servidor web ou colocar um proxy na frente dele, mas isso certamente é possível. Fazer isso com o Apache é descrito aqui,https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html#allclients
- Filtre por endereço IP ou MAC no nível da rede, ou seja, no firewall.
- Use uma VPN como você mencionou. Isso pode ser razoavelmente transparente para os usuários.
- Verifique se há um cabeçalho de autenticação no servidor web ou em um proxy na frente dele.
Sem dúvida há mais. Alguns deles não são adequados, a menos que você tenha métodos de autenticação adicionais, por exemplo, endereços MAC são facilmente falsificados. Outras opções ficarão disponíveis se você relaxar o requisito para que a porta de rede pareça fechada, porque muitos métodos de autenticação não funcionam até que a porta seja aberta.
Responder2
Sua pergunta é de alguma forma genérica. Você pode fazer um ou mais dos seguintes procedimentos:
- Exija um nome de usuário/senha válido para acessar seu aplicativo da web. Isso pode ser feito no nível do aplicativo ou no nível do servidor web (ex: apache2).
- Proteja o acesso a este IP/porta configurando um firewall. Somente IPs específicos são permitidos. Outros são negados. Isso requer que você obtenha uma lista dos IPs de seus usuários.
- Redirecione os usuários de http (porta 80) para https (porta 443) para proteção contra ataques como ataques man-in-the-middle.
- Mantenha o acesso ao servidor privado e tunele o tráfego dos usuários para sua rede (uma das soluções VPN que requer autenticação).