Instalando o Squid + SquidGuard

Algumas das dificuldades dos administradores de servidores proxy é o gerenciamento dos usuários através das regras de ACL do Squid. O SquidGuard minimiza este problema proporcionando uma configuração simples e intuitiva. Este artigo tem por objetivo configurar o SquidGuard e integrá-lo com o Squid. Próximos artigos mostrarão como configurar as ACLs do SquidGuard.

[ Hits: 110.998 ]

Por: Gilberto Russo em 21/06/2006


Instalando o Squid



Ambiente:
  • S.O.: Conectiva Linux;
  • Versão do SquidGuard: 1.2.0;
  • Versão do DB Berkeley: Berkeley DB 4.1.

Squid


Pré-requisitos:

Para implementar o servidor é necessário:
  • que o acesso à Internet esteja configurado corretamente;
  • recomenda-se que o servidor tenha uma boa quantidade de memória (por exemplo, 512 MB) e que seja usado um disco rígido SCSI para permitir um acesso mais rápido aos arquivos armazenados no buffer (Este tipo de disco é recomendado para servidores que tenham grande capacidade de vazão de informações).

Instalação


Para instalação do servidor proxy, execute o Synaptic e instale os seguintes pacotes:
  • squid
  • squid-auth
  • squid-extra-templates

ou utilize a linha de comando, executando o apt-get:

# apt-get install squid.*

Configuração


Entre no diretório /etc/squid e edite o arquivo squid.conf e faça as seguintes modificações (configuração padrão, alterar conforme sua necessidade):

################
# Porta e cache
http_port   3128
cache_mem   128 MB
cache_dir   ufs /var/cache/squid 300 16 256

# Log
cache_access_log  /var/log/squid/access.log
cache_log   /var/log/squid/cache.log

#ACL's
acl password proxy_auth REQUIRED
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 CONNECT method CONNECT

# Direitos de Acesso
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow password
http_access deny all

Salve o arquivo e saia.

Iniciando o Squid:

Entre no diretório /etc/rc.d/init.d/ e digite no prompt:

# squid start

    Próxima página

Páginas do artigo
   1. Instalando o Squid
   2. Instalando o Berkeley DB e o SquidGuard
Outros artigos deste autor

Acesso remoto utilizando FreeNX

Osiris - Integridade do sistema de arquivos

Firewalls redundantes utilizando VRRP

Monitoração de Hosts e Serviços com o NAGIOS

Configuração do DKIM no Debian com Postfix e Múltiplos Domínios

Leitura recomendada

Analisando log Squid do Mikrotik no SARG

Servidor Squid - Autenticação e níveis de privilégio

Instalando o MySAR no CentOS 5.5

Proxy transparente com Squid 2.6 e FWBuilder

Squid avançado + OpenLDAP

  
Comentários
[1] Comentário enviado por agk em 21/06/2006 - 16:10h

Muito bom, fico no aguardo da parte que fale um pouco especificamente sobre o squid-guard, como usá-lo.
[ ]'s.

[2] Comentário enviado por analistaslack em 17/01/2007 - 17:17h

Instalei, mas não nega os sites da blacklist

Tenho o squid instalado e instalei o SquidGuard para negar o acesso aos sites que estiverem na Blacklist. Instalei o BD Berkeley que eram um dos pre-requisitos para instalar o squidGuard e depois instalei o SquidGuard 1.2.0... Até aí tudo ok!!!! Criei o squidguard.conf dentro do diretorio do SquidGuard e configurecom muita atenção. Fui no conf do squid e adicionei a seguinte linha redirect_program /usr/local/bin/squidGuard -C /usr/local/squidGuard/squidguard.conf. Baixei a BlackList no site http://squidguard.shalla.de/shallalist.html e terminei a configuração. Fiz a chama do squid, iniciou blz.... Dei um ps ax para ver se tinha iniciado o squidGuard e lá estava ele.... Bem, fui fazer o teste acessando uma página que estava no blacklist, para minha surpresa, consegui acessar o site normalmente. Vi que o squidGuard não estava bloqueando nada. não sei o que fazer.... Vou postar aqui o meu squidguard.conf,o qual tenho plena certeza que não está errado para vcs verem se acham algum erro:

