40333222 Configuracion de Squid Con Webmin

19

Click here to load reader

description

Squid+Webmin

Transcript of 40333222 Configuracion de Squid Con Webmin

Page 1: 40333222 Configuracion de Squid Con Webmin

Configuración de squid con Webmin

Page 2: 40333222 Configuracion de Squid Con Webmin

Router y Proxy                                                           Linux (Ubuntu 8.04)                                      Internet

 

                       10.0.0.1/8        Router Cisco 2600                                                            eth1                                                                         192.168.0.2/24                                                                                    eth0           

                                                                                192.168.0.70/24  

                                                           

   Cliente 1                                                   Cliente 210.0.0.2/8                            10.0.0.3/8

Page 3: 40333222 Configuracion de Squid Con Webmin

Bueno instalaremos squid­2.6.STABLE14 ya que es la última versión soportada por webmin­1.420. Descomprimos  squid­2.6.STABLE14.tar.bz2 y webmin­1.420.tar.gz.       Entramos al directorio resultante de la descompresión del tarball de squid y procedemos a instalarlo:

./configure  ­ ­sysconfdir=/etc/squid/

make

make install

Vamos al archivo de configuración de squid (/etc/squid/squid.conf) y en la última linea o después de una ACL ponemos lo siguiente:

visible_hostname “nombre_de_mi_proxy”

No tiene que ser necesariamente el nombre del equipo, por ejemplo, yo le coloqué al mio “ubuntu_proxy” (sin las comillas).

Luego, como root, creamos el grupo y el usuario squid:

_# groupadd squid

_# useradd ­d /var/log/squid ­s /bin/false ­g squid squid

Bueno, todo bien hasta aqui, ahora nos toca crear el directorio cache/ en /usr/local/squid/var/

Ponemos al usuario squid como propietario del directorio que acabamos de crear y también demosle permisos de lectura y escritura.

El siguiente paso es crear tres arhivos en el directorio /usr/local/squid/var/logs/ :

access.logcache.logstore.log

Y le damos permisos de lectura y escritura a estos tres arhivos.

Bueno listo, continuamos pero con la instalación de Webmin. Entramos al directorio resultante de la descompresión del tarball de webmin y ejecutamos el siguiente ejecutable (como root y se necesita que el sistema tenga instalado el Perl y sus librerias):

_# ./setup.sh

Y seguimos las indicaciones del instalador. Cuando él termina coloca por defecto el puerto 10000 como puerto de escucha de peticiones para entrar al webmin por web (ya sea Firefox, Konkeror, Opera, etc), es decir, una vez instalado el webmin abrimos nuestro navegador favorito y colocamos en la barra de direcciones los siguiente:

http://nombre_de_nuestro_equipo:10000

Page 4: 40333222 Configuracion de Squid Con Webmin

Y listo, colocamos el usuario y password (figura 1) que configuramos en la instalación de Webmin y entramos en la consola de administración del mismo (figura 2).

Figura 1

Figura 2

Page 5: 40333222 Configuracion de Squid Con Webmin

En el menú servidores podemos ver los servicios de red ejecutandose en el server, pero si no aparece el servidor proxy Squid debemos instalar el modulo Squid que se encarga de administrar dicho servicio de red. Ahhh bueno pero antes si tenemos al Webmin en inglés podemos pasarlo a Español haciendo click en Webmin ­> Webmin Configuration ­> Language (figura 3) :

Figura 3

Bueno, continuando con la instalación del modulo, dentro del Webmin, vamos a Webmin ­> Configuración de Webmin ­> Módulos de Webmin (figura 4):

Figura 4

Una vez dentro de Modulos de Webmin, seleccionamos Módulo estándar de www.webmin.com (figura 5) y oprimimos el botón con los tres puntos para seleccionar el modulo Squid :

Figura 5

Page 6: 40333222 Configuracion de Squid Con Webmin

Luego de selecionar el módulo Squid hacemos clic en el botón “Instalar Módulo” y listo, comienza la descarga e instalación del módulo.Ahora ya podemos hacer clic en el menú servidores y encontraremos el módulo de configuración del proxy Squid (figura6):

Figura 6

Entremos al sub­modulo “Puertos y Trabajo en Red” para configurar el puerto de escucha de nuestro proxy, por defecto viene configurado con el puerto 3128, cambiemoslo al puerto 8080. Cada vez que hagamos un cambio en la configuración del servidor Squid debemos hacer clic en el botón “Salvar”.

Bien, vamos a la parte más importante, las ACLs (figura 7).

Page 7: 40333222 Configuracion de Squid Con Webmin

