utilizar el modulo cband de apache para limitar las descargas

1.- apt-get install libapache2-mod-cband

2.- hacer enlaces simbólicos de los ficheros cband.conf cband.load en los directorios /mods-available y mods-enabled de apache2

3.- en el virtualhost del ftp incluya esto

CBandRemoteSpeed 15kb/s 3 3

quedando asi

<VirtualHost *>

ServerName ftp.vcl.rimed.cu

ServerAdmin wilfre...@dominio.cu

DocumentRoot "/var/www/ftp"

# CBandSpeed 512 5 15

CBandRemoteSpeed 15kb/s 3 3

# 100MB virtualhost bandwidth limit

# CBandLimit 100000

# redireccionar cuando pase los 100 mb

# CBandExceededURL http://ftp.dominio.cu/linux/bandwidth_exceeded.html

AddDefaultCharset UTF-8

DirectoryIndex /httpdirindex/httpdirindex.php

RemoveHandler .php .phps .pl .cgi

ErrorLog /var/log/apache2/error.log

CustomLog /var/log/apache2/access.log combined

ErrorDocument 404 /httpdirindex/httpdirindex.php


<Directory "/var/www/ftp">

Options FollowSymLinks MultiViews

Order Allow,Deny

Allow From All

</Directory>

</VirtualHost>

reinicie apache y digale a otro admin que descargue un fichero grande de su ftp y le reportará 15 kb/s







======================================================================================================

Control de ancho de banda con mod_cband

Octubre 29th, 2006 por kitai

Esta solución está dirigida sobre todo a aquellos usuarios de ADSL que deseen servir páginas web desde su servidor casero. El objetivo es restringir el ancho de banda total a una cierta web o a un cierto directorio, aunque el módulo permite realizar control de ancho de banda por transferencia, es decir, limitar que un usuario o virtualhost pueda consumir tráfico más allá de una cierta cantidad (p.ej: 500 megabytes).

Mod_cband se puede descargar desde http://cband.linux.pl/ .

Para usuarios de Apache 1, recomiendo utilizar mod_throttle. Si me lo pedís haré un articulillo de como instalarlo y configurarlo proximamente.

Tras descargarlo, lo descomprimimos con tar zxvf mod-cband-0.9.7.4.tgz

Para instalarlo, entramos en el directorio con las fuentes y ejecutamos ?./configure?, ?make?, y ?make install?.

Ahora editamos el fichero httpd.conf, y añadimos la línea para cargar el módulo,

LoadModule cband_module /usr/lib/apache2/modules/mod_cband.so

Y posteriormente añadimos:

CBandScoreFlushPeriod 1

CBandRandomPulse On

Son dos directivas que según el creador del módulo mejoran el rendimiento del módulo en sí.

Para funcionar, también necesitamos crear un directorio en donde mod_cband va a almacenar los datos de los usuarios e IPs, así como los datos referentes al ancho de banda consumido, etc?

mkdir /var/run/scoreboard

chown apache:apache /var/run/scoreboard

Sustituid apache:apache por el usuario y el grupo con el que funciona Apache en vuestro servidor. En el fichero httpd.conf añadimos:

CBandScoreboard /var/run/scoreboard

La sintaxis para limitar ancho de banda es muy sencilla, y podemos configurarla para todo el servidor, o bien dentro de un virtualhost o particular.

CBandSpeed 512 5 15

Limitaría el ancho de banda total de ese servidor, o ese virtualhost a 512 kbps (cuidado, kiloBIT), con 5 conexiones por segundo de tope, y 15 conexiones abiertas y activas en total.

Si, por ejemplo, queremos limitar el ancho de banda por usuario, es decir, que cada usuario no pueda exceder una determinada velocidad de descarga:

CBandRemoteSpeed 15kb/s 3 3

Esto limitaría a cada usuario a 15 kilobit/segundo, con 3 conexiones por segundo y 3 conexiones activas en total.

Antes de reiniciar el servidor web para activar los cambios de configuración, es importante restringir esta URL.



SetHandler cband-status Order deny,allow

Allow from laip_que_quieras Deny from All

Permiten ver las estadísticas de consumo de ancho de banda, y, obviamente, no es algo que querramos que vea todo el mundo.

Mod_cband es bastante potente, y permite limitar ancho de banda por cantidad de tráfico. Por ejemplo:

CBandLimit 200M

CBandScoreboard /var/www/scoreboard

CBandExceededURL http://www.miservidorweb.com/limite_sobrepasado.html

CBandPeriod 4W

Dicha configuración limitaría el tráfico de un cierto virtualhost a 100 MegaBYTES por mes (CbandPeriod 4W indica que el periodo para resetear el contador es de 4 semanas). Además, al exceder el tráfico máximo permitido les enviaría a la URL http://miservidorweb.com/limite_sobrepasado.html.

Hay más módulos para controlar el ancho de banda, como mod_bandwidth y mod_throttle. Personalmente, recomiendo este para servidores Apache 2.0.

http://www.apache-es.org/index.php/2006/10/29/control-de-ancho-de-banda-con-mod_cband/

=========================================================================================

=================================

otra vía más completa

1.- apt-get install libapache2-mod-cband

2.- hacer enlaces simbólicos de los ficheros cband.conf cband.load en los directorios /mods-available y mods-enabled de apache2

3.-copie esto en el fichero /etc/apache2/mods-available/cband.conf

<IfModule mod_cband.c>

<Location /cband-status>

SetHandler cband-status

</Location>


<CBandClass Conexion_Internas>

CBandClassDst 10.71.1.0/24

CBandClassDst 172.16.1.0/24