## Conf do SquidGuard
#
// Define a pasta onde estão as blacklists
dbhome /etc/squid/squidguard/blacklists
// Define onde serão armazenados os logs do SquidGuard
logdir /var/log/squidguard
// Define a rede do órgão
src orgao {
ip 192.168.254.0/24
}
// Define o caminho das listas negras
dest ads {
domainlist ads/domains
urllist ads/urls
# expressionlist ads/expressions
# abaixo coloque o ip do servidor web onde está armazenada a página que
# exibirá a mensagem de erro
redirect http://localhost/index.html
}
dest adult {
domainlist adult/domains
urllist adult/urls
# expressionlist adult/expressions
# abaixo coloque o ip do servidor web onde está armazenada a página que
# exibirá a mensagem de erro
redirect http://localhost/index.html
}
// Nega acesso às listas declaradas
acl {
orgao {
pass !adult !ads all
}
// Indica a página de erro
default {
pass none
# abaixo coloque o ip do servidor web onde está armazenada a página que
# exibirá a mensagem de erro
redirect http://localhost/index.html
}
}

Quem souber como resolver esse mistério, por favor me ajude.....

Estou precisando muito....

Obrigado

[3] Comentário enviado por cmsfilho em 01/06/2007 - 13:51h

tive o mesmo problema, a questão era que eu não tinha gerado os arquivos db (/usr/sbin/squidGuard -c /etc/squidguard.conf -C all) e permissão para para ler esse arquivos não estava correta. Gere os arquivos db e depois mude a permissão para que o squid possa ler.

[4] Comentário enviado por duduzinhu em 20/09/2007 - 16:06h

Caro Amigo
Estou com problemas no meu SQUID ao colocar ele com suporte a antivirus.
Uso o SQUID 3.1, o SQUIDCLAMAV 2.5 e o CLAMAV 0.91.2. Todos devidamente configurados (eu acho =D). O servidor antivirus do clamav (clamd) esta rodando em minha maquina, assim como o SQUID. Acontece que quando eu entro em algum site ou faço algum download de um arquivo com a estensão que deve ser escaneada pelo CLAMAV, os logs do squidclamav me retornam a seguinte mensagem:

Thu Sep 20 11:14:13 2007 [28974]:Request:http://rapidshare.com/files/27602652/setup-4.1.2.e... 127.0.0.1/localhost.localdomain eduardo GET
Thu Sep 20 11:14:13 2007 [28974]:regex matched: http://rapidshare.com/files/27602652/setup-4.1.2.e...
Thu Sep 20 11:14:15 2007 [28974]:File size is 172970.00
Thu Sep 20 11:14:15 2007 [28974]:Sending STREAM to clamd.
Thu Sep 20 11:14:15 2007 [28974]:Received port 30830 from clamd.
Thu Sep 20 11:14:15 2007 [28974]:Trying to connect to clamd [port: 30830].
Thu Sep 20 11:14:15 2007 [28974]:Error when downloading url http://rapidshare.com/files/27602652/setup-4.1.2.e...
Thu Sep 20 11:14:15 2007 [28974]:CURLOPT_ERRORBUFFER: The requested URL returned error: 407

Já quando faço download de um arquivo com estensão que não deve ser escaneada os logs do squidclamav me retornam a seguinte mensagem:

Thu Sep 20 11:14:16 2007 [28974]:Request:http://images.rapidshare.com/img/img/terminatr_bac... 127.0.0.1/localhost.localdomain eduardo GET
Thu Sep 20 11:14:16 2007 [28974]:No antivir check for url:http://images.rapidshare.com/img/img/terminatr_bac...
Thu Sep 20 11:14:16 2007 [28974]:Total process time 0.000 sec for URL: http://images.rapidshare.com/img/img/terminatr_bac... 127.0.0.1/localhost.localdomain eduardo GET

O meu squidclamav.conf é o seguinte:

proxy http://127.0.0.1:3128
logfile /usr/local/squidclamav/logs/squidclamav.log
redirect http://127.0.0.1/cgi-bin/clwarn.cgi
debug 1
force 1
stat 1
clamd_ip 127.0.0.1
clamd_port 3310
timeout 60
regexi ^.*\.exe$
regexi ^.*\.com$
regexi ^.*\.zip$
regexi ^.*\.bz2$
regexi ^.*\.tgz$
regexi ^.*\.tar$
regexi ^.*\.gz$
regexi ^.*\.rar$
regexi ^.*\.iso$
regexi ^.*\.pdf$
regexi ^.*\.bat$
regexi ^.*\.src$
abort ^.*\/cgi-bin\/.*$
abort ^.*\..html$
abort ^.*\..htm$
abort ^.*\..css$
abort ^.*\..xml$
abort ^.*\..xsl$
abort ^.*\..js$
abort ^.*\..ico$
aborti ^.*\..gif$
aborti ^.*\..png$
aborti ^.*\..jpg$
aborti ^.*\..tif$
aborti ^.*\..swf$