Figura 7

En el menú Servidores ­> Squid – Servidor Proxy podemos ver las ACLs que vienen por defecto (figura 7) y justo abajo encontramos un botón para definir nuestras nuevas ACLs.Comenzemos definiendo una ACL que permita acceso a Internet a toda nuestra red, en el menú contextual del lado del botón “Crear nueva ACL” seleccionemos “Dirección de Cliente” (figura 8):

Figura 8

Figura 9

Page 8: 40333222 Configuracion de Squid Con Webmin

Le ponemos un nombre a nuestra ACL, en “Desde IP” colocamos la dirección de red de nuestra LAN, el campo “A IP” lo dejamos en blanco y el campo “Máscara de Red” lo llenamos con la máscara de sub­red de nuestra LAN. Listo le hacemos clic en Salvar.

       Figura 10

Ya la ACL que define nuestra red está configurada, ahora debemos programar si el acceso a Internet para esta red es permitido o denegado, esto lo hacemos parandonos en la solapa “Restricciones Proxy”, del mismo sub­modulo “Control de Acceso” (figura 11),  y luego hacemos clic en “Añadir restricción proxy” lo cual no colocará en otro sub­modulo llamado “Crear Restricción de Proxy” (figura 12), allí seleccionamos la acción “Permitir” y luego seleccionamos la ACL “red_10.0.0.0” y por último Salvamos.

Page 9: 40333222 Configuracion de Squid Con Webmin

 

Figura 11

Figura 12

Listo, nos regresamos al sub­modulo “Control de Acceso” solapa “Restricciones Proxy” y allí debemos subir al menos un nivel hacia arriba la ACL “red_10.0.0.0” ( toda ACL debe quedar encima de la ACL “all” cuya acción es “Denegar”) con ayuda de la flecha en el campo “Mover” podemos hacerlo

Page 10: 40333222 Configuracion de Squid Con Webmin

Figura 13

Figura 14

Por último hacemos clic en “Aplicar cambios” para que la nueva ACL funcione.

Bloquear páginas por Expresión regular de servidor.

Vamos a hacer una ACL que bloquee todo tipo de páginas que contengan en su URL la frase “rubia”. Desde el principio (Indice squid) entramos a “Control de Acceso” en el menú contextual de la parte inferior seleccionamos “Expresión Regular de Servidor Web” y luego clic en “Crear nueva ACL” (figura 15):

 figura 15

Page 11: 40333222 Configuracion de Squid Con Webmin

Al hacer clic en “Crear nueva ACL” entraremos automáticamente al  sub­modulo “Editar ACL” dentro del cual le pondremos un nombre a nuestra nueva ACL, yo la llamé “prohibido”, luego en el campo “Expresiones Regulares” colocaremos todo tipo de frases que sean inapropiadas en la URL de una página web, yo a modo de ejemplo coloqué “rubia” y “sexo” (una página como www.rubias19.com será bloqueada, una página como www.sexofree.com también será bloqueada) y cuando terminemos salvamos y aplicamos los cambios.

 figura 16

Pero hasta aquí no llega esta configuración, ahora en el modulo “Control de Acceso” entramos en la solapa “Restricciones Proxy” y seleccionamos la ACL “red_10.0.0.0” para aplicarle la condición que acabamos de crear en la ACL “prohibido”. Al hacer clic en la ACL “red_10.0.0.0” el sistema nos entrará en el sub­modulo “Editar Restricción de Proxy” (figura 17):

En éste modulo lo que hacemos es asociar la ACL “red_10.0.0.0” con la ACL “prohibido” de tal manera que permita el acceso a Internet a todos los de la red 10.0.0.0/24 pero con la excepción de páginas que contengan frases en la ACL “prihibido”, entonces 

  figura 17

Page 12: 40333222 Configuracion de Squid Con Webmin

Ya en el módulo “Editar Restricción de Proxy” en el campo “Coincidir con ACLs” seleccionamos la ACL “red_10.0.0.0” y en el campo “No coincidir con ACLs” (de la parte derecha del módulo) seleccionamos la ACL “prohibido” (si queremos asociar más ACLs lo hacemos teniendo la tecla “Control” oprimida y con el puntero del mouse selecionamos lás demás). Cuando terminos esta parte, salvamos.

Y listo, ya coneso nuestra ACL bien condicionada lucirá como se muestra en la figura  18:

Figura 18

Bloquear archivos por extensión.

