Bloquear ataques DoS en apache con mod_evasive

Si deseas prevenir un ataque de Denegación de servicio (DoS) cuyo objetivo es colapsar el servidor durante un periodo de tiempo para que este no esté en funcionamiento, ahora bien, si nuestro servidor es Apache podemos contar con el módulo llamado mod_evasive.

El módulo de seguridad para Apache, mod_evasive cuyo propósito no es otro que el de prevenir o anular ataques de Denegación de Servicio o de fuerza bruta basados en peticiones masivas al servidor de páginas web (HTTP DoS). A través del módulo tendremos la posibilidad de redirigir el tráfico malicioso hacia otra aplicación de control que terminará de filtrar las peticiones (firewalls, scripts personalizados, …).

El funcionamiento de mod_evasive se basa en la prevención de ataques mediante la comparación de la IP solicitante con una tabla dinámica que registra las páginas accedidas a nuestro servidor que provienen de dicha IP y la frecuencia de accesos. En el preciso instante en que una máquina solicita una dirección del servidor Apache, mod_evasive filtrará cualquier dirección IP que cumpla con los siguientes requisitos:
* La IP está en la lista de direcciones a filtrar.
* La IP cliente ha solicitado la misma dirección más veces que la cantidad máxima especificada en el fichero de configuración.
* El número de peticiones de la IP cliente excede del máximo permitido en un intervalo de tiempo predeterminado en la configuración.

Si una IP resulta filtrada por cumplir con alguna de las condiciones anteriores, recibirá un código 403 (Forbidden) en respuesta a su petición y le será denegado el acceso durante un periodo de tiempo configurable.

Ahora viene la parte interesante que es la instalación y configuración, antes de empezar debemos de contar con las herramientas necesarias para compilar programas en Linux y en especial para Apache, en este caso estamos usando una versión estilo apt (Debian, Ubuntu…)

apt-get install apache2-prefork-dev gcc

Despues procedemos a descargar el codigo fuente que encontramos en la página oficial del proyecto mod_evasive: http://www.zdziarski.com/projects/mod_evasive (al momento de escribir esta nota la versión es la 1.10.1)

Ahora procedemos a descargar y descompactar el codigo, de preferencia en la carpeta temporal /temp

wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
tar xvzf mod_evasive_1.10.1.tar.gz
cd mod_evasive
/usr/bin/apxs2 -i -c mod_evasive20.c

Ahora vamos a crear el archivo de configuración de Apache2 dentro de la carpeta mods-enabled

nano /etc/apache2/mods-available/evasive.load

Y dentro del archivo ponemos la siguiente linea, que es donde esta nuestro modulo compilado (mod_evasive20.so)

LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so

Despues sigue ligar la carpeta mods-available con los mods-enabled

ln -s /etc/apache2/mods-available/evasive.load /etc/apache2/mods-enabled/evasive.load

Y listo, solo falta configurar los parametros, tomando en cuenta la siguiente descripción:

