IPCop y los Delay Pools de Squid

El otro día estaba leyendo un artículo de Hector Daniel Cortés sobre los delay_pool en squid, el tiene el problema que mucho de su tráfico se va en sitios como youtube o facebook y me pregunté si se podría hacer algo parecido en IPCop.

Los delay_pool es la forma en la que squid controla el ancho de banda. Explicar como configurar esta opción de squid es un tema aparte, al final dejaré material de referencia.

Lamentablemente IPCop no tiene un lugar en alguna de sus páginas para configurar Delay Pools así que todo se tiene que hacer a mano.

Lo primero que tenemos que hacer es editar el archivo acl que se encuentra en la ruta /var/ipcop/proxy/

Edición del archivo acl

Para hacerlo utilicé la herramienta winscp que me permite editar directamente el archivo en el servidor. Recuerden que para conectarse es con el usuario root y su contraseña (no el usuario admin), el puerto es el 222 y claro habilitar el acceso en el menu Sistema Acceso SSH.

Advertencia: Antes de empezar a hacer nuestros ajustes no esta de más hacer un respaldo del archivo.

Al final de este archivo agregué esta pequeña definición que limita el ancho de banda de una computadora a unos 50 Kb/s

Ejemplo:

acl abusivos src 192.168.0.x   #Lista de equipos a controlar
delay_pools 1     #Numero de delay pools
delay_class 1 1  #El delay pool 1 es de clase 1
delay_access 1 allow abusivos  #Permitimos el acceso al grupo "abusivos"
delay_parameters 1 40000/50000  #Establecemos el ancho de banda permitido al grupo.

Se guardan los cambios y para activarlos es necesario reiniciar squid , la forma más sencilla que se me ocurrió es ir al menú ServiciosProxy desmarcar la casilla que dice: Habilitado en Green, presionar el botón de guardar para luego volver a marcar la casilla y nuevamente guardamos. Haciendo esto se activan los cambios que acabamos de hacer.

desactivar y activar el proxy

Se puede ajustar la definición del los delay pools volviendo a editar el archivo y aplicando los cambios y ¡Voalá!

Para saber más:

Como conectar IPCop a Infinitum

Una de las preguntas más frecuentes que me hacen es ¿Cómo conectar IPCop a Infinitum?, supongo que estas indicaciones se pueden aplicar a cualquier proveedor de internet, pero este es el más popular en México.

Para explicar un poco mejor como se hacen las conexiones hice este pequeño diagrama.

Diagrama de conexión entre Infinitum e IPCop

Las zonas de IPCop

IPCop divide las conexiones por zonas:

  • La zona RED que es la que conecta a Internet.
  • La zona GREEN que es nuestra red local.
  • La zona BLUE que para clientes inalámbricos
  • La zona ORANGE que es la DMZ o zona desmilitarizada.

Quiero aclarar que jamás he instalado IPCop con zonas BLUE y/o ORANGE, en mi trabajo no se ha requerido.

IPCop se vuelve cliente del ruteador de Infinitum. Para lograr esto hay que configurar la tarjeta RED para que tome la información de conexión de nuestro proveedor de internet.

Los demás se vuelven clientes de IPCop. Es muy importante que las dos zonas RED y GREEN tengan un rango de IP’s diferentes. Todo esto se configura durante la instalación de IPCop.

El diagrama también muestra como proporcionar una conexión inalámbrica sin la necesidad de una zona BLUE. Para esto conecto un access point a la zona GREEN, de esta manera sigues teniendo control sobre tus clientes inalámbricos y puedes colocar todos los puntos de acceso que desees ya que la distancia entre tus clientes que necesitan una conexión wireless y el servidor IPCop no será un problema.

Espero que este diagrama ayude a resolver algunas dudas o cuando menos crear algunas nuevas 🙂

IPCop + OpenVPN (Zerina) + Roadwarrior + Ubuntu

Desde hace mucho tiempo tengo instalados servidores IPCop que utilizan el addon OpenVPN de Zerina para comunicarse entre sí. La conexión net to net es excelente, jamas me ha dado ningún problema, pero por alguna razón no había intentado una conexión roadwarrior.

Establecer una conexión roadwarrior desde ubuntu es relativamente sencillo, estos son los pasos:

Crear el usuario en el servidor IPCop

Un paso antes aunque un poco obvio es tener un servidor IPCop con el addon OpenVPN de Zerina funcionando.

