Eu tenho um serviço SaaS que expõe uma URL (digamos ( https://mylink.foo.com ) que só é acessível a partir de alguns IPs da lista de permissões. No entanto, agora precisamos que a URL mencionada seja acessada por um público fora desses IPs da lista de permissões. Já pensei em implementar outro servidor de nuvem pública como IaaS que atue como pivô, alterando os IPs de origem e destino e redirecionando a solicitação para meu provedor SaaS (é diferente do IaaS), o único IP permitido nesse caso seria o do pivô endereço IP público.
Além disso, como a URL correta apontaria para o servidor original que não é acessível de IPs que não estão na lista de permissões, estou pensando em publicar um servidor HTTP do mesmo pivô que expõe uma segunda URL ( https://accesslink.foo.com ) que é reescrito no URL original para fins de acessibilidade.
Como este cenário é proposto, ele incluiria:
- Um pivô Linux atuando como um dispositivo de firewall/NAT reescrevendo endereços IP de origem/destino. O Iptables serviria para esse propósito.
- (talvez?) outro host atuando como proxy reverso HTTP reescrevendo a URL para as solicitações que chegam ao servidor. Servidor HTTP com mod_rewrite ou nginx usado aqui.
Minhas dúvidas e dúvidas são:
- Toda a ideia sobre a minha implementação é possível? existe alguma outra solução mais fácil e simples para esse tipo de problema? A reescrita é possível considerando que a URL original é exposta por HTTPS e não por HTTP?
Se você não se importar em compartilhar outras preocupações/desafios de implementação que podem não ser abordados na minha descrição, sinta-se à vontade para expô-los.
Eu não vejo por que você precisaria
iptables
aqui.Basta instalar um servidor como proxy reverso, ter o IP desse servidor nos IPs da lista de permissões. Os usuários finais se conectarão a esse servidor, o que reverterá as conexões de proxy para o destino final.
Um proxy reverso abre uma conexão de seu próprio endereço IP para o endereço IP do servidor proxy, então você não precisa de truques extras para endereços IP.