* DOSHashTableSize – Establece el número de nodos a almacenar para cada proceso de peticiones de la tabla hash (contenedor asociativo de recuperación de peticiones por medio de claves que agiliza las respuestas del servidor). Si aplicamos un número alto a este parámetro obtendremos un rendimiento mayor, ya que las iteraciones necesarias para obtener un registro de la tabla son menores. Por contra, y de forma evidente, aumenta el consumo de memoria necesario para el almacenamiento de una tabla mayor. Se hace necesario incrementar este parámetro si el servidor atiende un número abultado de peticiones, aunque puede no servir de nada si la memoria de la máquina es escasa.
* DOSPageCount
– Indica el valor del umbral para el número de peticiones de una misma página (o URI) dentro del intervalo definido en DOSPageInterval. Cuando el valor del parámetro es excedido, la IP del cliente se añade a la lista de bloqueos.
* DOSSiteCount
– Cuenta cuántas peticiones de cualquier tipo puede hacer un cliente dentro del intervalo definido en DOSSiteInterval. Si se excede dicho valor, el cliente queda añadido a la lista de bloqueos.
* DOSPageInterval
– El intervalo, en segundos, para el umbral de petición de páginas.
* DOSSiteInterval
– El intervalo, en segundos, para el umbral de petición de objetos de cualquier tipo.
* DOSBlockingPeriod
– Establece el tiempo, en segundos, que un cliente queda bloqueado una vez que ha sido añadido a la lista de bloqueos. Como ya se indicó unas líneas atrás, todo cliente bloqueado recibirá una respuesta del tipo 403 (Forbidden) a cualquier petición que realice durante este periodo.
* DOSEmailNotify – Un e-mail será enviado a la dirección especificada cuando una dirección IP quede bloqueada.
* DOSSystemCommand – El comando reflejado se ejecutará cuando una dirección IP quede bloqueada. Se hace muy útil en llamadas a herramientas de filtrado o firewalls. Usaremos %s para especificar la dirección IP implicada. Por ejemplo, podemos establecer su uso con iptables de la forma siguiente para bloquear el acceso al puerto 80

DOSSystemCommand “/sbin/iptables -I INPUT -p tcp –dport 80 -s %s -j DROP”

O bien!! bloquear todooo el acceso al servidor, esto esta mejor.

DOSSystemCommand “sudo -u root /sbin/iptables -A INPUT -s %s -j DROP”

* DOSLogDir – Establece una ruta para el directorio temporal. Por defecto, dicha ruta queda establecida en /tmp, lo cual puede originar algunos agujeros de seguridad si el sistema resulta violado.
* DOSWhitelist – La dirección IP indicada como valor del parámetro no será tenida en cuenta por el módulo en ningún caso. Para cada dirección IP a excluir ha de añadirse una nueva línea con el parámetro. Por ejemplo, dejaremos fuera del chequeo del módulo a un posible bot (el de Google) que use los siguientes rangos de direcciones:

DOSWhitelist 66.249.65.*
DOSWhitelist 66.249.66.*

Y bien, ya que conocen que significa cada parametro, aquí esta una configuración opcional que se debe de guardar en el archivo /etc/apache2/conf.d/evasive


DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 600
#DOSEmailNotify cliente@servidor.com
#DOSSystemCommand “/sbin/iptables -I INPUT -p tcp –dport 80 -s %s -j DROP”
DOSSystemCommand “echo %s >> /tmp/mod_doesevasive.log”

#GoogleBot
DOSWhitelist 66.249.65.*
DOSWhitelist 66.249.66.*

Y para probar si realmente funciona todo, en la carpeta donde descompactamos el tar.gz viene un archivo llamado test.pl, solo es cosa de ejecutarlo con:

perl test.pl

Y despues de ciertas peticiones vamos a ver el famoso error HTTP/1.1 403 Forbidden y listo!!, eso significa que todo funciona a la perfección, ahora ya tenemos un Apache un poco mas protegido!..

Nueva versión de Mozilla Firefox 1.0.7

Se acaba de liberar la versión 1.0.7 de nuestro querido navegador Firefox en el cual se corrigen algunos errores graves como uno que era un buffer overflow (osea debordamiento de pila) al tratar URL con guiones, tal como se hablo en Cofradía hace unos días.

Asi que ya saben, a actualizar todos el browser Firefox si es que no les ha dicho automagicamente que existe una nueva versión.

Que lata con las particiones del Unix Solaris

Con la novedad que tengo que rescatar un sistema que esta en Unix System V/386 osea Solaris!.. (eso creo), bueno el chiste es que al ejecutar cierto proceso me sale un bonito letrero:

527: Memory Fault – Core Dumped

