Você está na página 1de 3

19/5/2014 Entendendo e Configurando Squid transparente com HTTPS

http://djosino.blogspot.com.br/2012/03/entendendo-e-configurando-squid.html 1/14
[http://3.bp.blogspot.com/-
MkLy5WYOFEU/T1Kvz0VKA2I/AAAAAAAAAA0/ewxd4LK97A0/s1600/img
4.jpg]
O que squid ?

Resumidamente o squid um software livre com finalidade de atuar como
cache proxy. O squid que suporta protocolos http (80), ftp(21) e https
(443), dentre outros.
Sua principal utilizao se d pelo sistema de cache e controle de
acessos, com isso usurios da rede podem ser gerenciados por: sites,
domnios, dias da semana, hora, largura de banda, e mais.
Configurao Bsica
Irei escrever as principais configuraes para o bom entendimento do que
vem pela frente.
No squid.conf voc deve definir a porta que ir escutar as requisies http,
para que ele saiba que deve funcionar de maneira trasparente para
adicionar o 'transparent' aps a porta, como mostra o exemplo:
http_port 3128 transparent
Agora devemos adicionar um NAT, para que as requisies nativamente
enviadas a porta 80, sejam direcionadas a porta 3128 ou qualquer outra
que voc tenha escolhido para o squid.
Para isso, vamos adicionar uma regra ao firewall e habilitar o nat em seu
servidor.
Habilitando mdulo do NAT no iptables:
# modprobe iptable_nat
Entendendo e Configurando Squid
transparente com HTTPS
19/5/2014 Entendendo e Configurando Squid transparente com HTTPS
http://djosino.blogspot.com.br/2012/03/entendendo-e-configurando-squid.html 2/14
Para habilitar os redirects basta alterar o arquivo ip_forward:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Obs: Em distribuies como CentOS, importante alterar tambm no
/etc/sysctl.conf.
Feito isso, criar a regra de redirecionamento de porta e mascarar as
requisies ps-processadas interface de conexo com a internet, no
caso deste por exemplo uma interface de conexo pppoe (ppp0).
# Rede Local : eth1 / Internet : ppp0
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT -
-to-port 3128
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
E o https ?
Ento, quando se est iniciando no squid o mais comum imaginar que
redirecionando as requisies https (porta 443) para a porta que o squid
est escutando, neste caso 3128, da seguinte forma:
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT
--to-port 3128

nesse momento que voc se lembra que os dados que trfegam via
https so diferentes dos dados que trafegam via http, o que bem bvio
mas costumamos ignorar.
Por enquanto vamos lembrar apenas que os dados que trafegam via https,
so criptografados e necessitam de certificados para a comunicao
segura cliente / servidor.
Vamos ao que interessa ?
Humm no, mas daremos mais um passo.
Para deixar seu squid pronto para ouvir dados que trafeguem
criptografados por https, precisamos criar uma chave e um certificado que
ser utilizado automaticamente pelo squid, para resolver a negociao de
certificados cliente / servidor.
Para isso, mais quatro comandos:
# openssl genrsa -des3 -out openssl.key 1024
# openssl req -new -key openssl.key -out openssl.csr
19/5/2014 Entendendo e Configurando Squid transparente com HTTPS
http://djosino.blogspot.com.br/2012/03/entendendo-e-configurando-squid.html 3/14
[Comandos] Instalao
Ruby - Iniciando ( Oper
Ruby on Rails - A instal
Ruby - Iniciando ( Mto
Ruby - Iniciando ( Parte
Formatao Exata de El
Configurar ou Recuper
Recuperar GRUB 2 / U
Jtwain && Windows ( Pr
Otimizando o carregam
Entendendo e C 58
# cp openssl.key openssl.key.old
# openssl rsa -in openssl.key.old -out openssl.key
# openssl x509 -req -days 365 -in openssl.csr -signkey openssl.key -out
openssl.crt

Agora temos nosso certificado assinado (openssl.crt) e a chave que o
assinou (openssl.key).
Enfim, Squid e https !!!

Agora vamos configurar o squid para ouvir as requisies https na porta
3130, admitindo que seu certificado e chave estejam em /etc/squid/.
https_port 3130 transparent cert=/etc/squid/openssl.crt
key=/etc/squid/openssl.key

Agora basta redirecionar as requisies https para a porta 3130.
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j
REDIRECT --to-port 3130
... e por Fim, seu squid agora filtra de forma transparente ao cliente os
dados que trafegam pela 443.
Obs: Se sua rede tem ips que no devem ser filtrados pelo squid basta
que em seu iptables tenha uma regra semelhante a esta:
# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.10 -p tcp --
dport 443 -j ACCEPT
Download do "meu" squid.conf [https://docs.google.com/open?
id=0B46eiU8kDQHeQmM4Qy11Sk9WOVk] .
Sinta-se livre pra comentar ou sugerir (ajudaria bastante).
At o prximo post.
Postado h 3rd March 2012 por Danilo Josino
Incio Sidebar
Danilo Josino
pesquisar