miércoles, 29 de junio de 2011

Securizando servidores (II)

Volvemos con otra entrada de esta tanda de posts dedicados a la seguridad. Ayer aprendí la importancia de tener todo actualizado en el sistema, desde los programas que se usan, hasta el kernel de linux. Y "gracias" al kernel ayer tuve una noche movidita.

Es importante tener actualizado el kernel a que se van descubriendo bugs y algunos de ellos son grandes fallos de seguridad como el que aprovecha un rootkit llamado wunderbar_emporium, que básicamente aprovecha un bug presente en los kernels hasta la version 2.6.30 creo. Básicamente si se consigue una cuenta de usuario y ejecuta este script, consigue en cuestion de segundos acceso como root. No es un bug fácil de explotar siempre y cuando las contraseñas de los usuarios sean medianamente seguras y que el servidor no tenga alguna página web que permita ejecutar programas en local o tenga otros fallos de seguridad*. ¿Cómo solucionamos esto? Si podemos, actualizando el kernel a una version actual.

En condiciones normales, con yum install linux-image-xxxxx** o apt-get install linux-image-xxxxx** nos bastaría, se descarga de los repositorios y listo, kernel actualizado. Otra forma sería encontrar el paquete para nuestra distro e instalarlo mediante deb o rpm y también listo. Siempre es aconsejable instalar un kernel que esté preparado para nuestra distro, ya que están especialmente compilados para que funcionen bien y con los añadidos necesarios. Pero, ¿Y si no podemos usar ninguno de estos métodos? Pues estamos un poco jodidos, ya que nos tocará bajar el kernel de kernel.org y compilarlo nosotros mismos. En principio no es un gran problema, con un poco de paciencia y con una guía que encontremos por internet deberíamos tenerlo resuelto.

No voy a poner ahora una guía de cómo compilar un kernel, ya que por desgracia aún no he podido hacerlo. El tema de la máquina de ayer fue un tanto tocapelotas. Era una Debian 5, desactualizada y con problemas con los repositorios, no se si por que ya no están los repos de Debian 5 o porqué, asi que la opción de apt-get, a tomar por saco. Lo siguiente era buscar el paquete e instalarlo con deb, pero vaya sorpresa la mía que no estaba el deb para instalar cosas T.T asi que... me armé de valor y decidí compilar el núcleo. Tras comprobar que el comando wget sí funcionaba, me descargué el kernel 2.6.38, no es el más nuevo, pero tampoco vamos a poner el último. Tras un ratito esperando a que se descargase, buscando mientras guías para compilarlo, descubro un fallo enorme: ¡¡no tenian instalado el bzip2!! Otra piedra en el camino, pero bueno, apt-get... oh wait... bueno, a descargar el código y a compilarlo, no puede ser tan dificil ¿no? Tras otra piedra más, ya con la vena del cuello empezando a verse, descargo el código, lo descomprimo (menos mal que tenía instalado el gzip, si no ya me corto las venas), make install, y ¡Surprise! No estaba instalado el gcc. Ya lo tuve que dejar, ya que mi turno acabó. Hoy veré cómo se ha solucionado.

Lo que me pasó no creo que sea normal, pero pasa, por eso hay que estar pendientes de los servidores y no dejarlos a su libre albedrío. Si se hubiese mantenido un poco ese servidor, no se habría llegado a este extremo. ¡En la próxima entrega, un par de truquitos para mantener las contraseñas seguras, y la solución a este entuerto!

* Wordpress, Joomla, etc, etc...
** Buscar la última version disponible en los repositorios.

No hay comentarios:

Publicar un comentario