Forçando sites HTTPS a passar fora do Squid 3

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

[ Hits: 9.403 ]

 


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

Uso do XFreeRDP

Configurar link aggregation com LACP no Ubuntu

Instalação do SNMP no Ubuntu

Bloqueio funcional do Tor Browser

Configuração de rede IPv6 estática no Ubuntu

  

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