Un servidor dedicado ofrece muchas ventajas, pero también requiere un alto grado de re­s­po­n­sa­bi­li­dad y su­pe­r­vi­sión periódica, es­pe­cia­l­me­n­te para prevenir el acceso no au­to­ri­za­do de terceros. Existen diversos motivos por los que personas sin es­crú­pu­los podrían atacar un servidor, por lo que tomar las medidas de seguridad co­rre­s­po­n­die­n­tes es fu­n­da­me­n­tal, es­pe­cia­l­me­n­te por el gran riesgo que implican algunos ataques ma­li­n­te­n­cio­na­dos.

¿Qué hay detrás de Fail2ban?

Fail2ban es un módulo de servidor que se puede utilizar para sistemas Linux y POSIX, escrito en el lenguaje de pro­gra­ma­ción de Python, y que sirve como framework de seguridad del tipo de un co­r­ta­fue­gos o filtro de paquetes. Fail2ban detecta aquellas di­re­c­cio­nes IP cuyo co­m­po­r­ta­mie­n­to resulta inusual, por ejemplo, las que han intentado acceder varias veces con una co­n­tra­se­ña in­co­rre­c­ta a los archivos de registro del servidor. Un cierto número de intentos fallidos, asegurará au­to­má­ti­ca­me­n­te que ese usuario sea "baneado", es decir, que su IP sea bloqueada durante un periodo de­te­r­mi­na­do de tiempo. El ad­mi­ni­s­tra­dor también puede co­n­fi­gu­rar Fail2ban para recibir no­ti­fi­ca­cio­nes de este tipo de accesos por correo ele­c­tró­ni­co.

Por defecto, Fail2ban cuenta con una serie de filtros, por ejemplo para Apache, Postfix o Courier Mail Server, con los que se pueden reconocer cadenas es­pe­cí­fi­cas en los archivos de registro. Con la ayuda de estos filtros es posible des­en­ca­de­nar las así llamadas acciones, comandos que se ejecutan en un tiempo pre­de­te­r­mi­na­do. La co­m­bi­na­ción de un filtro con una acción es conocida bajo el nombre de "cárcel" (del inglés Jail). Fail2ban puede programar estas "cárceles" para cualquier software que cree archivos de registro.  Debido a que Fail2ban es un framework de código abierto con licencia GPL2, su uso y expansión no tienen ningún coste.

Fail2ban: in­s­ta­la­ción y co­n­fi­gu­ra­ción

  1. Para iniciar la in­s­ta­la­ción de Fail2ban, deberás in­tro­du­cir el siguiente comando:

    sudo apt-get install fail2ban

  2. Una vez fi­na­li­za­da la in­s­ta­la­ción, podrás encontrar el framework en /etc/fail2ban. Por seguridad, el archivo de co­n­fi­gu­ra­ción jail.conf deberá ser copiado lo­ca­l­me­n­te como jail.local, para proteger la co­n­fi­gu­ra­ción cuando se realicen ac­tua­li­za­cio­nes. Esto se consigue in­tro­du­cie­n­do:

    cd/etc/fail2ban
    sudo cp jail.conf jail.loca

  3. Ahora podrás iniciar Fail2ban con el comando:

    sudo service fail2ban start

  4. En los archivos de co­n­fi­gu­ra­ción es posible activar, des­ac­ti­var o añadir “cárceles”, así como definir sus pa­rá­me­tros y co­n­fi­gu­ra­ción. Los si­guie­n­tes comandos definen acciones de  gestión:

    enabled: activar (true) o des­ac­ti­var (false) una cárcel
    filter: ombre de filtro ubicado en el di­re­c­to­rio /etc/fail2ban/filter.d
    port: tipo de puerto (por ejemplo SSH, HTTP, HTTPS)
    logpath: ruta para el archivo de acceso
    maxretry: cantidad máxima de intentos de registro fallidos
    findtime: lapso de tiempo para buscar IP anormales (en segundos)
    bandtime: indica el tiempo durante el cual la IP va a estar bloqueada (-1: pe­r­ma­ne­n­te)

  5. El siguiente paso, una vez rea­li­za­dos los cambios, será reiniciar Fail2ban:

    sudo service fail2ban reload

  6. Los re­su­l­ta­dos de la eva­lua­ción serán al­ma­ce­na­dos en un archivo de registro separado, que puede ser en­co­n­tra­do con el siguiente comando:

    tail -100f /var/log/fail2ban.log

  7. Para finalizar el asistente, solo es necesario in­tro­du­cir:

    sudo service fail2ban stop

Fail2ban: efectivo contra scripts y bots

Debido a que Fail2ban puede ser utilizado en cualquier sistema donde los archivos de registro son leídos uti­li­za­n­do filtros, la gama de opciones de apli­ca­ción de este framework pre­ve­n­ti­vo resulta altamente amplia. Un ejemplo muy conocido es el plugin de WordPress Antispam Bee, que se encarga de ide­n­ti­fi­car spam en los co­me­n­ta­rios de los blogs de WordPress. Este permite, por ejemplo, marcar una opción en la que el spam re­co­no­ci­do no es borrado au­to­má­ti­ca­me­n­te, sino que es vi­sua­li­za­do con el código de estado 403. La dirección IP, el co­me­n­ta­rio y la secuencia de error también apa­re­ce­rán en el archivo de registro de WordPress (access.log). Con la ayuda de una "cárcel", que se encargará de explorar las entradas de los registros para encontrar códigos de error, es posible in­te­r­ce­p­tar el spam desde el servidor.  Fail2ban protege también de apli­ca­cio­nes y registros no au­to­ri­za­dos. Como extensión, también es posible generar un código de estado 403 como respuesta a un intento fallido de acceso. Es común que algunos bots y scripts in­te­rru­m­pan sus acciones como co­n­se­cue­n­cia de la aparición de este mensaje. La extensión también permite bloquear estos registros. Visita este artículo para mayor in­fo­r­ma­ción sobre la cla­si­fi­ca­ción de este y otros códigos de estado HTTP.

Fail2ban: un framework de seguridad altamente flexible

Fail2ban es una solución flexible y eficaz para prevenir acciones de bots, scripts u otro tipo de ataques in­fo­r­má­ti­cos a un servidor. Este framework hace posible el se­gui­mie­n­to de archivos de registro con patrones so­s­pe­cho­sos y permite bloquear o de­s­blo­quear sus di­re­c­cio­nes IP temporal o in­de­fi­ni­da­me­n­te. El usuario es libre a la hora de de­te­r­mi­nar aquellos aspectos que deben ser co­n­tro­la­dos, así como los pa­rá­me­tros exactos que se aplicarán durante la búsqueda.

Co­n­fi­gu­ra­n­do Fail2ban de manera adecuada se co­m­ple­me­n­tan en gran medida los esfuerzos de seguridad ne­ce­sa­rios para la pro­te­c­ción de la in­fo­r­ma­ción al­ma­ce­na­da en un servidor. Sin embargo, no su­s­ti­tui­rá las garantías ofrecidas por: programas de seguridad es­pe­cia­li­za­dos, copias de seguridad pe­rió­di­cas, pro­te­c­ción de datos con co­n­tra­se­ñas o en­cri­p­ta­ción de la in­fo­r­ma­ción. Combinar las funciones de los co­m­po­ne­n­tes in­di­vi­dua­les en una es­tra­te­gia de pro­te­c­ción global, resultará en una pro­te­c­ción integral capaz de resistir los ataques más fre­cue­n­tes, así como los más fuertes.

Ir al menú principal