Limitar descargas de Ares y Limewire por Squid

Forums: 

Saludos. Hace un tiempo configuré mi servidor para proxy transparente y tambièn le configuré delay pools para limitar las descargas. Ahora bien, el problema. Si bien el limitador de banda actua de maravilla cuando las descargas son via http en puerto 80 tengo el gran problema de que no funciona el limitador de banda cuando el download es por medio de algun programa p2p sea LimeWire, Ares, Kazaa o alguno de esta clase y necesito que el squid limite la tasa de transferencia de estos programas pues cuando un usuario descarga algo por estos p2p toda la linea se la consume y no hay mucho ancho de banda por lo que hay que limitarlo. La configuración de squid para proxy transparente es la que habitualmente encontramos en cualquier manual de proxy transparente. Adicionalmente esta es mi configuración de iptables(dentro del archivo /etc/sysconfig/iptables):

-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A POSTROUTING -o eth1 -j MASQUERADE

de modo que sea enmascarado todo lo que viene de la LAN hacia el internet pormedio de squid. Adicionalmente, he editado en /etc/sysctl.conf la opciòn ipv4_forward = 1 de modo que exista el reenvio de paquetes.

Hasta aqui todo funciona bien; hasta que caemos a los p2p. He probado enrutar por ejemplo el limewire hacia squid de esta forma: -A PREROUTING -i eth0 -p tcp -m tcp --dport 6346 -j REDIRECT --to-ports 3128 pero limewire sigue saliendo con todo el ancho de banda incluso configurandole el puerto de proxy en conexiones. Y de esta forma pasa con los otros 2 programas p2p mecionados.

He querido hacer que msn messenger y yahoo msn salgan por medio de squid de forma transparente usando el proxy pero enrutandolos hacia el puerto squid pero luego no conectan asi:

(para msn)-A PREROUTING -i eth0 -p tcp -m tcp --dport 1863 -j REDIRECT --to-ports 3128

en fin, todo sale por proxy si es pagineo en http pero los demàs tipos de conexiones por puerto se salen con la suya saliendo directo y no pasando por squid; y se necesita que exista proxy transparente+nat+limitaciòn de banda tanto download http como downloads p2p.

No se si me faltan reglas de iptables o algo, y si alguien puede darme una mano con esto le estaré muy agradecido (o mi cabeza rodará).

Gracias de antemano por la ayuda,
Luiyi.

La solucion correcta seria

Imagen de Root Bit

La solucion correcta seria controlar el ancho de banda por IP, para eso puedes usar. Las siguientes herramientas

CBQ
HTB

Saludos,

There are only 10 types people in the world:
Those who understand binary and those who don't

There are only 10 types people in the world:
Those who understand binary and those who don't

Me olvidaba este link podria

Imagen de Root Bit

Me olvidaba este link podria ser de gran utilidad para tu aprendizaje acerca de este tema.

http://lartc.org/

There are only 10 types people in the world:
Those who understand binary and those who don't

There are only 10 types people in the world:
Those who understand binary and those who don't

el servidor le provee

Imagen de luiyirockero

el servidor le provee internet a unas 60 PCs; lo que me pidieron es dejar acceso a pagineo con el maximo ancho de banda disponibley limitar a una cantidad menor de tasa de transferencia que no consuma toda la linea en un momento x por parte de los programas p2p. Si este requerimiento debe aplicar para todos los usuarios con programas p2p no hay solución posible utilizando squid+iptables? resulta que debo mantener un caché también pero no me gustarìa quedarme con la duda de porqué los p2p se salen directos aún con regla iptables de redireccionamiento hacia squid; consulté con varios colegas sobre esa redirecciòn y según ellos funciona pero conmigo no aplica. Gracias por cualquier dato.

Cita:hay solución posible

Imagen de RazaMetaL

[quote]hay solución posible utilizando squid+iptables? resulta que debo mantener un caché también pero no me gustarìa quedarme con la duda de porqué los p2p se salen directos aún con regla iptables de redireccionamiento hacia squid; consulté con varios colegas sobre esa redirecciòn y según ellos funciona pero conmigo no aplica. Gracias por cualquier dato.[/quote]

Porque squid es un cache para http y no para otro protocolo. Lo que debes hacer es tener un firewall totalmente restrictivo donde deniegues todo lo que necesitas y permitas solo lo que te sirve.

Otra opción es utilizar HTB, CBQ, ó wondershaper ([url]http://lartc.org/wondershaper/[/url]), marcar los paquetes con iptables y asignar al puerto 80 la mayor cantidad de ancho de banda (con CBQ, HTB, wondershaper), dejando para el resto lo mínimo posible.

-------------------------

Antes de preguntar visita esta dirección :evil:

 

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

El problema con los P2P es

Imagen de Root Bit

El problema con los P2P es que trabajan abriendo puertos de forma aleatoria, no es un puerto especifico por el que funcionan, es por ello que no te funciona el redireccionamiento de un determinado puerto.

Ahora algo que se me ocurre que podrias probar: es establecer un firewall con politicas DROP y luego abrir unicamente determinados puertos para obligar a que el programa salga por ese puerto y luego de ello podrias redireccionar al puerto para que pase por el proxy.

Ahora insisto que a mi parecer lo mejor seria usar CBQ + IPTABLES para lograr el objetivo que persigues.

Saludos,

There are only 10 types people in the world:
Those who understand binary and those who don't

There are only 10 types people in the world:
Those who understand binary and those who don't

RazaMetal ya lo dijo claro.

Imagen de antares

RazaMetal ya lo dijo claro. Squid solo se encarga del http y un poco del ftp. Todo lo demás sale por NAT. Es por eso que no funciona si redirijes el msn al 3128, porque ¡¡el squid no entiende esos protocolos!!

Es por eso también que los delays pool solo te funcionan para http y ftp. Lo demás debes hacerlo con otra técnica, posiblemente CBQ.

Saludos.

Saludos,

antares

Si utilizas la opcion BUSCAR

Imagen de damage

Si utilizas la opcion BUSCAR del foro, encontraras un script de CBQ, (lo publique hace algunas semanas), chequealo, analizalo,y modificalo y acondicionalo a tu red, eso te soluciona el problema de decargas P2P, http, FTP, ETC, solo declaras los puertos, generas las colas y listo.
Keep The Fire Burning.....
Stryper 1988

Gracias a todos por sus

Imagen de luiyirockero

Gracias a todos por sus respuestas; era lo que necesitaba que alguien me dijese "SI SI SE PUEDE CON SQUID" o bien "NO NO SE PUEDE". Justo ahora me pongo a configurar el cbq para la tarea y enseguida busco tu script damage...voy a iniciar la faena y en el transcurso de la tarde posteo duda o resultados.

Bien ya tengo cbq instalado.

Imagen de luiyirockero

Bien ya tengo cbq instalado. Arrancó sin problemas y le he hecho esta configuraciòn solo para probar (de un mini howto por ahi). Actualmente hay 72Kbps de ancho de banda y alredededor de 9 a 10Kbps en tasa de transferencia (no es normal pero el isp tiene problemas hoy asi que hice la config basada en la disponibilidad de hoy...luego la cambio):

DEVICE=eth0,100Mbit,10Mbit
RATE=5Kbit
WEIGHT=0.2Kbit
PRIO=5
#Windows Media Player.
#Para motivo de practica puse el puerto de LimeWire
RULE=:6346,192.168.1.0/24

Esto según yo dice Limitar a 5Kbits/s la tasa de transferencia de LimeWire, estoy bien? o debo modificar?

Resulta que estuve viendo la tasa de transferencia que refleja el LimeWire mientras esta descargando ya con la modificación anterior una canción y aún toma los 9 a 10K disponibles

Por otro lado estoy ya estudiando el script de damage. Damage una consulta: en tu script tienes la variable PROXY_PORT y la usas en las iptables como --sport $PROXY_PORT; si yo hiciece una variable como por ejemplo LIME_PORT para el puerto de limewire(6346) al incluirlo en las iptables puedo poner --sport $PROXY_PORT $LIME_PORT o debo hacer una regla por serparado para cada variable ?

Para que despejes ciertas

Imagen de damage

Para que despejes ciertas duda lee el manual de Lartc, respecto a la pregunta, debes marcas los paquetes por cada puerto necesites limitar, es lo mejor, pero no es necesario limitar el ancho de banda del P2P ya que lo que el firewall hace es marcar el FORWARD y el PREROUTING osea los que no se dirijen hacia el firewall en si, por eso estas lineas lo dicen claramente:
$IPTABLES -A PREROUTING -s $LAN1 -d $WAN -i $DEVLAN -j MARK --set-mark 1
$IPTABLES -A FORWARD -s $WAN -d $LAN1 -i $DEVWAN -o $DEVLAN -j MARK --set-mark 2
Pero si tu tienes o das servico de Correo por ejemplo POP3, entonces debes marcar el OUTPUT de ese puerto, lo mismo si tienes FTP, etc.
Revisa los conceptos de FORWARD, PREROUTING; POSTROUTING,etc, para que tengas un idea más clara como trabaja el script y el Iptables.

Salu2.

Keep The Fire Burning.....
Stryper 1988

Páginas