Anda di halaman 1dari 5

squid.

conf
Veamos cómo hacer este archivo paso a paso

Proxy transparente
http_port 10.69.0.1:3128 transparent

Esta primer instrucción dice que usaremos el puerto 3128 en nuestro servidor 10.69.0.1, ademas de ello que
nuestro proxy será transparente.

el cache
cache_mem 64 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB
cache_dir aufs /var/spool/squid 1024 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

Esta es la configuración del cache hablaré acá un poco de estas lineas:


• cache_mem: memoria de objetos calientes (de forma predeterminada esta en 256, pero si su equipo
es pequeño debe bajar, el tope recomendado es RAM/3).
• cache_swap_low y cache_swap_high: son el rango de porcentajes de memoria cache que se dedica
para el intercambio.
• maximum_object_size: el tamaño máximo del objeto que va a ser almacenado en cache, los objetos
mas grandes que estos no se almacenarán, en este caso 4M que es lo predeterminado.
• cache_dir: directorio donde almacenará el cache, el parámetro aufs es mejor que ufs debido a que
maneja multihilo aumentando el rendimiento... 1024 es la cantidad de megas que usará en disco, en
nuestro caso 1G y el resto es la figura de 16 directorios o carpetas con 256 directorios cada uno,
este valor es el predeterminado (16 256).
• cache_access_log, cache_log, cache_store_log son los logs que informan el acceso, el log del
sistema de cache y el del uso del almacenamiento.

el refresco
Después del cache definimos cuanto tiempo lo guardamos, básicamente la expresión regular el tiempo
mínimo antes de descargar de nuevo (en minutos), el porcentaje de envejecimiento y el tiempo máximo para
considerarse viejo (en minutos)
# Paquetes Debian y RedHat 1 dia
refresh_pattern -i \.deb$ 1440 100% 1440
refresh_pattern -i \.rpm$ 1440 100% 1440
# Actualizaciones de windows 10 a 20 dias
refresh_pattern -i \.cab$ 14400 80% 28800
# Ejecutables 10 a 30 dias
refresh_pattern -i \.exe$ 14400 80% 43200
# Imagenes minimo 1 dia maximo 3 antes de descargar de nuevo
refresh_pattern -i \.gif$ 1440 80% 4320
refresh_pattern -i \.tiff?$ 1440 80% 4320
refresh_pattern -i \.bmp$ 1440 80% 4320
refresh_pattern -i \.jpe?g$ 1440 80% 4320
refresh_pattern -i \.xbm$ 1440 80% 4320
refresh_pattern -i \.png$ 1440 80% 4320
refresh_pattern -i \.wrl$ 1440 80% 4320
refresh_pattern -i \.ico$ 1440 80% 4320
refresh_pattern -i \.pnm$ 1440 80% 4320
refresh_pattern -i \.pbm$ 1440 80% 4320
refresh_pattern -i \.pgm$ 1440 80% 4320
refresh_pattern -i \.ppm$ 1440 80% 4320
refresh_pattern -i \.rgb$ 1440 80% 4320
refresh_pattern -i \.ppm$ 1440 80% 4320
refresh_pattern -i \.rgb$ 1440 80% 4320
refresh_pattern -i \.xpm$ 1440 80% 4320
refresh_pattern -i \.xwd$ 1440 80% 4320
refresh_pattern -i \.pict?$ 1440 80% 4320
# Video minimo 10 dias, maximo 30
refresh_pattern -i \.mov$ 14400 80% 43200
refresh_pattern -i \.mpe?g?$ 14400 80% 43200
refresh_pattern -i \.avi$ 14400 80% 43200
refresh_pattern -i \.qtm?$ 14400 80% 43200
refresh_pattern -i \.viv$ 14400 80% 43200
refresh_pattern -i \.swf$ 14400 80% 43200
refresh_pattern -i \.flv$ 14400 80% 43200
# Sonido idem que video
refresh_pattern -i \.wav$ 14400 80% 43200
refresh_pattern -i \.aiff?$ 14400 80% 43200
refresh_pattern -i \.au$ 14400 80% 43200
refresh_pattern -i \.ram?$ 14400 80% 43200
refresh_pattern -i \.snd$ 14400 80% 43200
refresh_pattern -i \.mid$ 14400 80% 43200
refresh_pattern -i \.mp2$ 14400 80% 43200
refresh_pattern -i \.mp3$ 14400 80% 43200
refresh_pattern -i \.ogg$ 14400 80% 43200
# Default
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

El tiempo que deseemos mantener almacenado algo es relativo a nuestro trabajo, en todo caso por motivos
de actualizaciones lo ideal no es dejar muy alto los valores de los archivos .deb .rpm, y si la gente de
Microsoft trabajara en serio en parches, deberia acortarse ese tiempo, pero como no es así...
Recordemos que sólo almacenará los archivos que estén dentro del maximum_object_size

Control de Acceso
Ahora, a crear las listas de control de acceso (acl : access control list), en ellas básicamente decimos que o
a quien permitimos o denegamos. En este lugar también usamos el http_access que permite o provee el
acceso a las reglas de acceso http. Una cosa importante a recordar es que estas reglas se aplican de arriba
a abajo, siendo las superiores sobre las inferiores, es decir, si permito abc arriba y luego deniego todo abajo,
significa que solamente estoy permitiendo abc y nada más.
acl all src 0.0.0.0/0.0.0.0 # todo
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255 # maquina local
acl SSL_ports port 443 873 # https, rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl CONNECT method CONNECT # metodo Connect
acl padres src 10.69.0.0/255.255.255.0 # red padres
acl hijos src 10.69.1.0/255.255.255.0 # red hijos
acl palabrasNo url_regex "/etc/squid/palabras_no"
acl palabrasSi url_regex "/etc/squid/palabras_si"
acl horario time MTWHF 18:30-20:00
acl finsemana time AS 15:00-20:00
http_access allow manager localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow palabrasSi
http_access allow padres
http_access allow horario finsemana hijos !palabrasNo
http_access deny all

