Pular para o conteúdo

Forçando sites HTTPS a passar fora do Squid 3

Dica publicada em Linux / Redes
Renato Cesar Ribeiro Bonfim Jr rbonfim
Hits: 10.127 Categoria: Linux Subcategoria: Redes
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
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!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Squid 3 com bloqueio HTTPS

Registrando um nick no IRC

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

Servidor vs Computador Convencional

DNS Dinâmico no Linux com ddupdate - DuckDNS

Como copiar arquivos do Windows para o Linux

#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

Entre na sua conta para comentar.