En el siguiente ejercicio veremos como configurar a Squid para que bloquee descargas de archivos ejeutables y archivos mp3. Entonces dentro del módulo Squid en el Webmin vamos a Control de Acceso ­> Lista de Control de Acceso, seleccionamos del menú contextual, en la parte inferior de la página, la opción “Expresión Regular de Ruta URL” y luego clic en “Crear nueva ACL”.Le ponemos un nombre a la ACL, yo enmi caso la llamé “bloquea_archivos” y en el campo “expresiones regulares” digitamos las extensiones de los archivos que queremos bloquear, con el siguiente formato:

\ . exe\ . mp3   (todos los caracteres sin espacios)

Y luego salvamos, la configuración quedará similar a la de la figura 19.

 

Page 13: 40333222 Configuracion de Squid Con Webmin

Figura 19

Luego vamos a la solapa “Restricciones Proxy” (figura 20), seleccionamos la ACL “red_10.0.0.0/24” 

 

 figura 20

En el cuadro izquierdo (figura 21) seleccionamos la ACL “red_10.0.0.0/24” y luego, con la tecla “Control” oprimida, seleccionamos la ACL “bloquea_archivos” del cuadro derecho (figura 21). Salvamos y listo.

Page 14: 40333222 Configuracion de Squid Con Webmin

 figura 21

Podemos excluir a ciertas IP para que tengan descargas y acceso total hacia Internet.En el sub­modulo “Control de Acceso” seleccionamos “Dirección de Cliente” → “Crear nueva ACL”, bueno eso nos lleva al sub­modulo “Crear ACL” (figura 22) y allí empezamos a definir las IPs que tendrán todos los privilegios para nevegar en la Internet.

       Figura 22. Solo colocamos la IP address, sin máscara de Red, de los equipos que deben        tener acceso total hacia Internet. Si le onfiguramos una máscara de red en este paso la        configuración se aplicará a todos los equipos de esa red y la intención de excluir un equipo        de las ACLs no funcionará.

Y listo salvamos. Si necesitamos más equipos con acceso total a Internet podemos hacerlo volviendo a entrar a ésta misma ACL (“su_excelencia” la que acabamos de crear) y nos aparecerá un nuevo campo para ingresar otra dirección IP (figura 23). Hacemos los mismos pasos para 

Page 15: 40333222 Configuracion de Squid Con Webmin

ingresar más IP address.

 Figura 23

Y también podriamos configurar restricciones proxy individuales a esas IPs que tienen, hasta ahora, acceso total hacia Internet.

Figura 24En la ACL “su_excelencia”                                                          Esta el primera                   Esta la configurése encuentra las IP que tienen                                                       IP que configuramos          después.acceso total a Internet.

Page 16: 40333222 Configuracion de Squid Con Webmin

Configuración de las reglas IPTABLES.

Ya que los Proxy Servers no soportan protocolos de correo como el POP3, SMPTP e IMAP debemos configurar el firewall para que redireccione hacia la Internet cualquier petición de conexión, de un cliente de correo como Outlook, a un servidor de correo POP3 y SMPT y bloquee el resto del tráfico, como el tráfico Web; claro para que este último se haga solo por medio del proxy.

Ponemos a 1 en bit del ip_forward para habilitar el enrutamiento en el servidor Linux:

_# echo 1 > /proc/sys/net/ipv4/ip_forward 

Y le hacemos un NAT a las conexiones de puertos de correo y DNS para que los clientes puedan enviar y recibir correos en su Outlook:

_# iptables ­t nat ­A POSTROUTING ­s 10.0.0.0/8 ­o eth0 ­p tcp ­­dport 53 ­j MASQUERADE _# iptables ­t nat ­A POSTROUTING ­s 10.0.0.0/8 ­o eth0 ­p udp ­­dport 53 ­j MASQUERADE _# iptables ­t nat ­A POSTROUTING ­s 10.0.0.0/8 ­o eth0 ­p tcp ­­dport 25 ­j MASQUERADE _# iptables ­t nat ­A POSTROUTING ­s 10.0.0.0/8 ­o eth0 ­p tcp ­­dport 110 ­j MASQUERADE 

Las siguientes reglas de IPTABLES las configuramos para poder usar nuestras web cams en nuestro aMSN

