Preciso criar um servidor proxy somente com criptografia. Com isto quero dizer que, de qualquer lugar do mundo, gostaria que todo o tráfego de Internet dos laptops da empresa fosse criptografado e roteado através deste único servidor. O cache seria bom, mas não obrigatório; a criptografia entre o laptop e o servidor é o único requisito.
Quais são algumas maneiras de realizar essa configuração? Tenho lido sobre o Squid, mas não encontrei muitas informações sobre criptografia. Presumo que haja algum SSL ou SSH envolvido, mas sou realmente novo nesta área. Os navegadores seriam o usuário principal da conexão, embora o suporte a clientes de mensagens instantâneas e de e-mail também fosse bom. Os clientes seriam Windows e nix, enquanto o servidor poderia ser qualquer coisa de código aberto.
Editar:Ficou claro que uma VPN seria uma solução melhor do que um proxy. Antes de aceitar uma resposta, alguém poderia comentar sobre isso:
O que acontece quando os laptops são conectados a outra rede corporativa? Por exemplo, os consultores sentam-se no escritório da ABC Company. Eles precisam abrir um site da intranet como myabc.internal.com por qualquer motivo. Acredito que os servidores DNS da intranet normalmente resolveriam isso corretamente. Se eu estiver conectado a esta VPN, isso funcionaria? Entendo que um navegador conectado ao proxy teria o mesmo problema, mas você poderia ter dois navegadores: um via proxy e outro não. Ou isso não seria um problema com a VPN?
Responder1
Concordo com pjz - parece que você está procurando uma VPN.
OpenVPN é um método excelente e gratuito para começar a usar VPNs. É estável e pronto para uso em produção, mas mesmo que você não o use, é uma boa ferramenta para se familiarizar com VPNs. É realmente fácil de configurar com chaves estáticas (para brincar) e apenas um pouco mais difícil de configurar com certificados (para uso em produção).
- http://openvpn.net/static.html- Mini-HOWTO de chave estática. Não recomendado por questões de segurança, mas é uma ótima maneira de ter uma ideia de como o OpenVPN funciona antes de mergulhar na PKI simples.
- http://openvpn.net/howto.html
Você diz "tráfego da Internet" na sua pergunta, mas não está claro se isso significa apenas navegar em sites ou literalmente todo o tráfego IP para a Internet. Você pode passar uma rota de "gateway padrão" para o cliente com OpenVPN, de modo que o tráfego vinculado à Internet seja roteado pelo "tubo" do OpenVPN para o servidor, que poderá então colocá-lo na Internet.
Se você deseja apenas que o HTTP/HTTPS seja roteado pelo OpenVPN (ou seja, se eles fizerem PING, executarem o Skype, etc., esse tráfego poderá ir direto para a Internet), considere implantar algo como o Squid Cache também e, em seguida, configurar os navegadores do cliente usar esse servidor proxy de forma que o tráfego para o proxy seja roteado apenas pelo "pipe" do OpenVPN (ou seja, coloque o proxy em um endereço IP acessível por VPN, mas deixe o gateway padrão do cliente em paz). (Você poderia até fazer um 'push “dhcp-option 252 ...' para enviar uma URL de configuração automática de proxy para clientes via OpenVPN, eu acredito.)
Você tem algumas opções, dependendo do que deseja fazer.
re: seu comentário para pjz sobre o acesso ao site da intranet
Você vai ter que “pagar caro” nisso de alguma forma.
Se você estiver apenas roteando todo o tráfego vinculado à Internet pela VPN por meio de uma alteração de gateway padrão, qualquer tráfego para servidores da Web na sub-rede com eles ainda "irá direto". Porém, se o servidor web da intranet estivesse em uma sub-rede diferente, o tráfego para essa sub-rede iria para o canal OpenVPN em vez de para o roteador local. Isso seria ruim.
Se você seguiu minha sugestão acima de enviar um script de configuração automática de proxy para clientes via OpenVPN (ou algum outro meio), você poderia colocar "exceções" nesse arquivo para fazer com que os clientes "vão direto". Normalmente faço isso em arquivos de configuração automática de proxy com:
if ( isPlainHostName(host) ) { return "DIRECT"; }
Isso faz com que nomes de host sem pontos sejam acessados diretamente.
Se você conhece um host específico (ou padrão de correspondência curinga) que precisa ser acessado diretamente:
if ( shExpMatch(url,"http://*.customer.com")) { return "DIRECT"; }
if ( shExpMatch(url,"http://known-intranet-server.customer.com")) { return "DIRECT"; }
Se você sabe onde seus usuários trabalharão, você pode colocar exceções no arquivo proxy-autoconfiguraiion antes do fato. Caso contrário, você terá que lidar de forma reativa com essas questões. Porém, se você não sabe de antemão, está pedindo uma solução que possa “fazer a coisa certa” automaticamente. Infelizmente, os computadores fazem um trabalho horrível com isso. >sorri<
Eu gastaria mais tempo com tudo o que você implanta para usar arquivos de configuração automática de proxy. Ele fornece um método centralizado (que pode ser atualizado "on the fly" sem tocar nos computadores clientes) para controlar o desvio do tráfego HTTP para um servidor proxy ou deixá-lo ir diretamente para a Internet. Eles são incrivelmente úteis para esse tipo de aplicação.
Responder2
Parece que você deseja mais uma VPN do que um servidor proxy - ou pelo menos o que você deseja é mais facilmente realizado com um servidor VPN ao qual todos os laptops se conectam. Um servidor proxy não criptografa (exceto alguns servidores de aplicativos específicos) o tráfego entre seus clientes e ele mesmo, embora essa seja a razão de ser de um servidor VPN.
No que diz respeito aos próprios servidores VPN, tive sorte executandoopenvpncom clientes Linux, Windows e Mac.
Responder3
“Gostaria que todo o tráfego de Internet dos laptops da empresa fosse criptografado e roteado através deste único servidor.”
"Os navegadores seriam os principais usuários da conexão, embora o suporte a clientes de mensagens instantâneas e de e-mail também fosse bom."
O serviço e a funcionalidade que você descreveu são uma VPN, embora algumas pessoas considerem sua VPN como um hardware de rede que fornece um serviço em nível de rede e não se refiram a ela como um "servidor".
A VPN é a melhor opção, porque você está falando sobre proteger todo o tráfego no nível da rede e redirecioná-lo para um único host provedor de serviços.
A VPN funcionará em redes corporativas privadas quando você visitar o site delas, desde que essa rede permita o acesso à rede pública (e não bloqueie o acesso aos endereços IP do seu host VPN).
A única limitação é que a maioria dos softwares clientes VPN são do tipo "tudo ou nada", eles agrupam todo o tráfego do seu sistema (essencialmente, eles se recusam a confiar nos serviços de rede local de qualquer outra pessoa). Se você precisar trabalhar na rede local e na sua rede, a solução alternativa fácil é executar sua conexão VPN em um pequeno sistema virtualizado (como VMWare) e fazer com que seu sistema operacional principal/host acesse o acesso local normalmente.
Quanto aos proxies (web):
Há muito tempo, existiam vários tipos de proxies de aplicativos, mas a Internet fez com que o uso comum de "proxy" fosse "proxy da web". Esses proxies geralmente não usam criptografia, embora pudessem. Mas eles são focados na "web/internet", geralmente fazem proxy HTTP, HTTPS, FTP e Gopher. Eles não podem enviar e-mail ou mensagens instantâneas.