jueves, 24 de julio de 2008

CONFIGURACION SQUID

Abrimos la consola, nos logueamos como root y empezamos a instalar el paquete Squid
#apt-get install squid
Ingresamos al directorio donde se encuentra el archivo de configuración del Squid.
#cd /etc/squid/
Empezamos a editar el archivo de configuración.
#nano squid.conf
Dentro del archivo empezamos a descomentar y configurar nuestro proxy. La primera configuración a realizar se encuentra en la linea 73 aproximadamente.
Para ir a ella le damos control + w + control +t, seguido del numero de la linea, en este caso: 73.
En esta línea encontramos el puerto por el cual escucha el Proxy se puede utilizar así o simplemente especificas el puerto, como se utiliza en el segundo ejemplo. Puedes especificar más de un puerto. Por defecto squid maneja el 3128.
http_port 192.168.5.2:3128
http_port 8080
En la linea 263 aproximadamente se encuentra el puerto por el cual nuestro Proxy se comunicara con otro proxy. Es muy importante ya que este permite la comunicación con otros Proxies.
icp_port 3130
El siguiente parámetro a configurar es el proxy con el cual nos comunicaremos. Aquí se especifica la dirección ip del Proxy o el nombre completo del host (FQDN) con el que nos comunicaremos por el puerto icp mencionado anteriormente, la palabra parent significa que nos comunicaremos con un Proxy padre, si quisiéramos comunicarnos con un Proxy hermano seria sibling. El 80 es el puerto por el cual escucha el Proxy con el que nos estamos comunicando. 3130 es el puerto que utilizan los proxies para comunicarsen. Y por último Default es una opción que se le da a esta línea
#cache_peer 172.20.49.51 parent 80 3130 default
Después de este procedimiento vamos a la linea 771 aproximadamente y la descomentamos, es decir, borramos el símbolo # y colocamos el numero de megas que queremos que haga cache en la memoria RAM. Si se posee un servidor con al menos 128 MB de RAM, establezca 16 MB como valor para este parámetro:
cache_mem 16 MB
Como vamos? Bien!! ahora nos dirigimos a la línea 788 y 789, la primera nos indica el nivel en porcentaje de capacidad mínima aceptada por squid, es decir, los objetos se mantendrán en el cache hasta que se cope el límite mínimo y la segunda especifica en porcentaje el límite máximo que utiliza
squid para mantener objetos en el cache. Si el valor asignado es del 95%, squid comenzara a eliminar los objetos del cache cuando se tope el 95% de la capacidad asignada a squid. Descomentamos ambas líneas.
cache_swap_low 90
cache_swap_high 95
Ahora nos ubicamos en la linea 804, donde encontraremos un parámetro, que indica el tamaño máximo que se almacena en la cache del disco duro, en KB. Por defecto se utiliza 4MB. Es decir que squid no almacerá archivos que superen este tamaño. Procedemos a descomentarlo ya que es muy importante y definimos el tamaño.
maximum_object_size 3000 KB

Nos ubicamos en la línea 1026 y procedemos a descomentarla. Este parámetro define la ruta donde se guardará la cache en disco duro y la cantidad en megas que se utilizará, Sea cauteloso con el tamaño de caché especificado, ya que si se especifica un determinado tamaño de caché y éste excede al espacio real disponible en el disco duro, Squid se bloqueará. Además de este parámetro, incluye tres parámetros numéricos adicionales. El primero incluye el número de MB que se utilizarán en este directorio para el cache, por defecto 100MB, el segundo el número de directorios a utilizar en el primer nivel (16 por defecto) y el tercero el número de subdirectorios en el segundo nivel (256 por defecto).
cache_dir ufs /var/spool/squid 100 16 256
En la línea 1120 encontramos un parámetro que define en donde se almacenan los mensajes del sistema, descomentamos la linea.
cache_log /var/log/squid/cache.log
Nos dirigimos a las líneas 2070 2071 y 2072 y las descomentamos. Estos parámetro define si un objeto debe almacenarse en el cache cuando el usuario ha interrumpido una solicitud, si el objeto tiene el valor especificado en min. o falta más del valor especificado en max. se abortará la transferencia.
Si se ha realizado una transferencia mayor del valor en porcentaje especificado en pct, no se abortará el almacenamiento del objeto. Se recomienda utilizar los valores por defecto:
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
Ahora pasamos a crear las ACL´s es decir, la listas de Control de Acceso, estas listas mas los permisos que se les da, son muy importantes a la hora de configurar squid. Ya que por medio de estas damos acceso o restricción a host, dominios o palabras. Se configuran aproximadamente en la linea 2450.
Se definen de la siguiente manera:
acl nombre_acl tipo_acl descripción
acl nombre_acl tipo_acl "ubicación_del archivo"

