Configuración Servidor Proxy para Linux
Introducción.
Servidor Proxy
Al traducirlo literalmente Proxy es como un delegado o apoderado es decir el que tiene el poder sobre otro, aplicado este concepto en redes es el servidor o dispositivo que permite realizar conexiones de red indirectas hacia otras redes.
Una aplicación común de los Servidores Proxy es funcionar como caché de contenido de Red (principalmente HTTP), proporcionando a los clientes un caché de páginas y archivos disponibles a través de
Servicio Squid
Squid es un Servidor Proxy puede funcionar como Servidor Proxy y caché de contenido de Red para los protocolos HTTP, FTP, GOPHER y WAIS, Proxy de SSL, caché transparente, WWCP, aceleración HTTP, caché de consultas DNS y otras muchas más como filtración de contenido y control de acceso por IP y por usuario.
Versiones recomendadas
Para poder llevar al cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitará tener instalado al menos lo siguiente:
• | SQUID 2.6.STABLE18 |
• | httpd-2.0.x (Apache), como auxiliar de caché con aceleración. |
• | Todos los parches de seguridad disponibles para la versión del sistema operativo que esté utilizando. No es conveniente utilizar un sistema con posibles vulnerabilidades como Servidor Proxy. |
• | Ubuntu 8.0.4 |
Instalación Squid
Para la instalación se debe seguir los siguientes pasos:
No se instala por defecto, pero se encuentra en los repositorios de Ubuntu, por lo que puede ser instalado a través de Synaptic, Aptitude o apt-get
1. Desde una ventana de terminal digite apt-get install squid
2. Abrir el archivo squid.conf con el comando gedit /etc/squid/squid.conf
3. Encontrar la línea: visible_hostname e ingresar el nombre hostname visible_hostname
Configuración básica.
Squid utiliza el archivo de configuración localizado en /etc/squid/squid.conf, y podrá trabajar sobre este utilizando su editor de texto simple preferido. Existen un gran número de parámetros, de los cuales recomendamos configurar los siguientes:
• | http_port |
• | cache_dir |
• | Al menos una Lista de Control de Acceso |
• | Al menos una Regla de Control de Acceso |
Parámetro http_port:
El estándar indica que los Puertos Registrados (rango desde 1024 hasta 49151) recomendados para Servidores Proxy pueden ser el 3128 y
De modo predefinido Squid utilizará el puerto 3128 para atender peticiones, sin embargo se puede especificar que lo haga en cualquier otro puerto disponible o bien que lo haga en varios puertos disponibles a la vez. No es recomendable configurar el servicio de Proxy transparente ya que se pierde el objetivo del servicio limitar el uso del Internet a los usuarios.
Para configurar el puerto del servicio editamos el archivo con la siguiente línea
# # You may specify multiple socket addresses on multiple lines. # # Default: http_port 3128 http_port 3128 http_port 8080 |
Si desea incrementar la seguridad, puede vincularse el servicio a una IP que solo se pueda acceder desde la red local. Considerando que el servidor utilizado posee una IP 192.168.1.254, puede hacerse lo siguiente:
# # You may specify multiple socket addresses on multiple lines. # # Default: http_port 3128 http_port 192.168.1.254:3128 http_port 192.168.1.254:8080 |
Parámetro cache_mem.
El parámetro cache_mem establece la cantidad ideal de memoria para lo siguiente:
• | Objetos en tránsito. |
• | Objetos frecuentemente utilizados (Hot). |
• | Objetos negativamente almacenados en el caché. |
El parámetro cache_mem especifica un límite máximo en el tamaño total de bloques acomodados, donde los objetos en tránsito tienen mayor prioridad.
cache_mem 16 MB |
Parámetro cache_dir:
Este parámetro se utiliza para establecer que tamaño se desea que tenga el caché en el disco duro para Squid, de modo tal que encontrará la siguiente línea:
cache_dir ufs /var/spool/squid 100 16 256 |
Se puede incrementar el tamaño del caché hasta donde lo desee el administrador. Mientras más grande sea el caché, más objetos se almacenarán en éste y por lo tanto se utilizará menos el ancho de banda. La siguiente línea establece un caché de 700 MB:
cache_dir ufs /var/spool/squid 700 16 256 |
Los números 16 y 256 significan que el directorio del caché contendrá 16 directorios subordinados con 256 niveles cada uno. No modifique esto números, no hay necesidad de hacerlo.
Controles de acceso.
Es necesario establecer Listas de Control de Acceso que definan una red o bien ciertas máquinas en particular. A cada lista se le asignará una Regla de Control de Acceso que permitirá o denegará el acceso a Squid
Listas de control de acceso.
Regularmente una lista de control de acceso se establece con la siguiente sintaxis:
acl [nombre de la lista] src [lo que compone a la lista] |
Si se desea establecer una lista de control de acceso que abarque a toda la red local, basta definir
acl miredlocal src 192.168.1.0/255.255.255.0 |
También puede definirse una Lista de Control de Acceso especificando un archivo localizado en cualquier parte del disco duro, y la cual contiene una lista de direcciones IP. Ejemplo:
acl permitidos src "/etc/squid/permitidos" |
El archivo /etc/squid/permitidos contendría algo como siguiente:
192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.15 192.168.1.16 192.168.1.20 192.168.1.40 |
Lo anterior estaría definiendo que
Reglas de Control de Acceso.
Estas definen si se permite o no el acceso hacia Squid. Se aplican a las Listas de Control de Acceso. Deben colocarse en la sección de reglas de control de acceso definidas por el administrador, es decir, a partir de donde se localiza la siguiente leyenda:
# # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # |
La sintaxis básica es la siguiente:
http_access [deny o allow] [lista de control de acceso] |
En el siguiente ejemplo consideramos una regla que establece acceso permitido a Squid a
http_access allow permitidos |
También pueden definirse reglas valiéndose de la expresión !, la cual significa no. Pueden definirse, por ejemplo, dos listas de control de acceso, una denominada lista1 y otra denominada lista2, en la misma regla de control de acceso, en donde se asigna una expresión a una de estas. La siguiente establece que se permite el acceso a Squid a lo que comprenda lista1 excepto aquello que comprenda lista2:
http_access allow lista1 !lista2 |
Este tipo de reglas son útiles cuando se tiene un gran grupo de IP dentro de un rango de red al que se debe permitir acceso, y otro grupo dentro de la misma red al que se debe denegar el acceso.
Parámetro chache_mgr.
De modo predefinido, si algo ocurre con el caché, como por ejemplo que muera el procesos, se enviará un mensaje de aviso a la cuenta webmaster del servidor. Puede especificarse una distinta si acaso se considera conveniente.
Cache_mgr joseperez@midominio.net |
Iniciando, reiniciando y añadiendo el servicio al arranque del sistema.
Una vez terminada la configuración, ejecute el siguiente mandato para iniciar por primera vez Squid:
service squid Star |
Si necesita reiniciar para probar cambios hechos en la configuración, utilice lo siguiente:
service squid restart |
Si desea que Squid inicie de manera automática la próxima vez que inicie el sistema, utilice lo siguiente:
chkconfig squid on |
Lo anterior habilitará a Squid en todos los niveles de corrida.
Depuración de errores
Cualquier error al inicio de Squid solo significa que hubo errores de sintaxis, errores de dedo o bien se están citando incorrectamente las rutas hacia los archivos de las Listas de Control de Acceso.
Puede realizar diagnóstico de problemas indicándole a Squid que vuelva a leer configuración, lo cual devolverá los errores que existan en el archivo /etc/squid/squid.conf.
service squid reload |
Cuando se trata de errores graves que no permiten iniciar el servicio, puede examinarse el contenido del archivo /var/log/squid/squid.out con el mandato less, more o cualquier otro visor de texto:
less /var/log/squid/squid.out |
Listas de control de acceso: Bloqueo de Dominios de Destino.
Es conveniente definir una Lista de Control de Acceso especificando los dominios bloqueados en un archivo localizado en cualquier parte del disco duro, y la cual contiene una lista de los dominios:
acl bloqueados dstdomain "/etc/squid/bloqueados"
Por ejemplo: www.minegocio.com, www.google.com, www.yahoo.com
No hay comentarios:
Publicar un comentario