</CBandClass>


<CBandClass Conexion_Exteriores>

CBandClassDst 192.168/16

CBandClassDst 200.55/16

</CBandClass>


y en el vistualhost del ftp poner esto

<VirtualHost *>

ServerName ftp.dominio.cu

ServerAdmin wilfre...@dominio.cu

DocumentRoot /var/www/ftp

<Directory /var/www/ftp/>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

</Directory>

ErrorLog /var/log/apache2/error.log

LogLevel warn

CustomLog /var/log/apache2/access.log combined

ServerSignature On

<IfModule mod_cband.c>

CBandClassRemoteSpeed Conexion_Internas 3072kb/s 20 30

CBandClassRemoteSpeed Conexion_Exteriores 25kb/s 20 30

# este modulo es para ver el cband via web

#http://ftp.dominio.cu/cband-status-me

<Location /cband-status>

SetHandler cband-status

</Location>

<Location /cband-status-me>

SetHandler cband-status-me

</Location>

</IfModule>



===============================================

este es otro caso para lenny y me imagino que para squeeze pinche tmb



como regular ancho de banda para lenny ya que el modulo de cband no existe en esta distribucion



apt-get install libapache2-mod-bw

# Activamos el modulo y reiniciamos el apache2

a2enmod bw

/etc/init.d/apache2 restart

# Editamos el Vhost y lo configuramos para que quede de esta forma

<VirtualHost *>

ServerName virtual.vcl.rimed.cu

ServerAdmin wh...@dominio.cu

DocumentRoot /var/www/virtual

<Directory /var/www/virtual/>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

</Directory>

ErrorLog /var/log/apache2/error.log

LogLevel warn

CustomLog /var/log/apache2/access.log combined

ServerSignature On

# Activar el modulo

BandwidthModule On

# Forzar el limite de todos los pedidos

ForceBandWidthModule On

# limite a 200kB/s (200 * 1024) este es para todas las redes

#Bandwidth all 204800

# limite a 3000kB/s (3000 * 1024) tambien puedes separalas (LAN)

Bandwidth 172.16.1.0/24 3072000

# limite a 15kB/s (15 * 1024) (WAN)

Bandwidth 192.168.159.0/24 15360

</VirtualHost>

#Reiniciamos el apache2 y listo

/etc/init.d/apache2 restart

# pero tambien para no complicarse mucho pues pueden descargar el modulo de apache2 de cband de etch

# e instalarlo independiente y les va a pinchar = .

# descargarlo aqui http://dominio.cu/linux/tools/libapache2-mod-cband_0.9.7.4-2_i386.deb

dpkg -i /lugar/donde/esta_el_modulo.deb

# hacemos los links simbolicos de mod-available a mod-enabled de los files

cband.conf

cband.load

# editamos el file cband.conf borramos todo y le ponemos nuestras redes

<IfModule mod_cband.c>

<Location /cband-status>

SetHandler cband-status

</Location>

<CBandClass Conexion_Internas>

CBandClassDst 172.16.1.0/24

</CBandClass>

<CBandClass Conexion_Exteriores>

CBandClassDst 192.168.159.0/24

</CBandClass>

# luego editamos el vhost para que nos quede asi.

<VirtualHost *>

ServerName prp.vcl.rimed.cu

ServerAdmin wh...@dominio.cu

DocumentRoot /var/www/blog

<Directory /var/www/blog>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

</Directory>

ErrorLog /var/log/apache2/error.log

LogLevel warn

CustomLog /var/log/apache2/access.log combined

ServerSignature On

# REGULANDO EL ANCHO DE BANDA PARA VHOST CON CBAND

<IfModule mod_cband.c>

CBandClassRemoteSpeed Conexion_Internas 3000kb/s 20 30

CBandClassRemoteSpeed Conexion_Exteriores 15kb/s 20 30

</IfModule>

</VirtualHost>

# reiniciamos el apache2

/etc/init.d/apache2 restart

y listo todo







Whilo
__

M.Sc. Wilfredo Martínez Consuegra
Empresa Constructora de Obras para el Turismo
Cayo Santa María, Villa Clara.

En la tierra hace falta personas que trabajen más y critiquen menos,
que construyan más y destruyan menos,
que prometan menos y resuelvan más,
que esperen recibir menos y dar más,
que digan mejor ahora que mañana.

              Ernesto Che Guevara

Message: 5
Date: Wed, 21 Dec 2011 20:31:47 -0000 (UTC)
From: Agustín Ybarra Ortega <ybar...@mpcfg.co.cu>
Subject: [Gutl-l] limitar velocidad descarga apache2
To: Lista cubana de soporte técnico en Tecnologias Libres
<gutl-l@jovenclub.cu>
Message-ID: <158f5ded-812e-45a9-87ee-062c74b9c6b9@servermp>
Content-Type: text/plain; charset=utf-8

hola lista quería saber si con el módulo BandWidth de apache2 podría limitar un rango de direcciones IP, porque he buscado información sobre el mismo y solo he encontrado referencia a una ip específica 192.168.1.1 o una red completa 192.168.1.0/24, lo que quiero especificar es ej de la ip 192.168.1.15 a la 192.168.1.25 tengan compartido el mismo limite de ancho de banda, no el limite para cada ip como seria el caso de declarar maquina por maquina.

saludos

--
Tec. Agustín Ybarra Ortega
Seguridad Informática Materias Primas Cienfuegos
Linux User # 511734
Jabber ID # ybar...@mpcfg.co.cu
Teléfono # 515878 - 515887 ext 115




__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de 
virus 6721 (20111218) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com




______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a