Squid (Squid.conf)

Vamos configurar o SQUID

Categoria: Networking

Software: Squid

[ Hits: 26.247 ]

Por: Thiago Madella


Vamos editar o squid.conf com as seguintes características:

1. Liberar acesso para determinado IP na rede;
2. Liberar acesso para usuários VIPs;
3. Bloquear sites por url;
4. Bloquear palavras;
5. Permitir sites;
6. Memoria e cache em disco; e,
7. Proxy/Squid com Autenticação.

Bom, vamos ao trabalho de ateração do squid.conf, que vem com uma configuracao pré-definida. Eu sugiro apagar tudo e começar a criar suas próprias regras.

Bom, espero que essa configuração ajude a quem precisa.
Lembre de iniciar o squid sempre que fizer qualquer alteração, usando os seguintes comandos

service squid stop
service squid start
service squid reload


#########################################################
Author Thiago Madella
Analista de Sistemas 
Fedora Core
#########################################################
# Vamos editar em qual porta sera o proxy da sua rede.
http_port 192.x.x.x:3128 # aqui eu usei essa.
visible_hostname tucundemire

#Agora vamos configurar seu cache.
cache_mem 150 MB
cache_dir ufs /var/spool/squid 1000 24 24
cache_swap_low 90
cache_swap_high 95
maximum_object_size 256 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 0 KB

#Coloquem o endereço de  onde ira ficar seus logs. No caso eu usei tres arquivos de logs.
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

# Podemos também marcar o caminho de onde se encontra sua pasta 
# com as páginas de erro e bloqueio em Português.

error_directory /usr/share/squid/errors/Portuguese

# Vamos fazer com que o squid autentique seus usuários para ter acessos.
#Lembre de criar o arquivo com as senhas e usuários.

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 15

#Nessa linha você coloca o que irá aparecer na tela de login dos usuários.

auth_param basic realm !!!Digite usuário e senha para logar!!!
auth_param basic casesensitive off

# Bom vamos configurar as ACL's e HTTP, aqui vou colocar todas as 
# regras que nosso proxy irá executar.

#Libera toda rede nessa classe de IP

acl rede_interna src 192.168.0.0/24

# Libera para determinados IPs.

acl ip1 src 192.168.0.201/255.255.255.255
acl ip2 src 192.168.0.205/255.255.255.255 

#Libera para usuarios VIPs  cadastrados no arquivo de senhas.

acl masters proxy_auth jorge pedro antonio

# Vamos bloquear os sites pelas url - lembre de criar um arquivo.txt
# para colocar os sites que queremos bloquear.

acl sites_bloqueado url_regex -i "/etc/squid/regras/sites_bloqueado.txt"

#Agora bloqueamos as palavras negadas.

acl plv_negada url_regex -i "/etc/squid/regras/plv_negada.txt"

#Criei essa regra para bloquear tb os downloads free e extensões.

acl download url_regex -i .mov .mepg .wav .tar .mp3 .exe .zip .rar
acl usuario proxy_auth REQUIRED
acl all src 0.0.0.0/0.0.0.0
acl CONNECT method CONNECT

#Agora vamos configurar as HTTP, mas lembrem que o
# posicionamento delas interferem diretamente no bom
# funcionamento.

http_access allow localhost # permito o ip1 que tem acesso.
http_access allow lajeadoweb # permito o ip2 que tera acesso livre tb.
http_access allow masters # Aqui estou liberando para os usuarios  VIPs.

# Vamos determinar os bloqueios.

http_access deny sites_bloqueado
http_access deny plv_negada
http_access allow rede_interna

# Bloqueia acessos externos

http_access deny all

  


Comentários
[1] Comentário enviado por vida486 em 27/02/2008 - 13:22h

?comentario=Boa Tarde, amigo eu gostaria muito de montar um projeto usando Squid mas sou um pouco leigo mas gostaria muito de sua ajuda por favor teria como vc me auxiliar neste projeto meu e-mail e heltonmentz@pop.com.br ou sigaebsb@yahoo.com.br ou msn unisys_datamec@hotmail.com deste ja agradeço. Obrigado

[2] Comentário enviado por alexalves100 em 27/02/2008 - 18:22h

bom eu to com um probleminah no squid aqui!
não to conseguindo fazer ele pedir usua´rio e senah eu ja fiz tudo, mas aluma coisa devo ter feito errado! não esat fungando a autenticação!
o resto ta fungando de boa!
da uam luz ai!
alex_alves100@hotmail.com

[3] Comentário enviado por agl77 em 05/03/2008 - 20:49h

Caro Alex, cabei de te adicionar no msn!
bom, nao está pedindo a autenticação?
nos navegadores está setado o uso do proxy e a porta?
pode ser somente isso

[4] Comentário enviado por ramos1986 em 06/03/2008 - 19:45h

parabens pela conf....

[5] Comentário enviado por tobias.paraiso em 07/03/2008 - 23:11h

blz meu vélho ...
estou começando com o linux agora e definitivamente estou viciado
já implantei servidor ftp e dhcp no meu trabalho ...
lá eu utilizo o brazilFW como proxy mais estou querendo mudar
fiz igualzinho a vc ai mas aqui deu erro ...
quando ele vai iniciar o servidor aparece a seguinte mensagem ...

[root@conectiva root]# service squid start
criando diretórios de swap, espere... [ OK ]
Iniciando Squid web proxy/cache (squid): .......... [FALHOU]
Abortando após 10 segundos.

vc pode me ajudar ai ??
abração !

[6] Comentário enviado por diegoppt em 11/03/2008 - 18:11h

cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

da uma olhada se vc criou os arquivos
/var/log/squid/store.log
/var/log/squid/access.log
/var/log/squid/cache.log

[7] Comentário enviado por tobias.paraiso em 12/03/2008 - 01:08h

já tinha criado sim os arquivos ... inclusive dei uma olhada acora no meu cache.log e tem o seguinte ...

2008/03/07 21:58:34| Starting Squid Cache version 2.5.STABLE5 for i686-pc-linux-gnu...
2008/03/07 21:58:34| Process ID 14339
2008/03/07 21:58:34| With 1024 file descriptors available
2008/03/07 21:58:34| Performing DNS Tests...
2008/03/07 21:58:34| Successful DNS name lookup tests...
2008/03/07 21:58:34| DNS Socket created at 0.0.0.0, port 32770, FD 4
2008/03/07 21:58:34| Adding nameserver 10.1.1.1 from /etc/resolv.conf
2008/03/07 21:58:34| helperOpenServers: Starting 15 'ncsa_auth' processes
2008/03/07 21:58:35| Unlinkd pipe opened on FD 24
2008/03/07 21:58:35| Swap maxSize 1024000 KB, estimated 78769 objects
2008/03/07 21:58:35| Target number of buckets: 3938
2008/03/07 21:58:35| Using 8192 Store buckets
2008/03/07 21:58:35| Max Mem size: 262144 KB
2008/03/07 21:58:35| Max Swap size: 1024000 KB
2008/03/07 21:58:35| /var/spool/squid/02: (2) No such file or directory
FATAL: Failed to verify one of the swap directories, Check cache.log
for details. Run 'squid -z' to create swap directories
if needed, or if running Squid for the first time.
Squid Cache (Version 2.5.STABLE5): Terminated abnormally.
CPU Usage: 0.230 seconds = 0.057 user + 0.173 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0

só q tipo antes de pedir o 02 ele já havia pedido o 00 o 01 e eu criei pra ver se era isso ... mas sempre ele pede um amais, quando tento criar os diretórios swap ele aparece o seguinte ...
[root@conectiva root]# squid -z
2008/03/07 21:56:47| Creating Swap Directories
FATAL: Failed to make swap directory /var/spool/squid/00/00: (13) Permission denied
Squid Cache (Version 2.5.STABLE5): Terminated abnormally.
CPU Usage: 0.016 seconds = 0.003 user + 0.013 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0

como pode dar acesso negado se estou como root ?
não sei oq está acontecendo se alguem puder me ajudar agradeço muito ...
só uma coisinha ... estou utilizando uma máquinha virtual ... mas isso não tem nd haver né ?

[8] Comentário enviado por lucianopqd em 02/04/2008 - 08:38h

Caro Tobias.paraiso, seu erro aí é bem simples, o squid não está subindo por falta de uma pasta, basta fazer os seguintes passos:
mkdir /var/spool/squid
chmod -R 777 /var/spool/squid/
squid -z
pronto, agora é só executar seu service squid start
Abraço e força.

[9] Comentário enviado por massumix em 04/03/2010 - 22:22h

vlw lucianopqd =D, fiz e deu certo aqui.

