[Ubuntu-BR] Compilar Squid para https
Paulo Correia
psctec em hotmail.com
Quinta Setembro 7 23:23:22 UTC 2017
Amigo,
Se for usar o squid de forma transparente é muito complicado e seria o "man in the middle" https://pt.wikipedia.org/wiki/Ataque_man-in-the-middle, tendo que gerar certificados para as máquinas.
É muito trabalho.
As melhores formas para https são configurar o squid no navegador ou deixá-lo com autenticação, abaixo seguem as configurações:
Configurado no Navegador
Deixe o arquivo /etc/squid.conf igual ao conteúdo abaixo:
#
# Porta do Proxy
#
http_port 8080
#
# Nome do Host
#
visible_hostname nome.localhost
#
# ACLS Padrao
#
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl purge method PURGE
acl CONNECT method CONNECT
#
# Confirma as ACLS Padrao
#
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
icp_access allow all
#
# Permite a navegacao apenas para IPS especificos
#
acl grupo src "/etc/squid/ips_a"
http_access deny !grupo
#
# ACL de Liberacao e Bloqueio de sites
#
acl hp_livres url_regex "/etc/squid/livres"
acl hp_bloq url_regex "/etc/squid/bloqueados"
#
# Permite a navegacao apenas para os IPS especificos
#
http_access allow hp_livres grupo
http_access deny hp_bloq grupo
#
# Bloqueia todo o resto
#
http_access deny all
#
# Opcoes de Refresh
#
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
#
# Erros em Portugues
#
error_directory /usr/share/squid/errors/Portuguese
Para criar o arquivo ips_a, como root execute o comando:
nano ips_a
ou
vi ips_a
Coloque os endereços de IP que irão usar. (um IP por linha)
Para criar o arquivo livres, como root execute o comando:
nano livres
ou
vi livres
Coloque os sites que terão navegação livre. (um site por linha)
Para criar o arquivo bloqeados, como root execute o comando:
nano bloqueados
ou
vi bloqueados
Coloque os sites que terão navegação bloqueada. (um site por linha)
Edite como root o arquivo /etc/squid/squid.conf e substitua nome.dominio pelo conteudo do /etc/hostname se o nome não tiver ponto coloque nome.localhost.
Após a edição salve e feche o arquivo.
Após todas as configurações, como root execute o comando:
squid -k rconfigure
Obs: Se trocar a regra http_access deny all por http_access allow all, a regra acl hp_livres url_regex "/etc/squid/livres" e o arquivo livres não são mais necessários. (Só será bloqueado os bloqueados)
Autenticado
Deixe o arquivo squid.conf igual ao conteúdo abaixo:
#
# Porta do Proxy
#
http_port 8080
#
# Nome do Host
#
visible_hostname debi-squid.localhost
#
# ACLS Padrao
#
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl purge method PURGE
acl CONNECT method CONNECT
#
# Confirma as ACLS Padrao
#
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
icp_access allow all
#
# ACL para autenticacao
#
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
auth_param basic children 5
auth_param basic realm ENTRE COM SEU LOGIN E SENHA.
auth_param basic casesensitive off
acl autenticacao proxy_auth REQUIRED
#
# Permite a navegacao apenas para IPS especificos
#
acl grupo src "/etc/squid/ips_a"
http_access deny !grupo
#
# ACL de Liberacao e Bloqueio de sites
#
acl hp_livres url_regex "/etc/squid/livres"
acl hp_bloq url_regex "/etc/squid/bloqueados"
#
# Permite a navegacao apenas para os usuarios logados e para os IPS especificos
#
http_access allow hp_livres autenticacao grupo
http_access deny hp_bloq autenticacao grupo
#
# Bloqueia todo o resto
#
http_access deny all
#
# Opcoes de Refresh
#
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
#
# Erros em Portugues
#
error_directory /usr/share/squid/errors/Portuguese
instale o pacote apache2-utils, como root execute o comando:
Ubuntu
apt-get install apache2-utils
Para criar o arquivo squid_passwd, como root execute o comando:
htpasswd -cb squid_passwd usuario senha
Caso já exista o arquivo e se queira adicionar um novo usuário, como root execute o comando:
htpasswd -b squid_passwd usuario1 senha1
Para criar o arquivo ips_a, como root execute o comando:
nano ips_a
ou
vi ips_a
Coloque os endereços de IP que irão usar. (um IP por linha)
Para criar o arquivo livres, como root execute o comando:
nano livres
ou
vi livres
Coloque os sites que terão navegação livre. (um site por linha)
Para criar o arquivo bloqeados, como root execute o comando:
nano bloqueados
ou
vi bloqueados
Coloque os sites que terão navegação bloqueada. (um site por linha)
Edite como root o arquivo /etc/squid/squid.conf e substitua nome.dominio pelo conteudo do /etc/hostname se o nome não tiver ponto coloque nome.localhost.
Após a edição salve e feche o arquivo.
Após todas as configurações, como root execute o comando:
squid -k rconfigure
Obs: Se trocar a regra http_access deny all por http_access allow all, a regra acl hp_livres url_regex "/etc/squid/livres" e o arquivo livres não são mais necessários. (Só será bloqueado os bloqueados)
Bloqueio de Sites SSL
1) Como root edite o arquivo /etc/squid/squid.conf
Comente a linha abaixo colocando um # na frente da mesma:
acl Safe_ports port 443 563
Coloque após as regras ACL de Liberacao e Bloqueio de sites o texto:
#
# Acl de Bloqueio de sites SSL
#
acl ssl_port 443
acl hps_bloq url_regex "/etc/squid/sslbloq"
http_acess deny CONNECT hps_bloq ssl_port
Salve o arquivo e saia
2) Como root crie o arquivo /etc/squid/sslbloq
Coloque os sites que terão navegação bloqueada. (um site por linha)
Debug
Colocando a linha mais abaixo no squid.conf antes da linha do access.log é habilitado o debug, onde são exibidas por qual(is) regras (ACL) foi barrado ou passou.
Ele grava estas informações no cache.log
debug_options ALL,1 33,2 28,9
Obs:
Se for o caso bloqueie a navegação na porta 80 e 443 no iptables
iptables -A INPUT -p tcp --destination-port 80 -j DROP
iptables -A FORWARD -p tcp --destination-port 80 -j DROP
iptables -A INPUT -p tcp --destination-port 443 -j DROP
iptables -A FORWARD -p tcp --destination-port 443 -j DROP
Em 06/09/2017 09:46, Infortec Itaituba escreveu:
Bom dia,
Alguém poderia me indicar um artigo para compilar o squid para lê as portas https?
Enviado do Email para Windows 10
Mais detalhes sobre a lista de discussão ubuntu-br