[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