[10] Comentário enviado por Jonas Forte em 14/07/2011 - 17:27h

Caro Amigo Thiago,
Sou um amante do Linux, ainda aprendendo e com um pouco de dúvidas.
Thiago queria por gentileza, umas dicas de como liberar um determinado site para determinado IP, ja tentei configurar ACLS mas não deu certo dava erro. Sempre que alguem pede para liberar por exemplo yahoo.com para ver seus emails, eu tenho que liberar geral no rc.firewall (iptables) mas ele fica com a maquina liberada para tudo igual a da Diretoria. No meu squid tenho os arquivos SitesLiberados.txt e SitesBloqueados.txt. As vezes a pessoa quer abrir um site hotmail para ver somente os emails quando eu coloco no arquivo SitesLiberados ele abre a pagina do Hotmail.com mas não abre a pagina do email. Eu queria liberar o site somente pelo IP, exemplo liberar o site globo.com para o IP 10.10.10.64.

Segue o squid.conf abaixo, obrigado pela ajuda


# Default
http_port 10.10.10.1:3128 transparent

hierarchy_stoplist cgi-bin ?

acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

#autenticacao
#auth_param ntlm use_ntlm_negotiate off
#auth_param basic program /etc/squid/bin/ncsa_auth /etc/squid/passwd
#auth_param basic children 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours
#auth_param basic casesensitive off
#

# Configuracao Padrao
cache_mem 64 MB
# cache_dir ufs /var/spool/squid/ 500 16 256
cache_access_log /etc/squid/var/logs/access.log
cache_log /etc/squid/var/logs/cache.log
cache_store_log /etc/squid/var/logs/store.log
#pid_filename /etc/squid/var/logs/squid/squid.pid

auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

# Padrao sugerido
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

# ACCESS CONTROL LISTS
# --------------------

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 10000 21 24001
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 24001 # ftp dpi
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager

# Nega pedidos de portas desconhecidas
http_access deny !Safe_ports

# Nega CONNECT para portas diferentes das SSL_ports
http_access deny CONNECT !SSL_ports

# Regras especificas
# ------------------

acl redelocal src 10.10.10.0/255.255.255.0 127.0.0.1

#acl arq_usuarios_skyler url_regex "/usr/local/squid/etc/sites_usu_skyler"
#acl usuarios_skyler proxy_auth moratti julio antonio
acl Block url_regex -i "/etc/squid/Bloqueados"
acl bloq urlpath_regex -i "/etc/squid/Bloqueados"
acl bloqsites dstdomain -i "/etc/squid/SitesBloqueados"
acl NoBlock url_regex -i "/etc/squid/Desbloqueados"
acl nobloq urlpath_regex -i "/etc/squid/Desbloqueados"
acl nobloqsites dstdomain -i "/etc/squid/SitesDesbloqueados"
acl macaddress arp 00:1B:24:31:28:0D
#Blacklist
#acl black_porn1 dstdomain -i "/etc/blacklist/domains_porn"
#acl black_porn2 urlpath_regex -i "/etc/blacklist/urls_porn"

#Bloquear IP
#acl ip1 src 192.168.0.36
#acl ip2 src 192.168.0.95

acl hotmail_domains dstdomain .hotmail.msn.com
header_access Accept-Encoding deny hotmail_domains

http_access deny Block !NoBlock
http_access deny bloqsites !nobloqsites
http_access deny bloq !nobloq
#http_access deny !macaddress all
#http_access deny arq_usuarios_skyler

#http_access deny ip1
http_access allow redelocal
#http_access deny ip2

# Nega o acesso de todos por esse proxy
http_access deny all

http_reply_access allow all

# Permite pedidos ICP de todos
icp_access allow all

# Default
# cache_mgr darte-adm@dominio.com.br

# Configuracao para proxy transparente
# ------------------------------------
#httpd_accel_port 80
#httpd_accel_host virtual
#httpd_accel_with_proxy on
#httpd_accel_uses_host_header on

coredump_dir /var/spool/squid

# Linhas acrescidas
visible_hostname proxy.localdomain.com.br

# Para monitoramento
#acl snmppublic snmp_community local_user
#snmp_port 3401
#snmp_access allow localhost
#snmp_access deny all

#error_directory /etc/squid/errors/Portuguese
error_directory /usr/share/squid/errors/Portuguese


Contribuir com comentário

  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts