Howto Squid + SquidGuard + Sarg
Todo ello se implementará usando Apache (1.3) para el servidor web, Squid (2.5) como proxy caché, SquidGuard (1.x) para filtrar y redireccionar con Squid, y Sarg (2.x) para generar las estadísticas de Squid.
Software usado:
Sistema operativo Linux Debian Sarge ( Kernel 2.4.x o 2.6.x )
Apache 1.3.3x ( Servidor web )
Apache-utils 1.3.3x ( htpasswd lo usaremos para proteger carpetas con contraseñas )
Squid 2.5.x ( Proxy cache de Internet )
SquidGuard 1.x ( Plugin para Squid para filtrar y redireccionar)
Sarg 2.x ( Generador de estadísticas para Squid )
Hardware usado:
Placa base Asus P2L97-S
Pentium II 300MHz (Klamath)
Ram 320MB PC100
HD 20GB 5400rpm
1 Tarjetas Ethernet 10/100Mbps
Anteriormente corria este mismo servicio un Pentium MMX 166MHz con 256MB de Ram y el funcionamiento era bastante optimo.
Comenzamos la instalación de los programas, como root ejecutaremos lo siguiente:
server:~# apt-get update && apt-get install apache apache-utils squid squidguard sarg
Una vez instaladas todas las aplicaciones editaremos el archivo de configuración de Squid con nuestro editor preferido, descomentaremos y configuraremos las opciones necesarias para adaptarlo a nuestro gusto.
El siguiente es un ejemplo de como no debe descomentarse un parámetro:
# Mal
#Opción incorrectamente descomentada
# http_access 3128
# Mal
#Opción incorrectamente descomentada
#
http_access 3128
# Bien
#Opción correctamente descomentada
#
http_access 3128
Editaremos /etc/squid/squid.conf
Las opciones que mas nos insteresa descomentar y configurar son estas, las demas las dejaremos en su configuración por defecto:
http_port 3128
cache_mem 32 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 8192 KB
ipcache_size 2048
ipcache_low 90
ipcache_high 95
fqdncache_size 2048
cache_dir ufs /var/spool/squid 2000 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
hosts_file /etc/hosts
redirect_program /usr/bin/squidGuard
acl our_networks src "/etc/squid/accept"
http_access allow our_networks
http_access allow localhost
http_access deny all
http_reply_access allow all
icon_directory /usr/share/squid/icons
short_icon_urls on
error_directory /usr/share/squid/errors/Spanish
coredump_dir /var/spool/squid
Crearemos el archivo /etc/squid/accept y le añadiremos la IP de las maquinas de nuestra red que van a tener acceso al Proxy.
# Ejemplo de configuracion
server:~# cat /etc/squid/accept
192.168.1.4
192.168.1.5
192.168.1.6
Ahora configuraremos SquidGuard y le añadiremos unos filtros, nuestro archivo de configuración de SquidGuard tienes que tener esta configuración:
server:/etc/squid# cat /etc/squid/squidGuard.conf
dbhome /var/lib/squidguard/db
logdir /var/log/squid
dest porn
{
domainlist blacklists/porn/domains
urllist blacklists/porn/urls
expressionlist blacklists/porn/expressions
}
dest ads
{
domainlist blacklists/ads/domains
urllist blacklists/ads/urls
}
dest audio-video
{
domainlist blacklists/audio-video/domains
urllist blacklists/audio-video/urls
}
dest aggressive
{
domainlist blacklists/aggressive/domains
urllist blacklists/aggressive/urls
}
dest drugs
{
domainlist blacklists/drugs/domains
urllist blacklists/drugs/urls
}
dest gambling
{
domainlist blacklists/gambling/domains
urllist blacklists/gambling/urls
}
dest hacking
{
domainlist blacklists/hacking/domains
urllist blacklists/hacking/urls
}
dest mail
{
domainlist blacklists/mail/domains
}
dest proxy
{
domainlist blacklists/proxy/domains
urllist blacklists/proxy/urls
}
dest violence
{
domainlist blacklists/violence/domains
domainlist blacklists/violence/urls
}
dest warez
{
domainlist blacklists/warez/domains
urllist blacklists/warez/urls
}
acl {
default {
pass !ads !aggressive !audio-video !drugs !gambling !hacking !porn! proxy !violence! warez all
redirect http://localhost
}
}
Descargaremos los filtros de http://www.squidguard.org/blacklist/
server:~# cd /tmp
server:/tmp# wget http://ftp.teledanmark.no/pub/www/proxy/squidGuard/contrib/blacklists.tar.gz
server:/tmp# tar -zxvf blacklists.tar.gz -C /var/lib/squidguard/db
Configuraremos Sarg y Apache para poder leer las estadisticas de uso del servidor Proxy.
Editaremos /etc/squid/sarg.conf y descomentaremos y configuraremos as siguientes opciones.
language Spanish
access_log /var/log/squid/access.log
temporary_dir /tmp
output_dir /var/www/squid-reports
Editaremos /etc/apache/httpd.conf y añadiremos estas lineas:
<Directory "/var/www/squid-reports">
AuthName "Squid Reports"
AuthType Basic
AuthUserFile /etc/.htpasswdsquidreports
require valid-user
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Crearemos un archivos de contraseñas encriptadas para autorizar la entrada en Sarg.
server:/tmp# htpasswd -c -m /etc/.htpasswdsquidreports USUARIO
Reiniciamos todos los servicios.
server:/tmp# /etc/init.d/apache restart
server:/tmp# /etc/init.d/squid restart

