Com o objetivo obter um melhor desempenho em algumas páginas e apreender a criar um filtro de conteúdo, para por exemplo, impedir o download de arquivos tipo .src.
Essa configuração foi feita apenas para um computador, ou seja, apenas o computador onde o squid está configurado precisa ter acesso ao proxy.
O arquivo é fruto de uma pequena pesquisa na internet e do livro "Redes e Servidores Linux, Guia Prático" de Carlos Morimoto. Além de uma pequena ajuda da Revista Linux Magazine número 16.
Segue abaixo o arquivo configurado.
# Arquivo de configuração do Squid /etc/squid/squid.conf
# 22 de maio de 2006
# J. F. Mitre
# -----------------------------------
# Define a porta do squid
http_port 3128
# Hostname da máquina.
# RECOMENDAÇÃO DO SQUID:
# Não especificar se não obtiver mensagens de erro
# visible_hostname $HOSTNAME
# Opções recomendadas pelos Squid
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache QUERY
# Especifica o tamanho da memória RAM reservada ao squid
cache_mem 32 MB
# Especifica o tamanho máximo do objeto residente na
# memória RAM reservada ao squid
maximum_object_size_in_memory 64 KB
# Especifica o tamanho máximo do objeto residente no HD
maximum_object_size 10 MB
# Especifica o tamanho mínimo do objeto residente no HD
minimum_object_size 0 MB
# A percentagem na qual começa a o esvaziamento do cache
cache_swap_low 90
# A limite do consumo do cache
cache_swap_high 95
# Especificações do cache em disco
# cache_dir tipo diretorio tamanho__MB num_de_dir num_de_subdir
cache_dir ufs /var/spool/squid 128 16 256
# Especifica o log do sistema
# É conveniente não modificar o path
cache_access_log /var/log/squid/access.log
# Padrão de atualização do cache
# Define que o arquivo será verificado sempre que tiver
# mais de 5 minutos de criado; e será modificado se tiver
# mais de 2 dias (2280) no HD.
# As três linhas precisam ser escritas em conjunto.
refresh_pattern ^ftp: 5 20% 2280
refresh_pattern ^gopher: 5 0% 2280
refresh_pattern . 5 20% 2280
# -----------------------------------------
# Regras ACL
# -----------------------------------------
# Libera o squid para ser utilizado por todos os ips
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
# Regra localhost
# especifica que o localhost tem acesso ao proxy
acl localhost src 127.0.0.1/255.255.255.255
# Regra para a rede
# especifica quais ips da rede possuiram acesso ao proxy
# acl redelocal src 172.0.0.0/255.255.0.0
# Especificação das portas seguras
acl SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
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 Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
# Configuração de permissão de acesso
# Especificando o acesso a urls com certas palavras no dominio
acl palavraschave dstdom_regex -i /etc/squid/palavras.squid"
# Especificando o acesso a certos dominios
acl dominios dstdomain -i "/etc/squid/dominios.squid"
# Especificando o acesso a certos tipos de arquivo
acl arquivos url_regex -i "/etc/squid/arquivos.squid"
# -----------------------------------------
# Regras http_access
# -----------------------------------------
# Configuração da permissão de acesso
http_access deny dominios
http_access deny palavraschave
http_access deny arquivos
# regras básicas para o gerenciamento do proxy
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
# Proibe o acesso fora das portas listadas
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# Permite o acesso do localhost ao proxy
http_access allow localhost
# http_access allow redelocal
# Nega o acesso a qualquer ip que não tenha
# sido listado como permitido pelas regras
# anteriores
http_access deny all
# Proxy transparente
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Notem que algumas configurações precisam ser modificadas conforme o objetivo da máquina, como o fato da rede local ter ou não acesso ao proxy. Outro tipo de modificação são os caminhos dados aos arquivos que contém as palavras, domínios e extensões proibidas.
É evidente que cada usuário/rede terá objetivos distintos. O meu era desempenho de conexão, não tenho uma rede, e portanto, não preciso me dedicar a cuidar da hora de acesso de cada usuário nem restringir o volume que cada máquina pode "sugar" da banda de rede, por exemplo.
[update]
Na versão 2.6 do squid (que acompanha o Ubuntu Edgy) possuí linhas diferentes da apresentada aqui para definir um proxy transparente. O Júlio Santos Monteiro escreveu um simples e excelente post sobre essas modificações.
Basicamente consiste em remover as 4 últimas linhas do arquivo acima e no lugar escrever:
http_port 3128 transparent vhost
[/update]
Ainda sou inexperiente, mas me deram a responsabilidade de configurar um firewall linux (ubuntu) recheado de regras. Depois de trocentas páginas pesquizadas sem sucesso e vários dias sob a maior pressão eis que surge o seu blog... Claro... Objetivo... Eficaz e Profissional!
ReplyDeleteGraças ao seu artigo sobre firewall em conjunto com este aqui sobre squid e mais algumas coisinhas que eu já sabia, consegui montar o dito cujo
É graças a pessoas como você que que não tem medo nem preguiça de compartilhar seu conhecimento... que as coisas "podem dar certo"
Parabéns pelo nível dos artigos e pela iniciativa de "fazer acontecer".
Puxa, obrigado.
ReplyDeleteSão comentários iguais a esses que nos fazem continuar a escrever.
Até breve.
E ai rapaz? Meu nome é Henrique sou iniciante em squid, passei quase o dia procurando algo bem elaborado, muito bom o seu blog, valeu mesmo
ReplyDeleteSe tiver algum material sobre o Dansguardian agradecemos
Abraços
Henrique
Henrique,
ReplyDeleteprimeiro obrigado pelos elogios.
Quanto ao Dansguardian, eu já pensei em escrever várias vezes sobre ele, mas nunca consegui ganhar a fluência necessária para colocar as explicações de forma suficientemente clara. Então, eu não me arrisco ainda nesse campo. De qualquer forma, se um dia isso mudar, "o blog será o primeiro a saber"...
[]'s
Boa noite, eu tenho um centos 6 onde já foi instalado o webmin e atraves dele instalei o squid proxy, qual o nome do arquivo .conf e onde ele se localiza?
ReplyDeletedesde já agradeço.
Rogério, não sei te responder, mas a internet diz que é /etc/squid/squid.conf
ReplyDeleteEu até uso esse sistema, mas não uso mais o squid.