Pesquisar este blog

sexta-feira, 8 de novembro de 2019

Pfsense - Proxy Squid filtrando HTTPS

Fui uma grande surpresa minha, ao ver que no PFSense 2.3.1 foi criado um nova feature, que permite interceptar o tráfego HTTPs via squid, e ainda mais no modo transparente.



De fato, já funcionava antes, mas o processo para realizar essa função, além de trabalho, era bem complicado, com a geração do certificado, configuração do squid.conf, seja através do squid.inc ou das opções customizadas na Guia Geral do Squid.

Vou assumir que já esteja instalado o PFSense 2.3 e funcionando corretamente com sua LAN e WAN.

Por que habilitar HTTPS

Por default o squid não monitora e não pode monitorar tráfego criptografado HTTPS.

O  Squid simplesmente estabelece uma conexão TCP com o servidor de destino e responde ao cliente com uma resposta HTTP 200 para indicar que a conexão foi estabelecida.

Uma vez que o túnel criptografado tenha sido estabelecido, o squid passa os pacotes entre o cliente e o servidor, mas não tem nenhuma visibilidade para o tráfego, uma vez que é protegido por criptografia SSL.

E ao longo dos anos muitos sites começaram a ativar a criptografia HTTPS por padrão, como é o caso do google, gmail, facebook entre outros, tornando o monitoramento muito limitado, caso não fosse configuração interceptação proxy HTTPS.

Felizmente o squid suporta “man in the middle SSL Filter”, que permitirá visualizar o conteúdo que passa através do tráfego.

Apesar de suportar isso a algum tempo, sua configuração era no mínimo complicada, para não falar outra coisa. Mas na versão mais nova do PFSense esta tarefa se tornou tão simples como habilitar o próprio Squid.

Então vamos aos passos para habilitar essa funcionalidade no Squid.

Passo 1 – Instalar o Pacote Squid 3

O primeiro passo é instalarmos o Squid usando o Package Manager do PFSense, indo em System->Packages.
Após localizar o Squid3 da lista de pacotes click no botão mais “+” do lado direito do pacote para iniciar a instalação do pacote.
O package manager irá automaticamente fazer download e instalar o Squid 3.

squid_https-1

Instalando pacote Squid 3 do Gerenciador de Pacotes do PFSense
 
squid_https-2
Progresso de instalação do Pacote Squid3

Passo 2 – Configurações Gerais do Squid

Após a instalação do pacote Squid, as configurações gerais devem ser feitas. A página de configuração podem ser encontrada em Services \ Squid Proxy Server.
Configure as seguintes opções:
  1. Enable Squid Proxy – Checado
  2. Keep Settings/Data – Checado
  3. Proxy Interface(s) – Selecione LAN e Loopback.
O restante das configurações nesta guia Geral pode deixar como estão, o padrão.

squid_https-3
Página de Configuração do Squid3

 

Passo 3 – Configuração do Proxy Transparente

Logo abaixo das configurações Gerais, vamos encontrar as configurações de proxy transparente. Na maioria dos casos, você irá utilizar  o proxy transparente de forma que não seja necessário nenhuma configuração adicional nos browsers dos cliente. Quando ativamos o proxy transparente, o firewall redireciona automaticamente todo tráfego WEB (HTTP) para a entrada do servidor proxy.

Para habilitar o modo proxy transparente configure as seguinte opções:
  1. Transparent HTTP Proxy – Checado
  2. Transparent Proxy Interface(s) – LAN
o restante das configurações pode ficar padrão, a não ser que queira faze alguma configuração especifica como bypass para algum endereço externo ou interno.

Vá até o pé da página  e clique em save para salvar e aplicar as configurações feitas.

Se você não habilitar o modo transparente, terá que configurar o browser do cliente, e apontar as configurações de proxy para o IP do PFSense.

squid_https-4

Neste  ponto já temos o nosso proxy Squid configurado e pronto para uso no modo transparente. Já seria interessante testar nesse momento se está funcionado.

Passo 4 – Configurando Certificado de Autoridade (Certificate Authority)

Um certificado de autoridade deverá ser configurado no pfSense antes de habilitarmos a filtro HTTPS no Squid. A CA irá user usada para gerar novos certificados SSL para os clientes em termpo real e então criptografar e descriptografar o tráfego da web automaticamente.
  1. Acesso o gerenciado de certificado no menu System \ Cert Manager.
  2. Clique em “+” para criar um novo certificado de autoridade.
Configure os seguintes campos nos certificado:
  1. Descriptive Name: Escolha um nome para sua CA. Este nome será visível para os clientes.
  2. Method:  Selecione “Create an internal Certificate Authority” no menu dropdown.
  3. Key length: É recomendado 2048 para máxima compatibilidade, mas você pode usar 4096 bits para máxima segurança.
  4. Digest Algorithm – use SHA256 ou superior.
  5. LifeTime – Configure para 3650 dias (10 anos).
  6. Distinguished Name – Preencha todos os campos como Country, State, etc.
E posteriormente Salve.

squid_https-5

Passo 5 – Exportando o Certificado CA

Após a criação da nova CA, essa deve ser exportada. Este certificado irá deverá ser instalado em qualquer cliente que irá usar o proxy.
A partir do gerenciador de Certificados click em export CA para baixar o certificado, que salvara um arquivo com extensão .crt.




Passo 6 – Importando o Certificado

Para importar o certificado para um computador com Windows, clique duas vezes no arquivo .crt para abrir a caixa de diálogo do certificado.

Clique no botão de instalação de certificado para iniciar o assistente de importação.

Clique em Avançar na primeira página do assistente de importação de certificados.

Selecione a opção colocar todos os certificados no armazenamento a seguir.

Clique no botão procurar e selecione Autoridades de certificação raiz confiáveis.

Clique em próximo e clique em Concluir na página de confirmação de importação.

Quando solicitado, clique em sim para confirmar o aviso de segurança.

Você deverá ver uma mensagem indicando que a importação do certificado foi bem-sucedida.

Windows 7 certificate properties dialog

Passo 6 – Habilitando Filtro SSL em Man in The Middle

Depois de carregar o certificado nos computadores clientes, você estará pronto para ativar a filtragem de SSL no Squid.

Acesse a página de configurações do squid (Services \ Squid Proxy Server) e defina as configurações abaixo.

Interceptação HTTPS / SSL – Verificada
Interface (s) de Interceptação SSL – Selecione LAN

CA – Selecione a autoridade de certificação criada na etapa 4

Clique em salvar na parte inferior da página para aplicar as configurações.




Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.