A parte do squid.conf que envolve o squidclamav é a seguinte:

redirect_program /usr/local/squidclamav/bin/squidclamav
redirect_children 15

Quando inicio o CLAMD (servidor de antivirus do clamav) os logs do clamav são os seguintes:

Thu Sep 20 10:48:44 2007 -> +++ Started at Thu Sep 20 10:48:44 2007
Thu Sep 20 10:48:44 2007 -> clamd daemon 0.91.2 (OS: linux-gnu, ARCH: i386, CPU: i386)
Thu Sep 20 10:48:44 2007 -> Running as user root (UID 0, GID 0)
Thu Sep 20 10:48:44 2007 -> Log file size limit disabled.
Thu Sep 20 10:48:44 2007 -> Reading databases from /var/lib/clamav
Thu Sep 20 10:48:48 2007 -> Loaded 305982 signatures.
Thu Sep 20 10:48:48 2007 -> Bound to address 127.0.0.1 on tcp port 3310
Thu Sep 20 10:48:48 2007 -> Setting connection queue length to 300
Thu Sep 20 10:48:48 2007 -> Unix socket file /tmp/clamd.socket
Thu Sep 20 10:48:48 2007 -> Setting connection queue length to 300
Thu Sep 20 10:48:48 2007 -> Listening daemon: PID: 28359
Thu Sep 20 10:48:48 2007 -> Archive: Archived file size limit set to 3145728000 bytes.
Thu Sep 20 10:48:48 2007 -> Archive: Recursion level limit set to 10.
Thu Sep 20 10:48:48 2007 -> Archive: Files limit set to 5000000.
Thu Sep 20 10:48:48 2007 -> Archive: Compression ratio limit set to 300.
Thu Sep 20 10:48:48 2007 -> Archive: Limited memory usage.
Thu Sep 20 10:48:48 2007 -> Archive support enabled.
Thu Sep 20 10:48:48 2007 -> Algorithmic detection enabled.
Thu Sep 20 10:48:48 2007 -> Portable Executable support enabled.
Thu Sep 20 10:48:48 2007 -> ELF support enabled.
Thu Sep 20 10:48:48 2007 -> Detection of broken executables enabled.
Thu Sep 20 10:48:48 2007 -> Mail files support enabled.
Thu Sep 20 10:48:48 2007 -> Mail: Recursion level limit set to 128.
Thu Sep 20 10:48:48 2007 -> OLE2 support enabled.
Thu Sep 20 10:48:48 2007 -> PDF support enabled.
Thu Sep 20 10:48:48 2007 -> HTML support enabled.
Thu Sep 20 10:48:48 2007 -> Self checking every 3600 seconds.

O CLAMD está rodando na porta 3310 e no ip 127.0.0.1 com o usuario root.

Ja desabilitei o Selinux e o firewall mas nada muda.
Uso o Fedora Core 7
Ja testei com o SQUID 2.5 e uma versão mais antiga do SQUIDCLAMAV mas tbm não muda os logs.

Espero que possas me ajudar

Obrigado
Eduardo

[5] Comentário enviado por elciojr em 30/05/2008 - 09:31h

