Archivo

Archive for the ‘Utilidades’ Category

Administrando sistemas con tmux

20 enero, 2014 Deja un comentario

Administrando sistemas con GNU Screen

5 diciembre, 2013 Deja un comentario


 

 

Complementos para Google Chrome

7 May, 2013 1 comentario

Esta es la entrada hermana de Complementos para Firefox y Thunderbird y pretende ser un listado de los complementos imprescindibles para mi trabajo diario con este navegador.

Complementos para Chrome:

Categorías: Utilidades Etiquetas: , , ,

VirtualBox: arrancar desde una unidad USB

25 febrero, 2013 1 comentario

system-rescue-cd-logoSiempre resulta útil tener a mano un CD de rescate para pasar un test de memoria, resetear la password de Administrador olvidada tras unas vacaciones (no sería la primera vez que me sucede) o recuperar el sistema frente a fallos, infecciones víricas varias, etcétera.

Así pues, decido hacer un CD de rescate para posibles contingencias y me decanto por la última versión del Hiren’s BootCD, principalmente porque es muy completo y el preferido por los usuarios.

Una vez metido en faena, tras descargar la imagen ISO del susodicho CD, y antes de quemarlo, veo que no tiene mucho sentido gastar un CD que puede que no utilice durante una larga temporada y que cuando vaya a hacerlo se haya quedado obsoleto por el lanzamiento de nuevas versiones del Hiren’s BootCD. Por tanto, aprovechando que hoy en día la mayoría de los equipos permiten arrancar desde una unidad USB, decido utilizar uno de los muchos USBs de 1GB que con el paso del tiempo he ido acumulando y no uso. Si mañana sale una nueva versión, reutilizo el mismo dispositivo y listo. Además, el USB tiene otras ventajas frente al CD-R/RW: es más fácil de transportar y es menos delicado.

Las instrucciones para crear un drive USB de arranque con el que poder ejecutar el Hiren’s BootCD son muy sencillas y no es el objetivo de esta entrada reescribirlas.

Hasta aquí todo perfecto, tenemos nuestro CD de rescate en un dispositivo USB de arranque, sólo nos queda… arrancar el equipo con él para ver de lo que es capaz. Sin embargo, tengo el día más perro que Niebla, así que, en lugar de reiniciar el PC para probar el «CD/USB de rescate» me digo: ¿Por qué no utilizo una máquina virtual de VirtualBox para arrancar desde el USB y evaluar la utilidad?

Dicho y hecho… pues NO. Resulta que VirtualBox no permite utilizar una unidad USB como dispositivo de arranque. No lo permite de manera directa, pero sí de manera indirecta utilizando un disco virtual raw del dispositivo. Para crearlo es necesario ejecutar el siguiente comando:

En Windows:

C:\>"%programfiles%"\oracle\virtualbox\VBoxManage internalcommands 
    createrawvmdk -filename C:\usbdisk.vmdk -rawdisk \\.\PhysicalDrive#

