jueves, 13 de marzo de 2008

Como configurar Squid Proxy???


Para empezar explicare la función de cada línea y a medida que voy avanzando procuro dar ejemplos. Las lineas que tengan el signo de numero "#" al comienzo quiere decir que es en consola y como administrador (root).

CONFIGURACION DEL SERVIDOR PROXY SQUID

# apt-get install squid
--> Instalamos el paquete de squid

La primer recomendacion que hare es que a el archivo original squid.conf le saquemos una copia para no tener que modificar o leer mas de 3.000 lineas que este contiene. Para copiar o mover el archivo (mv) le daremos los siguientes comandos en la consola
# cd /etc/squid/
explicacion: nos paramos en el directorio "squid"

# mv /etc/squid/squid.conf /etc/squid/squid.old
explicacion: mueva /etc/squid/squid.conf a /etc/squid/squid.old (.old quiere decir archivo viejo)

# touch /etc/squid/squid.conf (nuevo archivo en blanco el de nuestra configuracion)
explicacion: cree un archivo llamado squid.conf

#pico squid.conf

Ahora si empezamos la configuracion en el nuevo archivo.
Puerto del squid: En esta opcion indicaremos el puerto por el cual squid escuchara las peticiones de los usuarios, por defecto tiene el 3128 pero tambien pueden usar el 8080. Es comun que squid escuche por cualquiera de estos dos puertos.
http_port 10.3.6.152:3128

Especificamos la ip de nuestro equipo porque en caso de tener dos interfaz el servicio saldria por las dos.

Puerto para compartir la cahe.
icp_port 0 (la dejamos por defecto "0=cero")

Cantidad de memoria fisica (RAM) que utilizara la cache.
Esto depende de la cantidad de memoria que tiene nuestro equipo.
cache_mem 32 MB

Ruta y espacio en disco duro donde se almacenara la cache: que por defecto trae predeterminado 100 MB si desea ampliarla solo es cuestion de modificar el 100 por la cantidad deseada. Pero ahi que tener en cuenta que si el tamaño que le damos es mayor que el del disco real, squid se bloqueara.
cache_dir ufs /var/spool/squid 100 16 256

100=tamaño en la cache
16=cantidad de directorios
256=cantidad de subdirectorios
En caso de tener otro disco se le cambia la ruta "/var/spool/squid" (spool=colas)

Lista de control de acceso (ACL), esta opcion nos permite decidir quienes tienen acceso a Squid y quienes no, a que paginas pueden acceder o las que podamos denegar.

Especificamos el rango de IPs que tendran acceso al proxy para que puedan tener salida a internet.

acl all src 0.0.0.0/0.0.0.0
acl red src 10.3.6.128/255.255.255.128

acl=lista de control de acceso
all=acepte
dst=direccion destino en la que podemos poner una url, dominio, direccion ip
src=direccion de origen
red=nombre de la zona ala que le daremos acceso a cualquier maquina que tenga una ip en el rango de 10.3.6.128 con mascara de 255.255.255.128

Ejemplo: para denegar una pagina determinada, el nombre de la zona puede ser cualquiera.
acl correo dst www.hotmail.com
acl noquiero dst www.yahoo.com

Ejemplo: Para que cuando los usuarios miren paginas con contenido de imagenes y no las puedan ver le agregamos la siguiente linea. (.jpg y las otras son la extension de imagenes).
acl imagenes urlpath_regex \.jpg$ \.png$ \.jif$

otra forma de darle acceso a los computadores es agregar las ip estaticas(no cambian) en un archivo determinado.
ejemplo: /etc/squid/permitidos
acl listado src "/etc/squid/permitidos"
ejemplo de lo q contiene el archivo permitidos
10.3.6.64
10.3.6.56

Para que las reglas de control de acceso se cumplan tenemos que especificar que haremos con ellas. (las linea por defecto es "http_access deny all" que significa deniegue todo)

http_access deny imagenes <-- no mostrara ninguna imagen http_access deny correo <-- deniegue la zona correo osea hotmail http_access deny noquiero <-- deniegue la zona noquiero osea yahoo http_acceess allow red <--acepte la zona llamada red http_access deny all <-- deniegue todo lo que no este permitido Cuando al proxy le llega una petición, se comprueba en orden (de arriba hacia abajo) cada regla hasta que alguna sea aplicable y, cuando se aplique, ya no se miran las demas reglas. Opciones para ajustar la cache. Con esto controlamos el tamaño de los ficheros que pueden bajar los usuarios:
request_header_max_size 10 KB
request_body_max_size 512 KB
reply_body_max_size 512 KB

Ahora guardamos los cambios nos salimos a la consola. Antes de recargar en la consola le damos el siguiente comando, squid -z para que nos cree los dir que especificamos en "cache_dir ..." Si en el momento de hacer el squid -z nos saca un error asi " Please set 'visible _hostname' " le agregamos la siguiente linea arribita de http_accerr deny.....
visible_hostname localhost

Y ahora recargamos el servicio y lo corremos como un demonio.
# /etc/init.d/squid start (start=iniciarlo, restart=reiniciarlo, stop=pararlo)

Cada vez que apliquemos alguna configuracion debemos recargar el servicio.
Y no es por demas decir que para poder probar nuestro proxy tenemos que poner en el navegador (browser) la direccion ip del proxy. Ejemplo con Mozilla Firefox en ingles.
>En la parte de arriba del navegador ahi una opcion "Tools"
>Despues "Options..."
>En la pestaña de "Advanced"
>Le damos en la subpestaña "Network" y
>Ponemos el chulito en "Manual proxy configuration" y en los cuadritos ponemos la ip y el puerto. Asi HTTP Proxy: 10.3.6.152 Port: 3128

Agregar Proxy padre, para salir ha internet.
Si nuestro squid no es el unico proxy corriendo y ahi un "padre" dependiendo de la jerarquia, solo ahi que comunicar el nuestro con el proxy principal.En este ejemplo comunicaremos el squid que hemos configurado con el proxylan.sena.edu.co que es el que nos da la salida a internet.
cache_peer proxylan.sena.edu.co parent 8080 0 default

¿Como miramos que el servicio si esta corriendo?
En la consola le damos el comando:
netstat -an | more <-- nos mostrara los puertos de los servicios que estan corriendo, si nos muestra el 3128 o el del proxy es porque el servicio esta arriba. Este signo | "es una tuberia" que nos muestra un poco mas simple el netstat -an. Ahora para probar solo intentamos navegar ha algun sitio web que denegamos o filtramos y listo. Para concluir les mostrare las unicas lineas de configuracion del archivo squid.conf, para que copien y peguen en el de ustedes y solo modifiquen unas cosas de acuerdo a sus necesidades.

RESUMEN:
http_port 10.3.6.152:3128
icp_port 0
cache_mem 32 MB
cache_dir ufs /var/spool/squid 100 16 256
cache_peer proxylan.sena.edu.co parent 8080 0 default

acl imagenes urlpath_regex \.jpg$ \.png$ \.jif$
acl correo dst www.hotmail.com
acl noquiero dst www.yahoo.com
acl all src 0.0.0.0/0.0.0.0
acl red src 10.3.6.128/255.255.255.128
visible_hostname localhost

http_access deny imagenes
http_access deny correo
http_access deny noquiero
http_access allow red
http_access deny all

request_header_max_size 10 KB
request_body_max_size 512 KB
reply_body_max_size 512 KB


No hay comentarios: