martes, 28 de junio de 2011

Securizando servidores (I)

En los tiempos que corren, muchas empresas tienen servidores conectados 24x7 a internet, ya bien en su propia empresa o en una externa. El mayor problema que suelen tener es que o no tienen un "informático"* capaz o directamente no lo tienen, y dejan el servidor a su libre albedrío, molestándose únicamente de actualizar la página web si acaso.

Uno de los mayores problemas que tiene un servidor desatendido es que van apareciendo agujeros por los que los "hackers"** se cuelan y hacen cosas malas. Para intentar evitar que se nos cuelen (o por lo menos que les cueste un poco más) voy a empezar una serie de post en los que trataré de explicar cómo mejorar la seguridad del servidor. Me centraré más en los servidores con Linux, ya que los que están basados en Windows necesitan 3 cosas básicas: antivirus, firewall y un San Pancracio. Bueno, y actualizar regularmente con la posibilidad de que alguna actualización de Windows te fría todo.

Empecemos por lo básico y vale tanto para Windows como para Linux: copias de seguridad de los datos hasta debajo de la almohada. Se que parece una chorrada, pero más de uno y de dos no tienen copias de sus datos. ¿Porqué es tan importante? Por una sencilla razón, y es que nunca sabes cuando puedes perderlos. Hay mil factores que pueden hacer que se pierdan los datos o que necesites tener una copia fuera: una actualización que hace que deje de funcionar los programas y se vaya todo al garete, que se corrompan los datos de la bbdd, que se rompa el disco duro (sí, tener un RAID1 e incluso un RAID5 no da un 100% de fiabilidad), que alguien lo borre sin querer, y un largo etcétera de situaciones que harán que como no exista una copia te quieras poner una bonita soga al cuello, si es que no te la ponen. Hay muchas formas de tener un backup y lo más sensato es tener varios y en distintos lugares.

Quedando clara la importancia de los backups, pasamos a otro tema, ya 100% linux. Dejaré el firewall y otras medidas de seguridad más cotidianas para otros posts y me centraré en un programa que es una pequeña joya, ya que pese a no garantizar que se nos vayan a colar, si supone un verdadero dolor de cabeza.*** El programa en cuestión es mod_evasive, con él nos quitaremos de en medio parte de los ataques DoS que se puedan producir en nuestra máquina. Básicamente lo que hace es denegar las peticiones repetitivas que se hagan al apache, bloqueando al atacante temporalmente (o no).

Instalarlo es sencillo, vamos a ello:
0º. Tener instalado apache, apache-devel (httpd y httpd-devel) y gcc
1º. Descargar el archivo de la página web del programa
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
2º. Descomprimirlo y entrar dentro de la carpeta:
tar -xzvf mod_evasive_1.10.1.tar.gz
cd mod_evasive
3º. Compilar y obtener el módulo de apache:
apxs -i -a -c mod_evasive20.c
Lo siguiente sera comprobar que el módulo está en /usr/lib/httpd/modules/mod_evasive20.so y que está incluido en el httpd.conf:
grep evasive /etc/httpd/conf/httpd.conf
Nos debería devolver esta línea:
LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.so
Si no está agregarla a mano y esto también:
Include mod_evasive.conf
Lo siguiente es editar el archivo /etc/httpd/mod_evasive.conf****, ponerlo al gusto de cada uno y reiniciar el servicio de apache.

Más info: http://www.emezeta.com/articulos/mod-evasive-evitando-denegacion-servicio-distribuida#axzz1QYp1ipUh

Se acaba el post por hoy, en próximos post explicaremos el uso de iptables y de mod_security, herramientas que también nos ayudarán a evitar a tapar esos agujeros de seguridad que tantos quebraderos de cabeza nos dan.

* No me gusta el término informático, pero que se le va a hacer.
** Tampoco me gusta el término hacker, no es exacto en la mayoría de las veces...
*** Pain in the ass (me gusta más la expresión en ingles :P)
**** En mi caso con el Fedora 15 he tenido que crear a mano el archivo mod_evasive.conf.

No hay comentarios:

Publicar un comentario