Estou com problemas na instalação do SquidGuard, mesmo com as dicas desse artigo. Vejam:
making install.bin in squidGuard-1.2.0
cd src && make install.bin
make[1]: Entering directory `/usr/local/squidGuard-1.2.0/src'
gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/l ocal/BerkeleyDB/include -c sgDb.c
sgDb.c: In function `sgDbInit':
sgDb.c:101: warning: passing arg 2 of pointer to function from incompatible poin ter type
sgDb.c:101: warning: passing arg 4 of pointer to function makes pointer from int eger without a cast
sgDb.c:101: error: too few arguments to function
sgDb.c:107: warning: passing arg 2 of pointer to function from incompatible poin ter type
sgDb.c:107: warning: passing arg 4 of pointer to function makes pointer from int eger without a cast
sgDb.c:107: error: too few arguments to function
make[1]: ** [sgDb.o] Erro 1
make[1]: Leaving directory `/usr/local/squidGuard-1.2.0/src'
make: ** [install.bin] Erro 2

ALGUEM PODE ME AJUDAR?
OBRIGADO!
ELCIO

[6] Comentário enviado por chikoo em 28/07/2008 - 10:03h

Olá galera tudo bem? consegui configurar perfeitamente o squid com intervalos e tudo, mas o squidguard não, este eu consigo bloquear tudo mas nao consigo manter os horarios de almoço, as ajudas que busquei na internet não funcionaram se puderem me ajudar, obrigado. Mandando ai os os .conf do squid e squidguard.

squid

http_port 10.1.1.63:3128 transparent
visible_hostname sti
hierarchy_stoplist cgi-bin ?
hierarchy_stoplist cgi-bin \?

cache_mem 450 MB
maximum_object_size_in_memory 256 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid/ 62048 16 256
cache_acess_log /var/log/squid/acess.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

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 SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports


http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge

acl almoco time 12:00-16:00
acl intervalo url_regex -i "/etc/squid/intervalo"
http_access allow intervalo almoco
http_access deny intervalo

redirect_program /usr/bin/squidGuard

acl permitidos url_regex -i "/etc/squid/permitidos"
http_access allow permitidos

acl bloqueados url_regex -i "/etc/squid/bloqueados"
http_access deny bloqueados

acl palavrasproibidas dstdom_regex "/etc/squid/palavrasproibidas"
http_access deny palavrasproibidas

acl palavrasproibidas1 dstdom_regex "/etc/squid/palavrasproibidas1"
http_access deny palavrasproibidas1

acl site dstdomain https://www2.bancobrasil.com.br/aapf/login.jsp?aapf.IDH=sim
always_direct allow site


acl redelocal src 10.1.1.63/24
delay_pools 1
delay_class 1 2
delay_parameters 1 65563/65563 16550/16550
delay_access 1 allow redelocal
http_access allow localhost
http_access allow redelocal
http_access deny all

http_access allow localhost
http_access allow redelocal
http_access deny all

squidguard

#
# CONFIG FILE FOR SQUIDGUARD
#

dbhome /var/lib/squidguard/db
logdir /var/log/squid

#
# TIME RULES:
# abbrev for weekdays:
# s = sun, m = mon, t =tue, w = wed, h = thu, f = fri, a = sat

time workhours {
weekly mtwhf 12:00 - 16:00
}


acl {

default {
pass !in-addr all
redirect http://narutoproject.com.br
}
}

dest ads {
domainlist blacklists/ads/domains
urllist blacklists/ads/urls
}
dest aggressive {
domainlist blacklists/aggressive/domains
urllist blacklists/aggressive/urls
}
dest audio-video {
domainlist blacklists/audio-video/domains
urllist blacklists/audio-video/urls
}
dest drugs {
domainlist blacklists/drugs/domains
urllist blacklists/drugs/urls
}
dest gambling {
domainlist blacklists/gambling/domains
urllist blacklists/gambling/urls
}
dest porn {
domainlist blacklists/porn/domains
urllist blacklists/porn/urls
}
dest proxy {
domainlist blacklists/proxy/domains
urllist blacklists/proxy/urls
}
dest redirector {
domainlist blacklists/redirector/domains
urllist blacklists/redirector/urls
}
dest spyware {
domainlist blacklists/spyware/domains
urllist blacklists/spyware/urls
}
dest violence {
domainlist blacklists/violence/domains
urllist blacklists/violence/urls
}
dest warez{
domainlist blacklists/warez/domains
urllist blacklists/warez/urls
}
dest porn2{
domainlist BL/porn/domains
urllist BL/porn/urls
}
dest socialnet{
domainlist BL/socialnet/domains
urllist BL/socialnet/urls
}
dest tracker{
domainlist BL/tracker/domains
urllist BL/tracker/urls
}

acl {

default within workhours {
pass !porn !porn2
}else{
pass
redirect http://narutoproject.com.br
}
}

[7] Comentário enviado por Cr1stt0f3r em 15/04/2009 - 18:01h

root@InternetServer:/etc/squid# squid start
2009/04/15 17:00:16| Invalid Proxy Auth ACL 'acl password proxy_auth REQUIRED' because no authentication schemes are fully configured.
FATAL: Bungled squid.conf line 12: acl password proxy_auth REQUIRED
Squid Cache (Version 2.6.STABLE18): Terminated abnormally.


Ola, gostaria que me ajudasse na correção desse problema..

abraços.

[8] Comentário enviado por rengaf1 em 15/03/2014 - 10:17h

preciso do squidguard autenticando os usuarios no active directory pode me ajudar?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts