Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
seguridad
(
395
)
privacidad
(
363
)
google
(
353
)
ransomware
(
338
)
vulnerabilidad
(
301
)
Malware
(
263
)
Windows
(
243
)
android
(
242
)
cve
(
235
)
tutorial
(
235
)
manual
(
220
)
software
(
201
)
hardware
(
193
)
linux
(
124
)
twitter
(
115
)
ddos
(
94
)
WhatsApp
(
90
)
Wifi
(
85
)
cifrado
(
77
)
herramientas
(
75
)
hacking
(
73
)
sysadmin
(
67
)
app
(
65
)
Networking
(
56
)
nvidia
(
52
)
ssd
(
51
)
youtube
(
50
)
adobe
(
43
)
firmware
(
42
)
office
(
41
)
hack
(
40
)
firefox
(
35
)
contraseñas
(
32
)
eventos
(
32
)
antivirus
(
31
)
juegos
(
31
)
cms
(
30
)
flash
(
28
)
anonymous
(
27
)
MAC
(
25
)
apache
(
25
)
programación
(
25
)
exploit
(
23
)
javascript
(
22
)
multimedia
(
22
)
Kernel
(
20
)
ssl
(
19
)
SeguridadWireless
(
17
)
documental
(
16
)
Forense
(
15
)
conferencia
(
15
)
Debugger
(
14
)
lizard squad
(
14
)
técnicas hacking
(
13
)
auditoría
(
12
)
delitos
(
11
)
metasploit
(
11
)
Virtualización
(
10
)
adamo
(
9
)
reversing
(
9
)
Rootkit
(
8
)
Ehn-Dev
(
7
)
MAC Adress
(
6
)
antimalware
(
6
)
oclHashcat
(
5
)
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
-
La seguridad en dispositivos móviles es cada vez más crucial, especialmente ante el crecimiento de aplicaciones maliciosas diseñadas para v...
Limitar ancho de banda en Apache
martes, 12 de febrero de 2013
|
Publicado por
el-brujo
|
Editar entrada
Ejemplos de módulos que permiten controlar y gestionar el ancho de banda del servidor web Apache2. También puede ser muy útil para evitar y mitigar ataques DoS (Denegación de Servicio) ya que permite controlar en todo momento el número de peticiones que se realizan y el ancho de banda consumido por petición.
Tenemos varias opciones
Permite filtrar por vhost, por ip, por ficheros, por directorios, etc
Se compila fácilmente usando apxs2 al igual que muchos otros módulos.
Fichero httpd.conf
Añadir
En el ejemplo limitará el ancho de banda a 150KB/s.
Permite también limitar el ancho de banda del "upload" (velocidad de subida)
Ejemplos:
Limita todos usuarios a un máximo de10Kb/s en el vhost :
Limita usuarios internos (LAN) a 1000 kb/s con un mínimo de 50kb/s , y ficheros más grandes de 500kb a 50kb/s.
Limita ficheros con extensión avi y mpg a 20kb/s.
Filtrando por tipo mime (texto) a 5kb/s
Máximo 20 conexiones por ip:
BandWidthModule On
BandWidth all 256000
Descarga:
http://ivn.cl/files/source/mod_bw-0.92.tgz
Creación directorio interno:
Limitar Directorio para ver las estadísticas:
Fichero httpd.conf
Para mejorar el rendimiento:
Limitaría el ancho de banda total a 512 kbps (kiloBIT), con 5 conexiones por segundo demáximo, y 15 conexiones abiertas y activas en total.
Esto limitaría a cada usuario a 15 kilobit/segundo, con 3 conexiones por segundo y 3 conexiones activas en total.
200MB para consumir en 4 semanas (1 mes) y si sobrepasa el tráfico le envíamos a una url de aviso.
Unidades aceptadas en varias directivas:
Descarga:
http://dembol.org/downloads/cband/mod-cband-0.9.7.5.tgz
Ejemplo:
Características mod_qos (Quality Of Service), permite controlar:
Instalación:
Ejemplo configuración:
Permite definir la página de error que verán los clientes "denegados" o enviar un código de respuesta (response http code)
Permite reglas condicionales con expresiones regulares.
Permite restringir por países con la directiva:
Nota: Puede utilizar la directiva QS_ClientIpFromHeader
para anular la dirección IP del cliente basado en el valor en el encabezado de la solicitud HTTP definido (por ejemplo,X-Forwarded-For) en lugar de tomar la dirección IP del cliente que ha abierto el TCP conexión.
Define la ruta del archivo de base de datos geográfica. El archivo es un archivo de formato de valores separados por comas (CSV) (ejemplo). Cada línea contiene los siguientes campos:
Lista blanca de direcciones ip's sin restricciones:
Tenemos varias opciones
- mod_bandwidth para Apache versión/rama 1.3.x
- mod_bw para Apache versión/rama 2.x
- mod_cband para Apache2
- mod_ratelimit para Apache 2.4.x y 2.5.x
- mod_qos para Apache 2 (quality of service (QoS))
mod_bw
Funciona tanto en Windows como en GNU/Linux. En Windows es necesaria la librería mod_bw-2.0.54.dllPermite filtrar por vhost, por ip, por ficheros, por directorios, etc
Se compila fácilmente usando apxs2 al igual que muchos otros módulos.
wget http://ivn.cl/files/source/mod_bw-0.92.tgz
tar -zxvf mod_bw-0.92.tgz
cd mod_bw
/usr/local/apache2/bin/apxs2 -i -a -c mod_bw.c
Fichero httpd.conf
Añadir
LoadModule bw_module mod_bw.so
BandWidthModule On ForceBandWidthModule OnBandWidth all 1500000
En el ejemplo limitará el ancho de banda a 150KB/s.
Permite también limitar el ancho de banda del "upload" (velocidad de subida)
Ejemplos:
Limita todos usuarios a un máximo de10Kb/s en el vhost :
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 10240
MinBandwidth all -1
Servername www.ehacker.net
Limita usuarios internos (LAN) a 1000 kb/s con un mínimo de 50kb/s , y ficheros más grandes de 500kb a 50kb/s.
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 1024000
MinBandwidth all 50000
LargeFileLimit * 500 50000
Servername www.elhacker.net
Limita ficheros con extensión avi y mpg a 20kb/s.
BandwidthModule On
ForceBandWidthModule On
LargeFileLimit .avi 1 20000
LargeFileLimit .mpg 1 20000
Servername www.elhacker.net
Filtrando por tipo mime (texto) a 5kb/s
BandwidthModule On
AddOutputFilterByType MOD_BW text/html text/plain
Bandwidth all 5000
Servername www.elhacker.net
Máximo 20 conexiones por ip:
BandWidth all 0
MaxConnection all 20
BandWidthModule On
BandWidth all 256000
Descarga:
http://ivn.cl/files/source/mod_bw-0.92.tgz
mod_cband
Instalación:wget http://dembol.org/downloads/cband/mod-cband-0.9.7.5.tgz
tar zxvf mod-cband-0.9.7.4.tgz
cd mod-cband-0.9.7.4
./configure
make
make install
Creación directorio interno:
mkdir /var/run/scoreboard
chown apache:apache /var/run/scoreboard
Limitar Directorio para ver las estadísticas:
SetHandler cband-status
Order deny,allow
Allow from ip
Deny from All
Fichero httpd.conf
LoadModule cband_module /usr/lib/apache2/modules/mod_cband.so
CBandScoreboard /var/run/scoreboard
Para mejorar el rendimiento:
CBandScoreFlushPeriod 1
CBandRandomPulse On
- CBandSpeed 512 5 15
Limitaría el ancho de banda total a 512 kbps (kiloBIT), con 5 conexiones por segundo demáximo, y 15 conexiones abiertas y activas en total.
- 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.
CBandLimit 200M
CBandScoreboard /var/www/scoreboard
CBandExceededURL http://www.elhacker.net/limite_sobrepasado.html
CBandPeriod 4W
200MB para consumir en 4 semanas (1 mes) y si sobrepasa el tráfico le envíamos a una url de aviso.
Unidades aceptadas en varias directivas:
- velocidad transferencias:
- kbps, Mbps, Gbps – multiples of „bits per second”, respectively: 1024, 1024*1024 and 1024*1024*1024 bps
- kb/s, Mb/s, Gb/s – multiples of „bytes per second”, respectively: 1024, 1024*1024 and 1024*1024*1024 b/s
- defaults to kbps
- quotas transferencia:
- K, M, G – multiples of bytes, respectively: 1000, 1000*1000 and 1000*1000*1000 bytes
- Ki, Mi, Gi – multiples of bytes, respectively: 1024, 1024*1024 and 1024*1024*1024 bytes
- defaults to K
- períodos de tiempo:
- S, M, H, D, W – multiples de segundos: Segundos, Minutos, Horas, Días, Weeks(semanas); respectively: 1, 60, 3600, 86400, 604800 seconds
- defaults to S
CBandSpeed 1Mbps 20 40 CBandRemoteSpeed 512kbps 8 10 CBandClassRemoteSpeed bots_class 50kbps 3 4 CBandClassLimit bots_class 500M
# limit speed of this vhost to 1Mbit/s, 10 request/s, 30 open connections CBandSpeed 1Mbps 10 30 # in addition every remote host connecting to this vhost # will be limited to 200kbit/s, 3 request/s, 3 open connections CBandRemoteSpeed 200kbps 3 3
Descarga:
http://dembol.org/downloads/cband/mod-cband-0.9.7.5.tgz
mod_ratelimit
Habilitar módulo:
LoadModule ratelimit_module modules/mod_ratelimit.so
Limitadando directorio descargas a 400KiB/s<Location /downloads> SetOutputFilter RATE_LIMIT SetEnv rate-limit 400 SetEnv rate-initial-burst 512 </Location>
mod_qos
Características mod_qos (Quality Of Service), permite controlar:
- El número máximo de peticiones simultáneas a un lugar / de recursos (URL) o host virtual.
- Limitación del ancho de banda, tales como el número máximo permitido de solicitudes por segundo a una dirección URL o el máximo / mínimo de kbytes descargados por segundo.
- Limitar el número de solicitud de eventos por segundo (condiciones petición especial).
- Limitar el número de sucesos de petición en un plazo de tiempo definido.
- También puede detectar personas muy importantes (VIP) o robots de Google, que puede acceder al servidor web sin o con menos restricciones.
- Línea de petición genérica y el filtro de cabecera para negar las operaciones no autorizadas.
- Solicitud limitación de los datos del cuerpo y filtrado (requiere mod_parp).
- Limitar el número de solicitud de eventos para clientes individuales (IP).
- Limitaciones en el nivel de conexión TCP, por ejemplo, el número máximo de conexiones permitidas desde una sola dirección IP de origen o de control de mantenimiento de conexión dinámica.
- Prioridad sobre las direcciones IP conocidas cuando el servidor se queda sin conexiones TCP libres.
yum install openssl-devel.x86_64
yum install pcre-devel.x86_64
yum install httpd-devel.x86_64
Instalación:
wget url_descargaAñadimos el módulo DSO en el fichero httpd.conf
tar -xvzf mod_qos-11.2.tar.gz
cd mod_qos-11.2/apache2
apxs -i -c mod_qos.c
LoadModule qos_module /usr/lib64/httpd/modules/mod_qos.so
Ejemplo configuración:
## QoS Configuracion
#Manejo de conexiones hasta 100000 IPs diferentes (por defecto son hasta 50.000 ip's concurrentes)
QS_ClientEntries 100000
# Se permite solamente 50 connexiones por IP
QS_SrvMaxConnPerIP 50
# Máximo número de conexiones TCP activas 256
MaxClients 256
# Desactivar la directiva keep-alive cuando el 70% de las conexiones TCP están ocupadas:
QS_SrvMaxConnClose 70%
# Mínimo de velocidad para peticiones / respuestas (niega a los clientes lentos que bloquean el servidor ,
#Ejemplo; el script slowloris mantiene las peticiones HTTP :
QS_SrvMinDataRate 150 1200
# Limite de peticiones de encabezados y cuerpo (con cuidado, limita las cargas y las peticiones POST):
# LimitRequestFields 30
# QS_LimitRequestBody 102400
Permite definir la página de error que verán los clientes "denegados" o enviar un código de respuesta (response http code)
QS_ErrorPage
QS_ErrorResponseCode
Permite reglas condicionales con expresiones regulares.
Permite restringir por países con la directiva:
QS_CountryISO 3166 código de país de la dirección IPv4 del cliente. Sólo está disponible si el archivo de base de datos geográfica se ha cargado.
Nota: Puede utilizar la directiva QS_ClientIpFromHeader
QS_ClientGeoCountryDB
Define la ruta del archivo de base de datos geográfica. El archivo es un archivo de formato de valores separados por comas (CSV) (ejemplo). Cada línea contiene los siguientes campos:
- Doble comenzando número IPv4 citado del rango de direcciones, por ejemplo, "1052272128" para 62.184.102.0
- Doble cita termina número IPv4 del rango de direcciones, por ejemplo, "1052272543" para 62.184.103.159.
- Doble citado código de país ISO 3166, por ejemplo, "FR" para Francia.
Lista blanca de direcciones ip's sin restricciones:
# deshabilitar restricciones para ciertas ip's (lista blanca)Limitar la velocidad de ficheros de gran tamaño como por ejemplo archivos ISO.
QS_SrvMaxConnExcludeIP 172.18.3.32
QS_SrvMaxConnExcludeIP 192.168.10.
# Limits the download bandwidth when accessing ISO images to 1 megabyte/secNo permitir a un sólo cliente abrir más de xx conexiones TCP si el servidor tiene más de XX conexiones
# and does not allow more then 300 clients to download such file type in
# parallel:
QS_LocKBytesPerSecLimitMatch .*iso$ 1024
QS_LocRequestLimitMatch .*iso$ 300
# don't allow a single client to open more than 50 TCP connections if
# the server has not more than 196 free connections:
QS_SrvMaxConnPerIP 50 700
Enviar por correo electrónico
Escribe un blog
Compartir en X
Compartir con Facebook
Compartir en Pinterest