En el servidor IPCop vamos al menú VPNs – OpenVPN en la sección Roadwarrior Estado y control del cliente:, presionamos el botón Agregar y llenamos el formulario con la información necesaria.

La traducción que tengo es un poco inexacta, en donde dice Fichero de Contraseña PKCS12 teclean la contraseña (igual en la confirmación). No se les vaya a olvidar POOOOR FAVOOOOR 🙂

Una vez creado nuestro usuario aparecerá en la lista y descargamos el archivo con la configuración de la conexión y el certificado en un archivo .zip

agregar usuario

Eso es todo lo que tenemos que hacer en el servidor IPCop.

Configurar Ubuntu para la conexión Roadwarrior.

El administrador de red de Gnome en Ubuntu no tiene soporte para redes OpenVPN, por eso es necesario instalarlo.

sudo apt-get install network-manager-openvpn

Ahora vamos a copiar el archivo zip a una carpeta de nuestro equipo con ubuntu y descomprimimos su contenido. Con una terminal y en el directorio donde descomprimimos los archivos tecleamos lo siguiente:

openssl pkcs12 -nocerts -in (nombre del archivo).p12 -out userkey.pem

openssl pkcs12 -nokeys -clcerts -in (nombre del archivo).p12 -out usercert.pem

openssl pkcs12 -nokeys -cacerts -in (nombre del archivo).p12 -out userca.pem

Donde (nombre del archivo).p12 es el nombre de su archivo ¡Abusados ehhhh!. Básicamente el archivo .p12 tiene toda la información de la conexión, pero nosotros necesitamos separarla en 3 archivos diferentes. Es normal que durante la ejecución les pida la contraseña del enlace, aquella que les pedí que no olvidaran ¿Recuerdan?.

A partir de aquí todo es muy sencillo, abrimos el Administrador de Red y vamos a la parte del menú que dice Conexiones VPN.

Administrador de redes - Conexiones VPN

El archivo zip incluye un archivo con extensión .ovpn , lo vamos a importar.

Importar archivo ovpn

Lo demás es ir llenando los espacios con los certificados que fuimos generando anteriormente y claro la contraseña del enlace.

Editando la conexión

Ahora si, llegó el momento cuchi cuchi…. el momento ya vas que chutas. Si todo salio bien el momento de selecciona la conexión VPN se enlazará con su servidor IPCop y mostrará un icono de un pequeño candado. ¡Felicidades! Ahora pueden trabajar desde cualquier lugar en el que se encuentren y tengan una conexión a Internet… ¡Momento !!!!!!!! Ufffff :S

Actualización 2011-06-26. OpenVPN y Ubuntu 11.04

Al actualizar a Ubuntu me di cuenta de que lo mencionado en este articulo ya no funcionaba. Pero es una buena noticia ya que se simplifico, ya no es necesario extraer los certificados del archivo .p12, en su lugar usamos este mismo archivo directamente en cada uno de los espacios.

OpenVPN IPCop y Ubuntu 11_04

Y eso es suficiente para lograr una conexión exitosa.

Conexión exitosa a la VPN

webgrafía:

OpenVPN and Gnome Network Manager

OpenVPN for IPCop

Monitorear el ancho de banda con IPCop e IPTraf

En ocasiones he tenido que hacer el papel de “detective” tratando de averiguar que es lo que pasa con el ancho de banda que administra mi servidor IPCop.

El problema es simple, supongamos que una persona esta bajando un archivo con un programa de esos llamados P2P (coof, ares, coof emule cof), estos programas pueden llegar a ser muy eficientes al momento de descargar archivos y por eficientes me refiero a que fácilmente pueden consumir todo tu ancho de banda.

Pero … ¿Cómo averiguar cuales son las computadoras que están ocupando el ancho de banda?

IPCop tiene un administrador de ancho de banda muy rudimentario. Solamente se pueden establecer prioridades a ciertos puertos pero nada más. Tampoco ofrece una opción de monitoreo, pero todavía podemos hacer algo al respecto.

Instalar IPTraf en IPCop.

Primero vamos a bajar de IPCop addon binaries, en esta página encontraras editores, utilerías, analizadores, pero el programa que nos interesa se llama IPTraf y esta en la sección de Net traffic monitoring.

El procedimiento de instalación es muy similar para todos los programas de esta página:

Descargar el programa de tu elección (en este caso IPTraf) de la página IPCop addon binaries.

Copiar el archivo a IPCop a cualquier directorio de tu elección, en windows puedes usar WinSCP o SCP, solo recuerda que el puerto es el 222 y tampoco se te olvide habilitar el acceso SSH en el menú SistemaAcceso SSH.

Nos conectamos a IPCop mediante consola, para eso podemos usar putty en windows o ssh en linux , simplemente abrimos una terminal y tecleamos ssh root@192.168.0.1 -p 222 (recuerden cambiar la ip por la de su servidor ipcop).

acceso mediante ssh

Entrar como el usuario root.

Cambiar el directorio donde copiamos el archivo, por ejemplo cd /tmp

Descomprimir el archivo con tar xvfz archivo_del_addon.tar.gz

Ir al directorio donde se descomprimieron los archivos.

Para instalar el addon teclear ./install -i (para desinstalar ./install -u )

Usando IPTraf.

La mitad del camino es instalar iptraf, lo que sigue es utilizarlo. En la misma terminal que acabamos de usar para instalar, tecleamos iptraf, si todo sale bien verán una pantalla como esta.

pantalla de inicio de iptraf

Vamos a la opción que dice LAN station monitor y aparecerá una lista de las interfaces de red. Elijo la que corresponde a GREEN en mi caso eth0. Si tienen duda sobre cual es su tarjeta de red GREEN, pueden ir al menú EstadoEstado de la red.

Dejamos que junte unos paquetes y podemos ver lo que pasa por la tarjeta eth0, lamentablemente lo que vemos son las mac address de las tarjetas de red.

Para averiguar la mac adress de la tarjeta GREEN, nuevamente vamos al menú EstadoEstado de la red, para las direcciones de los clientes podemos usar la información que muestra el servidor DHCP, menú ServiciosServidor DHCP.

Una simple observación nos puede dar idea de como se esta repartiendo el ancho de banda.

Paquetes entrando y saliendo de eth0.

En la parte superior (75.8) podemos ver el trafico correspondiente a la tarjeta GREEN, reconocida por su mac address, y en la parte inferior una computadora que esta usando 69.4, por lo tanto esta es la computadora que esta usando la mayor parte del ancho de banda usado por IPCop. Bueno estos valores no son elevados pero nos da una idea de quien esta usando el servicio.

Ahora que ya sabemos quién es el que esta consumiendo el ancho de banda podemos ir a desconectarle la tarjeta de red, echarle un vistazo o administrar su acceso a internet con Blockout traffic o URLFilter.

Tengan en cuenta que un aumento en el consumo de ancho de banda los probables culpables suelen ser programas p2p, virus, sitios de videos o las actualizaciones de windows, ahora sabrán que computadora origina todo esto y podrán tomar medidas al respecto.

Rescatando al soldado IPCop

Ayer si que tuve un día muy ajetreado, muy temprano comenzó con frecuentes desconexiones a internet, llamé a mi proveedor de internet y me dijo que todo estaba normal, fue cuando dije… Ohhh ohhhhh.

Y es que un servidor IPCop es un caballito de batalla, no se raja ni da problemas a meeeenos, a menos que tenga problemas con el hardware y eso fue lo que pasó.

Aguantó hasta donde pudo

Incluso no le tengo un monitor conectado, como esa computadora es de prender y haz lo tuyo no lo necesitaba, al conectarle un monitor ¡Horror!, me di cuenta de que mi servidor IPCop se estaba reiniciando de manera espontánea.

No aguantaba ni 5 minutos encendido, por eso iba y venía el internet.

Intenté detectar cual era la pieza que provocaba el fallo, pero llegué hasta la motherboard. En un principio creí que era el disco duro de 6 GB, este ha sido el disco duro con el que empecé a instalar IPCop, pero no, sigue tan sano como el primer día 🙂

Afortunadamente tenía otra computadora de la que pude tomar piezas para armar otro servidor. Aproveché para ponerle 512MB en RAM (originalmente tenía 256 MB) , le puse el mismo disco duro y la tarjeta de red 3COM de la computadora que falleció.

El nuevo servidor

Tenía el pendiente de la tarjeta de red integrada, obvio eran diferentes y pensaba como le iba a hacer para que la reconociera o configurarla, pero al primer arranque funcionó.

De hecho me admiró como tomó el control nuevamente del Internet. Como si nada hubiera pasado. 🙂