Osea!! ya chafio algo por ahi…despues de ver que si estaba lleno el disco duro (q tiene un 80% ocupado) nomas no encontre el error.., asi que decidi probar el sistema en otra compu, una con Linux (me imagino que funciona igual no??) pero la cosa es que al montar la unidad en Knoppix le doy:

mount -t ufs -r -o ufstype=sunx86 /dev/hda4 /mnt/unix

Pero me sale un:

mount: wrong fs type, bad option, bad superblock on /dev/hda4,

missing codepage or other error

In some cases useful info is found in syslog – try

dmesg | tail or so

a lo cual hago su respectivo dmesg y sale:

ufs_read_super: bad magic number

Osea!! ni que fuera mago para saber el numero magico o algo asi!…, la verdad estoy trincao! (como dicen por ahi), si alguien sabe algo al respecto!! avisen!.., o si saben como ejecutar un programa del Unix en Linux tambien avisen!! (si es que hay q moverle algo)

Instalar OpenZaurus y Opie en una Zaurus SL-5600

Lo primero que debes hacer es descargar OpenZaurus para su instalación. Para ello, entra en http://www.openzaurus.org/official/unstable/3.5.3/sl5600/ y descarga los siguientes archivos.

* updater.sh
* zImage-poodle-20050409140246.bin
* opie-image-poodle-20050409140246.rootfs.jffs2.bin

Y renombramos los archivos como sigue:
* __zImage-poodle-20050409140246.bin__ -> zImage
* __opie-image-poodle-20050409140246.rootfs.jffs2.bin__ -> initrd.bin

Despues lo pasamos a nuestra tarjeta CompaqFlash , y verifica que el checksum (MD5) sea correcto!…

Ahora vamos a la parte interesante!!!, la instalación.

– Quitar , si la tenemos dentro, la tarjeta SD .
– Insertar la tarjeta CF con los arhivos para la instalación del nuevo sistema.
– Enchufar la Zaurus a la corriente. Este paso es importante porque no es posible realizar la instalación del nuevo sistema trabajando con la batería.
– Mover el switch que tiene nuestra Zaurus, por detrás, a la posición de reemplazar la batería .
– Pulsamos con el lápiz en el botón de Reset que hay justo debajo de la batería.
– Volvemos a poner el switch otra vez en su posición original .
– Pulsamos a la vez los botones ”Ok” y “Cancel” .
– Escogemos la opción ”Update” del menú.
– Después deberemos elegir desde donde queremos hacer el Update. Es decir, donde tenemos los arhivos, en este caso es CompaqFlash ( CF )
– Nos indica que va a realizar la actualización, y presionamos el boton ”Yes”

Despues se reinicia la Zaurus y empieza la actualización…, toma algo de tiempo! aunque no tanto como instalar una distro de Linux :-P , y para finalizar realizamos otro ”Reset” y a disfrutar de nuestra OpenZaurus con Opie como manejador de ventanas!

Respaldar la ROM de la Zaurus

Para respaldar la ROM de nuestra Zaurus se necesita una tarjeta de memoria Compact Flash formateada a FAT. Si ya tienes una para tu camara digital lo mas seguro es que ya este formateada, asi que no hay que preocuparse.

Estos son los pasos a seguir para realizar la copia:

– Quita la batería de tu Zaurus y asegúrate de que no está enchunfada a la corriente.
– Mientras presionas “ D ” y “ M ”, al mismo tiempo, pon la batería o enchufa la Zaurus a la corriente.
– Entra en el menú de diagnóstico “ Diasnoctic Menu ”.
– Introduce la tarjeta CF (Compact Flash).
– Selecciona la opción “ NAND backup ”, para hacer backup o “ NAND restore ” para restaurar.

Ahora si se quiere puedes guardar la copia en tu compu, y asi liberamos la memoria de la tarjeta CF.

Si necesitas restaurar la copia repite los pasos y escoge la opción adecuada en el menú.

Registro en Linux Counter y Grupo Linux de Occidente