Aquí el problema está en averiguar el nº (el # al final del comando) del drive físico asociado a nuestro USB. Esto podemos hacerlo utilizando el Administrador de discos:

Administrador_discos_pdrive

O ejecutando el siguiente comando:

C:\>wmic diskdrive get caption,mediatype,deviceid,size
Caption                    DeviceID           MediaType       Size
ST31000524AS ATA Device    \\.\PHYSICALDRIVE0 Fixed hard disk 1000202273280
Generic Storage Device USB \\.\PHYSICALDRIVE1
2.0 USB Device             \\.\PHYSICALDRIVE2 Removable Media 1003484160

En Linux:

$ VBoxManage internalcommands createrawvmdk \ 
  -filename ~/usbdisk.vmdk -rawdisk /dev/sdX

Después de esto, ya podemos configurar la máquina virtual para arrancar desde el disco usbdisk.vmdk y ver las posibilidades de nuestro USB de rescate.

VirtualBox-usbdisk

VirtualBox-Hirens

Banear IPs con Fail2ban

Fail2ban es una aplicación que escanea ficheros de log y banea las IPs que muestran un comportamiento malicioso, como por ejemplo múltiples intentos fallidos de inicio de sesión a través de SSH. Generalmente Fail2ban se utiliza para actualizar las reglas de un firewall y rechazar las direcciones IP durante un período especificado de tiempo, aunque cualquier otra acción, como por ejemplo el envío de un correo electrónico, también puede ser configurada.

Fail2ban está desarrollado en Python y este es el único requisito necesario para ejecutar la aplicación. Opcionalmente, necesitaremos instalar los paquetes de las aplicaciones de filtrado y de envío de correos preferidos si queremos hacer uso de estas características.

Instalación.

La instalación es bastante sencilla, en un sistema con Debian instalado basta con ejecutar:

# apt-get install fail2ban

Arquitectura.

Fail2ban tiene una arquitectura cliente/servidor. El script fail2ban-client es, como podéis imaginar, la parte cliente y será la que utilicemos en todo momento para trabajar con fail2ban y enviar comandos al servidor, llamado fail2ban-server, que está escuchando en un socket de Unix.

Como suele ser habitual, en el directorio /etc/init.d podemos encontrar el script fail2ban para arrancar, detener, reiniciar… el servidor de fail2ban. Esto mismo también lo podemos hacer utilizando fail2ban-client.

# fail2ban-client [start | stop | status | reload | reload <JAIL>]

Ejecutando fail2ban-client sin parámetros obtendremos un listado de todos los comandos que podemos enviar al servidor.

Funcionamiento.

¿Cómo funciona fail2ban? Como hemos dicho, fail2ban analiza ficheros de log en busca de patrones correspondientes a fallos de inicio de sesión u otra expresión de interés para nuestro propósito. Por tanto, en algún momento tendremos que configurar los filtros (filters) o expresiones regulares que permitan localizar esos patrones.

Fail2ban trae filtros para diferentes servicios (Apache, Curier, SSH, etc).

Por otro lado, será necesario definir las acciones (actions) que serán ejecutadas, como por ejemplo enviar un correo electrónico o bloquear la IP vía iptables.

Finalmente, para unirlo todo, tendremos que configurar una jaula (jail). Una jaula es una combinación de un filtro y una o varias acciones. Fail2ban puede manejar varias jaulas al mismo tiempo.

Configuración.

Todos los ficheros de configuración se encuentra en el directorio /etc/fail2ban.

  • El fichero /etc/fail2ban/fail2ban.conf contiene la configuración general para el servidor fail2ban-server. En este fichero podemos configurar el nivel de log (loglevel), el destino de los logs (logtarget) y el socket utilizado (socket).
  • Dentro del directorio /etc/fail2ban/action.d se localizan los ficheros de configuración correspondientes a las distintas acciones que podemos ejecutar.
  • Dentro del directorio /etc/fail2ban/filter.d se localizan los ficheros de configuración correspondientes a los filtros utilizados para analizar los ficheros de log de servicios como apache, ssh, qmail, postfix, etc.
  • Por último, el fichero /etc/fail2ban/jail.conf contiene la declaración de las jaulas con indicación de los filtros y acciones a ejecutar para cada una de ellas, además de, entre otras cosas, el tiempo que permanecerán las IPs baneadas (bantime) o la acción utilizada por defecto si no se especifica una en la configuración de la jaula (banaction).
  • Si queremos modificar la configuración de alguno de estos ficheros, lo más recomendable es crear en la misma ubicación un fichero .local que sobreescriba la configuración del fichero .conf hermano. Por ejemplo, el fichero /etc/fail2ban/jail.local podría ser utilizado para sobreescribir la configuración de algunas de las opciones definidas en el fichero jail.conf.

Por ejemplo, la jaula para el baneo de IPs que realizan 6 intentos fallidos de conexión a través de SSH quedaría configurada dentro del fichero jail.conf del siguiente modo:

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

Cuando el patrón configurado en el filtro sshd encuentra 6 correspondencias en el fichero auth.log se dispara la acción por defecto configurada en banaction. Si la acción es filtrar la IP por medio de iptables u otro firewall, el baneo será efectivo por bantime segundos.

Esto ha sido una pequeña introducción a fail2ban, en los siguientes enlaces podrás ampliar la información: