miércoles, 27 de abril de 2011

Tutorial: Configurando Ossec + Interfaz Web en Debian Squeeze

Ossec es un HIDS, es decir, un Host Intrusion Detection System, o lo que es lo mismo, un sistema de detección de intrusos. En inglés da más cague, en español suena como más relajado.

Este programilla, dicho fácilmente, nos protege el ordenador. Pero es distinto a un antivirus o firewall. El antivirus nos protege y borra virus, y los firewalls cortan conexiones no autorizadas. Sin embargo un HIDS lo que hace es detectar comportamientos extraños, tanto en el propio equipo o la red, y a partir de ahí tomar decisiones como avisar al administrador con un email o cortar una conexión.

Por ejemplo, si un usuario intenta loguearse en la máquina demasiadas veces puede banearlo unos minutos de la máquina, o si hay muchas conexiones de alguien que nos quiere tirar abajo el servidor con un ataque dDos, puede a partir de ese momento rechazar el tráfico de esa IP automáticamente y evitar que ese malandrín nos siga molestando.

Todo ello lo hace mirando los logs periódicamente, así que es importante que tengamos bien configurado nuestro rsyslog.

Además puede comprobar el sistema de archivos al estilo tripwire, y avisarnos de los cambios que se hacen, archivos que se borran, se añaden al sistema, es decir, el sueño de todo administrador de sistemas.

Para instalarlo(como root):

wget http://www.ossec.net/files/ossec-hids-latest.tar.gz
tar -zxvf ossec-hids-*.tar.gz
cd ossec-hids-*

./install.sh


Yo elegí la instalación local

/var/ossec/bin/ossec-control start

Ahora instalamos la interfaz web. Necesitamos apache2 y php5

apt-get install php5 apache2 php5-cgi
wget http://www.ossec.net/files/ui/ossec-wui-0.3.tar.gz
tar -zxvf ossec-wui-0.3.tar.gz
mv ossec-wui-0.3 /var/www/ossec-wui
cd /var/www/ossec-wui
./setup.sh


Añadimos el usuario al grupo ossec

vi /etc/group
..
De:
ossec:x:1001:
A:
ossec:x:1001:www-data


chmod 770 tmp/
chgrp www-data tmp/
/etc/init.d/apache2 restart


Abrimos con el explorador http://127.0.0.1/ossec-wui/

Para proteger dicho directorio con contraseña, hacemos:

vi /etc/apache2/httpd.conf

Y añadimos

<Directory /var/www/ossec-wui/>
AllowOverride All
</Directory>


Que hará que el .htaccess empiece a funcionar.

Espero que os haya sido útil, a mí me servirá de chuleta en el futuro.

Nos vemos.

jueves, 14 de abril de 2011

Password en Grub2

Por todos es sabido que es importante tener contraseñas en todo lo relacionado con los ordenadores. Si tenemos contraseñas en los inicios de sesión o en el correo electrónico, ¿por qué no tenerla también en el arranque del PC, una parte vital?

Suponiendo que tenemos grub2 instalado, que ahora viene por defecto con Ubuntu y Debian, por ejemplo, el arranque nos vendrá sin password y ya no se sigue el método que usábamos en el anterior grub (con md5crypto, etc.) para asignarlo, ni tampoco contamos con el archivo de configuración /boot/grub/menu.lst

Para configurar la contraseña, primero debemos generar una con

grub-mkpasswd-pbkdf2

Tardará un poquillo y nos generará un hash con PBKDF2(usado tambien en WPA/WPA2, por ejemplo).

Luego abrimos el archivo /etc/grub.d/40_custom y añadimos las líneas

set superusers="root"
password_pbkdf2 root HASHDEANTES


Donde HASHDEANTES es el churro que nos salió de la instrucción anterior.
Hacemos un

update-grub

y listo. Esto hará que nadie pueda cambiar los comandos que ejecuta el bootloader(con 'e' cuando estáis en el grub).

Me parece increíble que Debian insista tanto en contraseñas, certificados, etc. cuando lo instalas y no pregunte(o al menos yo no lo recuerdo) para establecerte una pass en el bootloader(que a efectos prácticos es como si te dejaran el sistema con la pass de root en blanco si el atacante tiene acceso físico a la máquina).

Nos vemos

domingo, 10 de abril de 2011

Genial página de herramientas de seguridad

Hoy navegando he encontrado una web con muy buenas herramientas de seguridad ordenadas en categorías. Me ha parecido muy muy útil, lástima que esté bastante desactualizada...

http://www.baxware.com/

domingo, 3 de abril de 2011

Desbrickear Router basado en ADAM2 o PSPboot

En mi caso, me cargué el otro día el router C54APRA2+. Estaba intentando meterle el firmware OpenWRT con las instrucciones del blog de enavas (muy bueno por cierto):

http://enavas.blogspot.com/2010/01/openwrt-en-routers-conceptronic-c54apra.html

Sin embargo el router que el menciona no es el mismo que el mío, él habla del C54APRA mientras que yo tengo el C54APRA2+, así que entre una cosa y otra me confundí al hacer el mapeado de memoria y dejé el router hecho una basura.

Así que tras creer que realmente me había cargado el router, lo que hice fue lo siguiente.

En primer lugar vi que el sitio web donde más información y programas había para routers era RouterTech.

http://www.routertech.org/firmware-faq/readme.html

Abajo de todo hay una lista de programas para realizar la recuperación.  Tras probarlos todo al final acabé usando:
Decubrí que lo que me cargué del router son las variables de entorno, para empezar el particionamiento (mtd0, mtd1, mtd2, mtd3 y mtd4), y al cargar el particionamiento del router, las propias variables de entorno se almacenan en mtd3, con lo que al parecer hice más pequeña la partición mtd3 haciendo desaparecer ciertos elementos importantes como la variable de entorno BOOTCFG (indispensable para decirle al router cómo y dónde arrancar).

No sabía las variables de mi router, así que me bajé el Firmware Tool y el firmware del router desde la página oficial de Conceptronic. Con ese programa lo analicé y me dió el tamaño exacto de las particiones. También me dió el valor del resto de las variables de entorno, y te genera un script donde las asigna todas. Ese script es simplemente un archivo de texto. En mi caso tuve que editarlo porque el programa no me puso bien las variables de entorno que me había dado cuando analizó las particiones.

Posteriormente abrí el PC tool, conecté al router, y le dije que ejecutara el script. Aseguraos de que en el script la asignación de particiones (SETENV mtd0 0x00000..., etc.) esté arriba de todo. El router ejecutó el script correctamente y se restauró.

Sólo me faltó ir a la página de Conceptronic, descargarme el Firmware Recovery Tool que hay para mi router, y ejecutarlo. Ahora el router está funcionando sin problema ninguno.

Nota: Explico todo bastante por encima y sin pararme demasiado, parto de que cualquiera que haya brickeado el router ha usado estos programas y sabe más o menos cómo va la cosa. Si no es así, comentáis y amplío el artículo.

Espero que os sea de utilidad, a mí haber leído esto me hubiera salvado de perder dos tardes y un router que estuve a punto de tirar.

Un saludo a todos