Squid + SSL
Utilizando o Squid para filtrar conteúdo HTTP e HTTPS com certificados self-signed, porém sem o famoso problema de SSL Mismatch.
Introdução
Um grande desafio para os administradores de rede em geral é gerenciar o conteúdo acessado pelos seus usuários, e muitas vezes, são tomadas atitudes mais radicais como, por exemplo, bloquear completamente o acesso à Internet.
Existem muitos documentos disponíveis na Internet relacionados à configuração de servidores de proxy utilizando Squid, mas tenho percebido que todos os documentos estão preparados apenas para tratar do conteúdo HTTP, não tratando dos acessos HTTPS, como por exemplo: sites de bancos, webmail, e-commerce etc.
Pensando nisso, resolvi escrever este tutorial, que apresenta, de uma forma simples e objetiva, como configurar o servidor com suporte à geração dinâmica de certificado SSL.
O grande infortúnio dos acessos HTTPS através de proxy são os erros de certificado SSL apresentados quando você possui um man in the midle, que possui um certificado auto assinado. Como apresentado na figura abaixo:
Entenda que a checagem do nome do site pelo browser não adiciona muita segurança no ambiente onde as máquinas clientes já confiam no seu proxy, esta validação apenas gera problemas na apresentação das páginas, conforme apresentado na figura acima.
Antes de começar, vou apresentar a configuração do ambiente virtual de laboratório que utilizei para elaborar e validar este tutorial:
Neste laboratório o GNU/Linux CentOS foi utilizado como servidor, e o Windows XP foi utilizado como cliente.
Existem muitos documentos disponíveis na Internet relacionados à configuração de servidores de proxy utilizando Squid, mas tenho percebido que todos os documentos estão preparados apenas para tratar do conteúdo HTTP, não tratando dos acessos HTTPS, como por exemplo: sites de bancos, webmail, e-commerce etc.
Pensando nisso, resolvi escrever este tutorial, que apresenta, de uma forma simples e objetiva, como configurar o servidor com suporte à geração dinâmica de certificado SSL.
O grande infortúnio dos acessos HTTPS através de proxy são os erros de certificado SSL apresentados quando você possui um man in the midle, que possui um certificado auto assinado. Como apresentado na figura abaixo:
Proposta e pré-requisito
Para evitar as mensagens de alerta de certificado, utilizamos a característica DynamicSslCert do Squid, que foca na geração dinâmica de certificados que são compatíveis com o nome de domínio do site requisitado.Entenda que a checagem do nome do site pelo browser não adiciona muita segurança no ambiente onde as máquinas clientes já confiam no seu proxy, esta validação apenas gera problemas na apresentação das páginas, conforme apresentado na figura acima.
Antes de começar, vou apresentar a configuração do ambiente virtual de laboratório que utilizei para elaborar e validar este tutorial:
- VirtualBox 4.2
- CentOS 6.3 (Equivalente à versão 6.3 do RHEL):
- 2x vCPUs
- 1GB RAM
- 10GB HD
- Windows XP Professional SP3:
- 2x vCPUs
- 2GB RAM
- 10GB HD
Neste laboratório o GNU/Linux CentOS foi utilizado como servidor, e o Windows XP foi utilizado como cliente.
mais antes algumas duvidas:
1 - o squid passará a fazer cache do https(443)?
2 - uma duvida que tenho sobre a compilação do squid, não é necessario outros parametros no ./configure:
tipo --enable-linux-nefilter para ativa o proxy transparente dentre outros parametros.
ou quando vc executa ./configure --enable-ssl --enable-ssl-crtd --with-openssl="/root/openssl-1.0.0g" ele ja traz varias opçoes habilitadas por padrao?
att.