objetivo

Instalar um SQUID que autentica via modulo LDAP.

instalando

squid

aptitude install squid

configurando

squid.conf

#### porta #################################
 
http_port 3128
 
### hostname ###################
 
visible_hostname proxy.empresa
 
### dns servers #################
 
dns_nameservers 172.16.1.1
 
### configuracoes de cache ############
# referencia: http://www.visolve.com/squid/squid24s1/cache_size.php
# referencia: http://www.visolve.com/squid/squid24s1/cache_size.php#cache_replacement_policy
 
# setando para 2 gigas, os outros 2 gigas vamos deixar 1 giga para sistema e
# 1 giga para operação do cache em disco
 
cache_mem 2048 MB
 
# tamanho de objetos em memoria e disco
 
maximum_object_size_in_memory 512 KB
maximum_object_size 64 MB
minimum_object_size 0 KB
 
# quais o rate para objetos devem serem swapados
cache_swap_low 90
cache_swap_high 95
 
# heap GDSF: otimiza o "hit rate" por manter objetos pequenos e
# e populares no cache, guardando assim um numero maior de objetos
# ao inves de buscar no disco ja esta na memoria, maior velocidade
# na resposta ao usuario
 
memory_replacement_policy heap GDSF
 
# heap LFUDA: otimiza o "byte hit rate" por manter objetos populares
# no cache sem levar em conta o tamanho. Se for utilizado este, o
# maximum_object_size devera ser aumentado para otimizar o LFUDA.
 
cache_replacement_policy heap LFUDA
 
# Lembrando que cada 10GB de cache o squid consome 100MB de ram para gerenciar isto
# colocando 100GB de STORAGE o squid vai usar 1 Giga da RAM para gerenciar o cache do disco
# estou reservando entao 3 gigas para o squid, 2 para cache_mem e 1 para cuidar do cache em disco, sobrando 1 GB para o sistema usar.
# Em relacao ao metodo de gerenciamento do cache, aufs é + rapido que ufs
 
cache_dir aufs /var/spool/squid 100240 16 256
 
# user/group/manager
 
cache_mgr infraestrutura@empresa.com.br
cache_effective_user proxy
cache_effective_group proxy
 
### ttl de objetos no cache ###########################
# http://www.squid-cache.org/Doc/config/refresh_pattern/
 
refresh_pattern ^ftp:                1440        20%        10080
refresh_pattern ^gopher:        1440        0%        1440
refresh_pattern -i (/cgi-bin/|\?) 0        0%        0
refresh_pattern (Release|Package(.gz)*)$        0        20%        2880
refresh_pattern .                0        20%        4320
 
### autenticacao #########################################
# http://wiki.squid-cache.org/Features/Authentication
 
# LDAP
 
auth_param basic program /usr/lib/squid/ldap_auth -v3 -h 172.16.1.1 -p 389 -bou=Usuarios,dc=empresa,dc=local
auth_param basic children 5
auth_param basic realm PROXY de TESTE - REDES
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive on
 
 
###
### listas de controle #######################
###
 
# ?
hierarchy_stoplist cgi-bin ?
 
# acl ligada a autenticacao
 
# acesso padrao daemon squid
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
 
# redes para icp (proxy filho)
acl localnet src 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
 
# portas seguras
acl SSL_ports port 443                # https
acl SSL_ports port 563                # snews
acl SSL_ports port 873                # rsync
 
# portas comuns
acl Safe_ports port 80                 # http
acl Safe_ports port 21                 # ftp
acl Safe_ports port 443                # https
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 Safe_ports port 6500               # Video RNP
 
# acl zimbras
acl zimbraWebmail url_regex ^http://webmail.empresa.com.br$
 
# acl que especifica metodos de conectividade
acl purge method PURGE
acl CONNECT method CONNECT
 
# acl que especifica tipo de consulta QUERY em cgi-bin
acl QUERY urlpath_regex cgi-bin \?
 
# acls com excessoes em headerss
acl shoutcast rep_header X-HTTP09-First-Line ^ICY\s[0-9]
acl apache rep_header Server ^Apache
 
# acl com lista de sites que nao devem ser cacheados
acl semcache url_regex "/etc/squid/acls/semcache"
 