_# iptables ­A FORWARD ­s 10.0.0.0/8 ­o eth0 ­p udp ­­dport 1863 ­j ACCEPT _# iptables ­A FORWARD ­s 10.0.0.0/8 ­o eth0 ­p tcp ­­dport 1863 ­j ACCEPT _# iptables ­A FORWARD ­s 10.0.0.0/8 ­o eth0 ­p tcp ­­dport 6891 ­j ACCEPT _# iptables ­A FORWARD ­s 10.0.0.0/8 ­o eth0 ­p udp ­­dport 6891 ­j ACCEPT _# iptables ­t nat ­A POSTROUTING ­s 10.0.0.0/8 ­o eth0 ­p tcp ­­dport 6891 ­j MASQUERADE _# iptables ­t nat ­A POSTROUTING ­s 10.0.0.0/8 ­o eth0 ­p tcp ­­dport 1863 ­j MASQUERADE _# iptables ­t nat ­A POSTROUTING ­s 10.0.0.0/8 ­o eth0 ­p udp ­­dport 1863 ­j MASQUERADE _# iptables ­t nat ­A POSTROUTING ­s 10.0.0.0/8 ­o eth0 ­p udp ­­dport 6891 ­j MASQUERADE 

Aunque podemos configurar las conexiones de proxy en el aMsn para poder “chatear” como de costumbre, el video o la cámara web, para usarlos en este tipo de clienetes de mensajeria, no pasan a través del proxy asi que debemos configurar las reglas IPTABLES que acabamos de ver para que el video de nuestras cámaras en el aMsn pueda funcionar (para el MSN de Microsoft sería otro puerto, yo en el momento no sé cual es asi que queda en manos suyas averiguarlo) . Podemois averiguar los puertos que utiliza el aMsn para cámaras web siguiendo la ruta Cuenta → Preferencia → Conexión (figura 25). Abrir esos puertos para las web cams en el aMsn es util si necesitamos hacer videoconferencias en una empresa, pero si no las necesitamos entonces no es necesario configurar este tipo de reglas en firewall IPTABLES.

Page 17: 40333222 Configuracion de Squid Con Webmin

Figura 25

Proxy transparente

Si lo que queremos es no incomodar al usuario con la configuración del proxy en su Internet Explorer (suele ocurrir que cuando el usuario se lleva su laptop a casa con el proxy de la empresa éste no le entra a Internet, o en un aereopuerto le pasa lo mismo) podemos recurrir a algo llamado “Prxoy transparente”, y como su nombre lo dice el servidor Proxy es transparente para los navegadores de Internet (Mozilla Firefox, Internet Explorer de Microsoft, etc), es decir que no es necesario configurar la direción del proxy en los clientes, aunque igual todo el tráfico hacia Internet se hace por medio del Servidor Proxy, este truco se logra configurando una regla en el IPTABLES del mismo servidor y diciendole a al Proxy Server que va a trabajar como Proxy transaparente. Para lograr ese modo de trabajo hacemos lo siguiente:

En el archivo de configuración de Squid (squid.conf) ubicamos la diretiva http_port 8080 (ahi es donde se configura el squid para que escuche peticiones de conexión por el puerto que le indiquemos, por defecto ese puerto es el 3128 pero yo le coloqué el 8080) yal lado dejando un espaio escribimos transparent:

http_port 8080    (antes)

http_port 8080 transparent    (después)

Para que se aplique el cambio debe detener e iniciar Squid.

Page 18: 40333222 Configuracion de Squid Con Webmin

Después metemos el siguiente comando para que el Router­firewall redirija todo el flujo de tráfico web al puerto de escucha del servidor proxy para que así se apliquen todas las ACLs que hemos configurado:

_# iptables ­t nat ­A PREROUTING ­i eth1 ­p tcp ­­dport 80 ­j REDIRECT ­­to­port 8080 

Recordemos que la interface de red eth1 es la que recibe el tráfico de la red LAN y eth0 proporciona la salida a Internet.

El siguiente gráfico (figura 26) explicará de forma somera como pasa el tráfico de la LAN hacia Internet por medio del Router­Proxy:

  Internet                                             Router – Proxy Linux

                        8080                                               

                                                   eth1                                                                                                

               LAN

     eth0                    Firewall

    Figura 26. Del lado de eth1    se encuentra la red LAN y    del lado de eth0 se encuentra    el enlace hacia Internet.

                  Tráfico Web (todo lo que salga por http, https, etc)                  Tráfico de correo ( protocolos POP3, SMTP, IMAP, clientes de correo)                  Tráfico de cámaras web de clientes de mensajería (aMsn) 

  Proxy

Page 19: 40333222 Configuracion de Squid Con Webmin

El siguiente gráfico (figura 27) muestra el flujo de tráfico del servidor proxy configurado como transparente:

Internet                  Router – Proxy Linux

   8080  

                  Tráfico Web (todo lo que salga por http, https, etc)                  Tráfico de correo ( protocolos POP3, SMTP, IMAP, clientes de correo)                  Tráfico de cámaras web de clientes de mensajería (aMsn)  

  Proxy