Tipos de acl:
src : Origen, Dirección IP de un cliente
dst : Destino, Dirección IP del servidor
srcdomain : Dominio Origen, nombre de dominio del cliente
dstdomain : Destino, Nombre de domino del server
time : Hora del día y día de la semana
url_regex : URL regular expression pattern matching
urlpath_regex: URL-path regular expression pattern matching, leaves out the protocol and hostname
proxy_auth : Autenticación de usuario a traves de un proceso externo
maxconn : Número máximo de limite de conexiones de una dirección IP

Definimos las ACL´s con las que vamos a trabajar.
acl dirnoper src "/etc/squid/dirnoper"
acl thiney.com src 192.168.5.0/255.255.255.0
acl palabrasneg url_regex "/etc/squid/palabrasneg"
acl nodominio dstdomain "/etc/squid/nodominio"

Creamos las http_acces en la linea 2576, este parámetro es muy importante ya que nos indica que se debe hacer con la lista, es decir si se permite el acceso o lo deniega. En pocas palabras es una regla de control de acceso.

Sintaxis de las http_access:
http_access (deny o allow) (nombre de lista de control de acceso)
deny: denegar
allow: permitir.
http_access deny palabrasneg
http_access deny nodominio
http_access deny dirnoper
http_access allow all
Hasta aquí sería una configuración normal, guardamos los cambios y procedemos a configurar los parámetros para la autenticación, por favor continúe con este manual.
Muy bien hasta aquí sería una configuración normal, guardamos los cambios y procedemos a crear los archivos.
#touch dirnoper
#nano dirnoper
Dentro de este archivo deben ir direcciones IP, por qué direcciones ip y no dominios, por el tipo de la acl que estamos creando, recuerda que es una src. Así que dentro de este debemos poner direcciones que vamos a permitir o que vamos a negar como en este caso, pero estas direcciones no son externas, NO son direcciones publicas, son direcciones de mi red local.
192.168.5.67
192.168.5.42
Guardamos y salimos
El siguiente archivo a crear es palabrasneg, estos archivos recuerda que deben ir en la carpeta de squid.
#touch palabrasneg
#nano palabrasneg
En este archivo van todas las palabras que usted quiere negar en este caso, recuerda que el único que decide que va hacer con la lista es el parámetro http_access, que se configuró en la linea 2576. la lista se puede llamar palabrasneg, pero si usted en los permisos no lo esta negando, no se lo negara.... Estas palabras se negaran al momento de usted utilizar un buscador como google, yahoo, etc..
sexo
porno
xxx
online
3x
Guardamos y salimos
Por último creamos el archivo nodominio, en este archivo incluiremos todos los dominios que queramos restringir, es mejor poner dominio.com y www.dominio.com, para asegurarnos que de ambas formas quede bloqueado.
www.cualquierdominio.com
cualquierdominio.com
www.otracosa.com
otracosa.com
www.loquesea.com
loquesea.com
Guardamos y salimos

2 comentarios:

KATERINE dijo...

Hola Thiney, tu blog esta muy bonito, ojala lo sigas llenando con cosas que se que nos serviran bastante.

Voy a probar tus manuales, pues otra vez se fue de formateada mi lapto y chao los servicios, me parece que esta vez fuiste muy clara en cada uno de los pasos a seguir, ojala me funcione y te estare contando.

Kate

ANA dijo...

holas profe thiney me gusto mucho tu manual y medio resultado.