Yo soy otro numero mas en este mundo tan poblado! las siguientes imagenes no son del reclusorio ni nada por el estilo, sino que es el Linux counter y el contador del Grupo Linux de Occidente


Para los que no conocen el contador de linux (Linux Counter) se encarga de llevar las estadisticas mundiales del uso de Linux, incluyendo el procesador, servicios, numero de usuarios, tipo de uso, version del kernel…. es muy interesante ver todas estas opciones y poder ver el comportamiento de la gente y sus preferencias informaticas linuxeras :-P

Tambien existe el proyeto GLO Counter, el cual es un contador de miembros del GLO (Linux del Occidente de Mexico) y personas afines al mundo de Linx, yo por lo pronto soy el numero 116, asi que si perteneces a alguna ciudad del Occidente (Jalisco, Colima, Nayarit, Michoacan…, me falta alguna ???) pues que esperas!. registrate!…. ;-D

Siento que estoy patentado!…

Estaba actualizando la parte inferior de la pagina (los iconitos), y se me ocurrio poner uno sobre ”No Software Patents” , y me di la tarea de buscar la liga a la cual corresponderia el icono, bueno en una de esas busquedas encontre una pagina muy interesante que habla sobre las patentes y pone un ejemplo de tienda online y explica las cosas que estan patentadas!.., osea TODAS!…

Aqui algunas cosillas:

* El titulo de la pagina – EP0803105 y EP738446
* Las pestañas de navegacion – EP689133
* Ventana de previsualizacion – EP537100
* Pagar con tarjeta de credito por internet – EP820620 y EP779587
* Distribuir video – EP933892 y EP633694
* Descargar MP3 – EP287578
* Codigos de descuento – EP370847
* Bases de datos – EP673135
* Formato JPEG – EP266049
* Formato GIF – EP927945
* Enviar ofertas a los clientes – EP986016
* Carrito de compras – EP807891 y EP784279

Y aqui les dejo la imagen de la pagina patentada.

(espero que no este patentada jeje:-P)

Hijoles! yo creo que si sigo asi nunca acabo.. asi que practicamente todooo esta patentado! (me imagino que hasta los calzones!), espero que no llegue este problema a Mexico, aunque desgraciadamente vivimos en un mundo global y lo que afecte en Europa, nos llega.., tarde pero nos llega….

Lista la VPN en mi casa.

Por fin rindieron frutos el taller de openVPN del GulCol, ya instale mi VPN en mi casa!, asi tendre acceso cuando vaya a GDL o a cualquier parte del mundo!.

Ahorita me falta arreglar unos problemillas del router de infinitum y de uno inalambrico, ya que tengo 2 routes en cascada con sus respectivos firewalls (algo paranoico jeje)

Al raton pin pon, les pongo la configuración, casi es igual a la que puse aquí hace días, solo que esa era para conexiones P2P, y esta es arquitectura cliente-servidor.

Por fin se dejo ordeñar la vaca larry!..


Ahora si!! ya tengo Gentoo en al compu!.., despues de tantas batallas y que casi desisto por usarlo y que mi HDD casi pasaba a mejor vida, gracias a los consejos que me dieron sobre desactivar el DMA :-)

Las Xorg estan listas y funcionando!, tambien el Xfce4., ahorita anda compilando Firefox, Xmms y Gdm ;-)

Como conclusion de lo que llevo es:
* Gentoo si es rapido para ejecutar las aplicaciones
* Y es lentooo para compilarlas!!.
* Gentoo no es para gente desesperada! (ocupan tener paciencia, mucha paciencia!.., yo creo que es como si tomaran un curso de Yoga o algo por el estilo!..)
* Tienen que leer, leer y mas lectura de la documentacion
* Y por ultimo con Gentoo aprenden porque aprenden el funcionamiento de Linux.,

Seguire informando de las peripecias que la vaca larry haga en mi compu.

Continue reading