Forçando sites HTTPS a passar fora do Squid 3

Publicado por Renato Cesar Ribeiro Bonfim Jr em 29/07/2015

[ Hits: 9.144 ]

 


Forçando sites HTTPS a passar fora do Squid 3



Recentemente postei uma dica no VOL sobre a compilação do Squid 3 com a escuta na porta 443:
E a indagação mais presente no VOL, tanto na dica como no fórum, são sobre sites com o protocolo HTTPS que continuamente apresentam erro de certificado, em sua grande parte sites do Governo Federal, tais como SICONV, Receita Federal (eCAC) e DATAPREV, como pode ser visto no print abaixo:
Linux: Forçando sites HTTPS a passar fora do Squid 3
Uma solução que a priori parece viável é a inserção da regra no iptables que retorna o tráfego sobre a interface da rede local para a porta de origem da requisição, no caso a 443:

# iptables -t nat -A PREROUTING -i eth1 -d cav.receita.fazenda.gov.br -p tcp --dport 443 -j RETURN

Onde "eth1" é a interface responsável pela rede interna. Logo após a inserção da nova diretiva ao tentar acessar o site será pedida a confirmação do certificado. Autorize a exceção e o site estará disponível para acesso normal!
Linux: Forçando sites HTTPS a passar fora do Squid 3
Pode ocorrer a necessidade de liberação de mais de uma página, no caso do SICONV (Sistema Nacional de Convênios) a liberação deve ocorrer para as seguintes URLs:

# iptables -t nat -A PREROUTING -i eth1 -d www.convenios.gov.br -p tcp --dport 443 -j RETURN
# iptables -t nat -A PREROUTING -i eth1 -d portal.convenios.gov.br -p tcp --dport 443 -j RETURN
# iptables -t nat -A PREROUTING -i eth1 -d idp.convenios.gov.br -p tcp --dport 443 -j RETURN

Espero que a dica possa ser útil aos sysadmins. Contribuições, correções e críticas são bem-vindas!

Forte abraços a todos!

Outras dicas deste autor

Squid 3 com bloqueio HTTPS

Leitura recomendada

Zoom - Aplicativo de Reunião

Alterar o endereço MAC da interface de rede em 3 passos

Registrando um nick no IRC

Como compartilhar pasta em rede no Ubuntu [vídeo]

Packet Tracer 6.2 no Arch Linux 64 KDE

  

Comentários
[1] Comentário enviado por thalesX em 29/07/2015 - 17:24h

Excelente dica!

[2] Comentário enviado por wagnerfs em 29/07/2015 - 21:36h

Mais uma dica show de bola! Parabéns por compartilhar o conhecimento.
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782

[3] Comentário enviado por rbonfim em 29/07/2015 - 21:58h

Valeu galera!
GNU/Linux é isso, compartilhar informação!
__#$
root@human:/#apt-get install -y brain
"Conhecimento é livre"

[4] Comentário enviado por prfindio em 30/07/2015 - 10:10h

Estava lendo o outro post e achei muito bom, porque preciso bloquear Facebook e Youtube aqui no trabalho e o Youtube é um grande problema, porque são lincados ao buscador Google.
Ja tinha tentado na primeira versão do Squid3 e dava muitos problemas com certificados mesmo. O problema é que tenho mais de 200 maquinas aqui sob o proxy, ainda não encontrei necessidade suficiente para dar uma mudança radical nas coisas.

Acrescentando uma alternativa para este post

Como pode haver muitos sites a liberar, como você só aí ja sitou 3, acho válido usar uma lista e um FOR dentro do script do Iptables. Eu aqui por exemplo usaria assim:
Criaria um arquivo de texto dentro do diretorio /etc/squid3/listas/ por exemplo, contendo um link por linha.
Ficaria tipo:

### listasiteshttpsaceitos.txt ###
www.convenios.gov.br
portal.convenios.gov.br
idp.convenios.gov.br
cav.receita.fazenda.gov.br
### fim ###

E la no script Iptables onde adicionaria linha por linha de comando, colocaria por exemplo:

### dentro do script ###
#retornando sites https para porta original
for httpsreturn in `cat /etc/squid3/listas/listasiteshttpsaceitos.txt`; do
iptables -t nat -A PREROUTING -i eth1 -d $httpsreturn -p tcp --dport 443 -j RETURN
done
### fim ###

Neste caso, não popularia muito o script do Iptables e seria mais facil acrescentar mais sites, só adicionando o link no final do arquivo texto.
Lembrando que só teria que rodar o script de novo para atualizar os links adicionados.

[5] Comentário enviado por rbonfim em 30/07/2015 - 10:41h

Pfindio!
Ótima alternativa! Vou usá-la também e ver com a moderação a possibilidade de inclusão do exemplo!
__#$
root@human:/#apt-get install -y brain
"Conhecimento é livre"



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts