4. Gestionar mediante CBQ otros protocolos que consuman demasiado ancho de banda

Debemos recordar que los usuarios de nuestra LAN pueden echar por tierra todos nuestros esfuerzos en el capítulo 3 si usan Napster, Kazaa o Realaudio. También debemos recordar que en la sección 3.3 no llegamos a bloquear el tráfico por ftp.

Lograremos esto de una manera diferente -- no limitando directamente las descargas sino de una manera indirecta. Si nuestro dispositivo de internet es ppp0 y el de la LAN es eth0, limitaremos el tráfico que salga de la interfaz eth0 limitando así el tráfico entrante por ppp0.

Para hacerlo nos familiarizaremos con CBQ y el guión cbq.init. Puede obtenerlo de ftp://ftp.equinox.gu.net/pub/linux/cbq/. Descargue cbq.init-v0.6.2 y colóquelo en /etc/rc.d/.

También necesitará instalar iproute2. Viene con todas las distribuciones de Linux.

Mire ahora en su directorio /etc/sysconfig/cbq/. Debería haber un archivo de ejemplo que debería funcionar con cbq.init. Si no está ahí probablemente no lo tiene compilado en su núcleo ni está presente como módulo. Bien, en cualquier caso, simplemente cree ese directorio, coloque en su interior los archivos de ejemplo de más abajo y vea si funcionaría para usted.

4.1. FTP

En el capítulo 3 no bloqueamos el ftp por dos razones: para que pudiésemos subir archivos y para que los usuarios de IE5.5 pudisen moverse por los directorios ftp. Con todo, nuestro navegadores y programas de ftp deberían poder llevar a cabo las descargas mediante nuestro proxy Squid y subir/renombrar/borrar por ftp a través del enmascarado de IP.

Creamos un archivo llamado cbq-10.ftp-network en el directorio /etc/sysconfig/cbq/:

# touch /etc/sysconfig/cbq/cbq-10.ftp-network

Insertamos en él las siguientes líneas:

DEVICE=eth0,10Mbit,1Mbit
RATE=15Kbit
WEIGHT=1Kbit
PRIO=5
RULE=:20,192.168.1.0/24
RULE=:21,192.168.1.0/24

Encontrará la descripción de estas líneas en el archivo cbq.init-v0.6.2

Cuando inicie el guión /etc/rc.d/cbq.init-v0.6.2 leerá su configuración, que se encuentra en /etc/sysconfig/cbq/:

# /etc/rc.d/cbq.init-v0.6.2 start

Si todo funciona bien añadimos /etc/rc.d/cbq.init-v0.6.2 start al final de los guiones de inicio. Normalmente suele ser /etc/rc.d/rc.local.

Gracias a esta orden su servidor no enviará datos por ftp a través de eth0 a más de 15kbits/s, por lo que no descargará datos por ftp de internet a más de 15kbits/s. Los usuarios de su LAN verán que es más eficiente usar el proxy Squid para realizar las descargas por ftp. También podrán moverse por los directorios con su IE5.5.

Hay otro error en IE5.5 - cuando hace clic en un archivo de un ftp y elige 'Copiar a una carpeta', el archivo no se descarga a través del proxy sino directamente a través de la IP enmascarada omitiendo así a Squid con sus delay pools.

4.2. Napster, Realaudio, Windows Media y otros asuntos

Aquí la idea es la misma que con ftp; simplemente añadimos otro puerto y configuramos una velocidad diferente.

Creamos un archivo llamado cbq-50.napster-network en el directorio /etc/sysconfig/cbq/:

# touch /etc/sysconfig/cbq/cbq-50.napsterandlive

Ponga estas líneas en ese archivo:

DEVICE=eth0,10Mbit,1Mbit
RATE=35Kbit
WEIGHT=3Kbit
PRIO=5
#Windows Media Player.
RULE=:1755,192.168.1.0/24
#Real Player usa el puerto TCP 554, para UDP usa puertos diferentes
#pero por lo general RealAudio por UDP no consume demasiado ancho de banda.
RULE=:554,192.168.1.0/24
RULE=:7070,192.169.1.0/24
#Napster usa los puertos 6699 y 6700 ¿quizá algún otro más?
RULE=:6699,192.168.1.0/24
RULE=:6700,192.168.1.0/24
#Audiogalaxy usa los puertos del 41000 al 41900 más o menos.
#Son muchos así que tenga en cuenta que no los listo todos aquí.
#Repetir cerca de 900 líneas similares no tendría demasiado sentido.
#Simplemente cerraremos los puertos del 410031 al 41900 mediante ipchains o
#iptables.
RULE=:41000,192.168.1.0/24
RULE=:41001,192.168.1.0/24
#seguir del  41001 al 41030
RULE=:41030,192.168.1.0/24
#Algunos usuarios algo astutos pueden conectarse a servidores SOCKS al
#usar Napster, Audiogalaxy, etc. También es una buena idea hacerlo cuando
#ejecute su propio proxy SOCKS.
RULE=:1080,192.168.1.0/24
#Añada cualquier otro puerto que quiera, puede comprobar fácilmente
#cuál usa cada programa con IPTraf.
RULE=:port,192.168.1.0/24

No olvide cerrar el resto de puerto (41031-41900) de AudioGalaxy por medio de ipchains (núcleos 2.2.x) o iptables (núcleos 2.4.x).

Núcleos 2.2.x.

/sbin/ipchains -A input -s 192.168.1.1/24 -d ! 192.168.1.1 41031:41900 -p TCP -j REJECT

Núcleos 2.4.x.

/sbin/iptables -A FORWARD -s 192.168.1.1/24 -d ! 192.168.1.1 --dport 41031:41900 -p TCP -j REJECT

No olvide añadir la línea apropiada a sus guiones de inicio.