# acl com lista de sites que nao necessitam de autenticacao
acl semauth url_regex www.bb.com.br .bancobrasil. .google. .caixa.gov.br
 
# acl que especifica sites/destinos internos
acl empresa dst 172.16.0.0/16 10.61.0.0/16 192.168.20.0/23
 
# acl com sites que devem ser bloqueados (criado por mim)
acl sitesbloqueados url_regex "/etc/squid/acls/sitesbloqueados"
 
# acl com sites que devem ser liberados, tratando excessoes do sitesbloqueados
acl sitesliberados url_regex "/etc/squid/acls/sitesliberados"
 
# acl com lista de ips vip (tudo liberado para esses)
acl vips src "/etc/squid/acls/vips"
 
# acl para especificar uso obrigatorio de proxy
acl ntlm_users proxy_auth REQUIRED
 
###
### controle de acesso #############################################
###
 
# liberacoes padrao daemon/localhost
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
 
# nao libera portas diferentes de Safe_ports e SSL_ports
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
 
# nao cacheia cgi-bin
cache deny QUERY
 
# permite acesso direto para sites internos e sites da acl 'semauth'
always_direct allow empresa
always_direct allow semauth
 
# nao faz cache dos sites nas acls 'semcache', 'empresa', 'semauth' e 'zimbras'
no_cache deny semcache
no_cache deny semauth
no_cache deny empresa
no_cache deny zimbraWebmail
no_cache deny zimbraMbox1
no_cache deny zimbraMbox2
no_cache deny zimbraMbox3
 
# libera acesso sem proxy para acls 'semauth' e 'empresa'
http_access allow all semauth
http_access allow all empresa
 
# libera acesso pra ips vips
http_access allow vips
 
# libera acesso com proxy para sites restantes
#http_access allow ldap_users
http_access allow ntlm_users
 
# bloqueando acesso a sites da acl 'sitesbloqueados' com excessao dos sites da acl 'sitesliberados'
http_access deny all sitesbloqueados !sitesliberados
 
# bloqueia qualquer acesso que nao tenha casado com as regras acima
http_access deny all
 
###
### processando em paralelo ###########
###
 
# http://www.visolve.com/squid/squid24s1/delaypool.php
 
pipeline_prefetch on
 
### reiniciando rapidamente #######
 
shutdown_lifetime 1 second
 
### estatisticas de conexao #######
 
# If enabled, squid will keep statistics on each client.
# This can become a memory hog after a while, so it’s best to keep it disabled.
 
client_db off
 
### conexoes #################
 
# Sends a connection-close to clients
# that leave a half open connection to the squid server.
 
half_closed_clients off
 
### controles misc #####################################
 
upgrade_http0.9 deny shoutcast
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
 
### controles de ICP (proxys filho) ###########################
 
icp_access allow localnet
icp_access deny all
 
### snmp ####################
 
acl snmpcommunity snmp_community empresa
snmp_port 3401
snmp_access allow snmpcommunity localhost
snmp_access deny all
 
### logs #################
 
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
 
# Log de objetos guardados. Pode ser desativado para melhorar a performance
cache_store_log none
 
### idioma das mensagens do squid para usuarios ################
 
error_directory /usr/share/squid/errors/Portuguese
 
### arquivos ###################
 
hosts_file /etc/hosts
coredump_dir /var/spool/squid

file system

Primeiro, separe o /var/spool/squid em uma partição específica

Se estiver usando ReiserFS desligue o notail e noatime.

Se estiver usando EXT3 desligue o noatime.

O Linux salva em cada arquivo a informação de data e hora de ultimo acesso além de ultima modificação, e como o Squid utiliza seu timestamp próprio, é inutil contar com o timestamp do filesystem. Para melhorar o acesso aos arquivos de cache setamos então o diretório de cache com o parâmetro “noatime”

Se você não separou o sistema de arquivos, ainda assim dá para desligar o notime do diretório

chattr -R +A /var/spool/squid

file descriptors

Edite o /etc/security/limits.conf

Aumente o numero de file descriptors para 10240, adicionando as seguintes linhas no final do arquivo:

proxy		-	nofile		10240
root		-	nofile		10240

a máquina precisa ser reiniciada para as alterações entrarem em vigor.

referencias



squid_autenticando_em_ldap.txt · Last modified: 2011/01/04 13:29 by gutocarvalho
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0