Me detendré acá a explicar solo un par de reglas, src hace referencia a una o un rango de ip, time hace
referencia a dias de la semana (MTWHFAS) y rango horario (00:00-23:59).
acl palabrasNo url_regex "/etc/squid/palabras_no" y acl palabrasSi url_regex "/etc/squid/palabras_si" hacen
referencia a url_regex que busca una expresión regular en una url, y la lista de expresiones regulares esta
en los archivos /etc/squid/palabras_no y /etc/squid/palabras_si.
Un ejemplo de palabras_no es:
ardiente
ass
bdsm
bestialismo
bitch
bizarre
bizarro
blowjob
boobies
boobs
bukkake
chochito
cum
exnovia
ex\+novia
hot

Un ejemplo de palabras_si seria aquel que tiene como parte alguna denegada, por ejemplo "cum"
cumple
documento

Otras configuraciones
Finalmente es bueno dejar los mensajes del proxy en español y cambiar el nombre del host a alguno que
queramos.
error_directory /usr/share/squid/errors/Spanish
visible_hostname proxy.gulix.local

Introducción.
Denegar el acceso a ciertos Sitios de Red permite hacer un uso más racional del ancho de banda con el que
se dispone. El funcionamiento es verdaderamente simple, y consiste en denegar el acceso a nombres de
dominio o direcciones Web que contengan patrones en común.
Este manual considera que usted ya ha leído previamente, a detalle y en su totalidad el manual "Como
configurar Squid: Servidor Proxy" y que ha configurado exitosamente Squid como servidor proxy.

Software requerido.
Para poder llevar la cabo los procedimientos descritos en este manual y documentos relacionados, usted
necesitará tener instalado al menos squid-2.5STABLE1.

Definiendo patrones comunes.


Lo primero será generar una lista la cual contendrá direcciones Web y palabras usualmente utilizadas en
nombres de ciertos dominios. Ejemplos:
www.sitioporno.com
www.otrositioporno.com
sitioindeseable.com
otrositioindeseable.com
napster
sex
porn
mp3
xxx
adult
warez
celebri

Esta lista, la cual deberá ser completada con todas las palabras (muchas de está son palabras obscenas en
distintos idiomas) y direcciones Web que el administrador considere pertinentes, la guardaremos como
/etc/squid/sitiosdenegados.

Parámetros en /etc/squid/squid.conf
Debemos definir una Lista de Control de Acceso que a su vez defina al fichero /etc/squid/sitiosdenegados.
Esta lista la denominaremos como "sitiosdenegados". De modo tal, la línea correspondiente quedaría del
siguiente modo:

acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"

Habiendo hecho lo anterior, deberemos tener en la sección de Listas de Control de Acceso algo como lo
siguiente:

#
# Recommended minimum configuration:
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 redlocal src 192.168.1.0/255.255.255.0
acl password proxy_auth REQUIRED
acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"

A continuación especificaremos modificaremos una Regla de Control de Acceso existente agregando con un
símbolo de ! que se denegará el acceso a la Lista de Control de Acceso denominada sitiosdenegados:

http_access allow redlocal !sitiosdenegados

La regla anterior permite el acceso a la Lista de Control de Acceso denominada redlocal, pero le niega el
acceso a todo lo que coincida con lo especificado en la Lista de Control de Acceso denominada
sitiosdenegados.
Ejemplo aplicado a una Regla de Control de Acceso combinando el método de autenticación explicado en el
documento Cómo configurar Squid: Acceso por Autenticación:
Reglas de control de acceso: denegación de sitios.
#
# INSERT YOUR OWN RULE(S) HERE TO allow ACCESS FROM YOUR CLIENTS
#
http_access allow localhost
http_access allow redlocal password !sitiosdenegados
http_access deny all

Permitiendo acceso a sitios inocentes incidentalmente bloqueados.


Si por ejemplo el incluir una palabra en particular afecta el acceso a un sitio Web, también puede generarse
una lista de dominios o palabras que contengan un patrón pero que consideraremos como apropiados.
Como ejemplo: vamos a suponer que dentro de la Lista de Control de Acceso de sitios denegados está la
palabra sex. esta denegaría el acceso a cualquier nombre de dominio que incluya dicha cadena de
caracteres, como extremesex.com. Sin embargo también estaría bloqueando a sitios como
sexualidadjovel.cl, el cual no tiene que ver en lo absoluto con pornografía, sino orientación sexual para la
juventud. Podemos añadir este nombre de dominio en un ficheros que denominaremos /etc/squid/sitios-
inocentes.
Este fichero será definido en una Lista de Control de Acceso del mismo modo en que se hizo anteriormente
con el fichero que contiene dominios y palabras denegadas.

acl inocentes url_regex "/etc/squid/sitios-inocentes"

Para hacer uso de el fichero, solo bastará utilizar la expresión ! en la misma línea utilizada para la Regla de
Control de Acceso establecida para denegar el mismo.

http_access allow all inocentes

La regla anterior especifica que se denegará el acceso a todo lo que comprenda la Lista de Control de
Acceso denominada denegados excepto lo que comprenda la Lista de Control de Acceso denominada
inocentes. es decir, se podrá acceder sin dificultad a www.sexualidadjoven.cl manteniendo la restricción
para la cadena de caracteres sex.

Finalizando procedimiento.
Finalmente, solo bastará reiniciar Squid para que tomen efecto los cambios y podamos hacer pruebas.

service squid restart

Anda mungkin juga menyukai