Configurando Proxy Transparente com Interceptação HTTPS/SSL no pfSense

Configurando Proxy Transparente com Interceptação HTTPS/SSL no pfSense

A interceptação HTTPS/SSL é utilizada para filtrar HTTPS. Não basta apenas habilitar. É necessário baixar o certificado para o cliente, de forma que o Proxy Squid possa atuar como um Man in Middle.

Acesse System -> Cert. Manager selecione a aba ‘CAs’

Clique em + Add para criar um novo certificado.

Descriptive name?: proxy (pode informar qualquer nome)

Method: Selecione: Create an internal Certificate Authority

Key length? (bits): 2048 (tamanho da chave)

Lifetime?: 3650 (tempo de expiração da chave em dias)

Country Code?: Informe o código do país

State or Province?: Informe o estado

City?: Informe a cidade

Organization?: Informe o nome da organização

Organizational Unit: Informe o departamento (opcional)

E-mail?: Informe o e-mail

Common Name: internal-ca

Agora vamos exportar o certificado. (clique no ícone que fica entre a chave e p lápis)

Após exportar/baixar o certificado será necessário instalar ele no cliente.
OBS: é necessário instalar esse certificado em todos os clientes que estiverem utilizando o proxy transparente com interceptação HTTPS/SSL.

Clique em Instalar Certificado.

Selecione Usuário Atual e clique em Avançar.

Selecione a opção ‘Colocar todos os certificado no repositório a seguir’ e selecione a opção ‘Autoridade de Certificação Raiz Confiável’

Clique em Concluir.

Certificado importado/instalado.


Agora é necessário habilitar a interceptação HTTPS/SSL.

Acesse Services -> Squid Proxy Server selecione a aba ‘General’.

HTTPS/SSL Interception: Marque para ativar a filtragem SSL.

SSL/MITM Mode: Selecione a opção ‘Splice Whitelist, Bump Otherwise’.

O modo SSL/MITM determina como a interceptação SSL é tratada quando 'SSL Man In the Middle Filtering' está ativado.

Splice Whitelist, Bump Otherwise: Este é o padrão. Os destinos definidos em "Whitelist" na guia "ACLs" serão divididos. Todos os outros domínios serão colididos.

Você precisa instalar o certificado de CA configurado abaixo nos clientes.

A filtragem de conteúdo (como Antivírus) estará disponível com sites impactados (mas não para 'Whitelist').

Splice All: Esta configuração é adequada se você quiser usar o pacote SquidGuard para filtragem da web. Todos os destinos serão divididos. O SquidGuard pode fazer o seu trabalho de negar ou permitir destinos de acordo com suas regras, como acontece com o HTTP.

Você não precisa instalar o certificado de CA configurado abaixo nos clientes.

A filtragem de conteúdo (como Antivírus) não estará disponível para sites SSL.

Custom: Use 'Custom Options (SSL/MITM)' definidas em Recursos Avançados. Veja as informações aqui para detalhes e exemplos.

Aviso: o modo personalizado não é suportado de forma alguma!

Por favor veja a documentação do SslBump Peek e Splice wiki para detalhes adicionais.

SSL Intercept Interface(s): Selecione a(s) interface(s) na qual o servidor proxy irá interceptar os pedidos SSL. Use CTRL + clique para selecionar várias interfaces.

SSL Proxy Port: Esta é a porta que o servidor proxy irá escutar para interceptar o SSL enquanto estiver usando o proxy transparente. Padrão: 3129

SSL Proxy Compatibility Mode: Selecione a opção ‘Modern’.

O modo de compatibilidade determina quais conjuntos de criptografia e versões de TLS são suportados.

O modo Modern também desativa os códigos HIGH, SHA1 e TLS v1.0.

Dica: Se você receber um erro (como "Este proxy e o host remoto não conseguiram negociar uma configuração de segurança mutuamente aceitável para manipular sua solicitação")

Ao acessar alguns sites, você precisará usar a configuração Intermediate.

DHParams Key Size: Selecione ‘2048’.

Os parâmetros DH são usados para trocas de chaves DH temporárias/efêmeras e melhoram a segurança, permitindo o uso de cifras DHE.

CA: Selecione o Certificado criado anteriormente para usar quando a interceptação SSL estiver ativada.

SSL Certificate Deamon Children: Este é o número de SSL certificate deamon para iniciar. Pode precisar ser aumentado em ambientes ocupados. Padrão: 5

Remote Cert Checks: Selecione a opção ‘Accept remote server certificate with erors’’

Certificate Adapt: Selecione a opção ‘Sets the “No Before” (setValidBefore).’


IMPORTANTE

Alguns sites não irão funcionar corretamente utilizando a interceptação HTTPS/SSL para resolver isso podemos criar um Alias informando esses sites, e utilizar a opção ‘Bypass Proxy for These Destination IPs‘.

OBS: essa opção é válida para sites HTTP e HTTPS utilizando o proxy transparente.