Como instalar y configurar BFD (Brute Force Detector)

BFD (Brute Force Detection), es un script en shell que parsea los logs de los diferentes servicios (ssh, ftp, apache, exim…) y chequea en busca de fallos repetitivos de autenticación, exceso de conexiones desde determinadas IPs, etc.

Combinado con APF (click aquí para acceder a una guía de instalación y configuración) forman un sistema de protección realmente bueno para nuestro sistema, ya que BFD le indicará a APF que IPs debe bloquear para que su acceso al servidor sea denegado (lo explicamos ahora):

Instalación de BFD:

La instalación es extremadamente sencilla:

cd /root/descargas
wget http://www.rfxnetworks.com/downloads/bfd-current.tar.gz
tar -xvzf bfd-current.tar.gz
cd bfd-0.7
./install.sh

Una vez hecho esto, nos indicará las rutas a ejecutables y ficheros de configuración:

.: BFD installed
Install path: /usr/local/bfd
Config path: /usr/local/bfd/conf.bfd
Executable path: /usr/local/sbin/bfd

Configuración de BFD:

Editamos el fichero de configuración con nuestro editor favorito:

vi /usr/local/bfd/conf.bfd

Activamos las alertas de ataque (cambiamos de 0 a 1), y configuramos que nos envíe un email por cada una:

ALERT_USR=”1″
EMAIL_USR=”tucuenta@tudominio.com”

Para evitar que el sitema bloquee nuestra IP local, la añadimos al fichero que guarda las IPs a ignorar en el rastreo, añadiremos p.ej. 192.168.1.1 en:

vi /usr/local/bfd/ignore.hosts

Ejecutamos el programa:

/usr/local/sbin/bfd -s

BFD chequeará los logs cada X tiempo, el que le indiquemos en su cron, por defecto cada 10 minutos:

[root@localhost ~]# cat /etc/cron.d/bfd
MAILTO=
SHELL=/bin/sh
#*/5 * * * * root /usr/local/sbin/bfd -q

Una vez comprendido esto, podéis personalizar las reglas que vienen por defecto para cada servicio, se encuentra en la siguiente ubicación:

/usr/local/bfd/rules

Con lo que más podéis jugar es con el valor “TRIG”, que indica el nº de conexiones o intentos permitidos para cada servicio, configuradlo en función de las necesidades de cada servicio:

TRIG=”45″

Con un poco más de paciencia, y estudiando cada regla puede personalizarse completamente, no obstante la seguridad de nuestro servidor, teniendo BFD + APF ha mejorado notablemente.

Fuente: rm-rf.es

Instalar APF (Advanced Policy Firewall) en sistema Unix

En esta entrada vamos a proteger nuestro sistema Unix con APF (Advanced Policy Firewall).

APF es un sistema de Firewall basado en IPtables, con la peculiaridad de que su manejo e instalación es extremadamente sencilla. Próximamente explicaremos también como instalar BFD, un detector de ataques de fuerza bruta, que unido a APF forman un excelente nivel de seguridad en el servidor, pues trabajan de forma conjunta.

Comenzamos con la instalación de APF:

cd /root/descargas (o la carpeta en la que guardes tus sources)
wget http://rfxnetworks.com/downloads/apf-current.tar.gz
tar -zxf apf-current.tar.gz
cd apf-0.*
./install.sh

Una vez instalado nos indicará las distintas rutas de ficheros de configuración y ejecutables:

Installation Details:
Install path: /etc/apf/
Config path: /etc/apf/conf.apf
Executable path: /usr/local/sbin/apf
AntiDos install path: /etc/apf/ad/
AntiDos config path: /etc/apf/ad/conf.antidos
DShield Client Parser: /etc/apf/extras/dshield/

Comenzamos a configurar APF, abirmos el fichero de configuración con nuestro editor favorito, estas son las opciones principales a configurar, recordad leer los comentarios en el fichero de configuración y en los README:

vi /etc/apf/conf.apf

Desactivamos/activamos el cron que desactiva el firewall cada 5 minutos, es útil activarlo mientras estemos de pruebas, pero aseguraos de dejarlo en 0 cuando el server entre en producción:

# Set firewall cronjob (devel mode)
# 1 = enabled / 0 = disabled
DEVEL_MODE=”1″

Interfaces de red que APF va a rastrear su tráfico, ponemos la interfaz que salga a Internet, en este caso es la eth1:

# Untrusted Network interface(s); all traffic on defined interface will be
# subject to all firewall rules. This should be your internet exposed
# interfaces. Only one interface is accepted for each value.
# NOTE: The interfacing structure is being worked towards support of MASQ/NAT
IFACE_IN=”eth1″
IFACE_OUT=”eth1″

Por otro lado, podemos configurar que ciertas interfaces no sean rastreadas por el firewall, pueden ser interfaces de tráfico local:

# Trusted Network interface(s); all traffic on defined interface(s) will by-pass
# ALL firewall rules, format is white space or comma seperated list.
IFACE_TRUSTED=”eth0″

Y para terminar la configuración básica, la parte más importante, la sección de puertos, configurable dependiendo de los puertos abiertos necesarios para cada servidor:

Puertos de entrada TCP permitidos:

# Common ingress (inbound) TCP ports
IG_TCP_CPORTS=”21,25,80,110,443,465″

Puertos de entrada UDP permitidos:

# Common ingress (inbound) UDP ports
IG_UDP_CPORTS=””

Puertos de entrada ICMP permitidos:

# Common ICMP (inbound) types
# ‘internals/icmp.types’ for type definition; ‘all’ is wildcard for any
IG_ICMP_TYPES=”3,5,11″

Después están las mismas opciones, pero para salida, configurar según los requerimientos de cada uno. Y recordad revisar todas las demás opciones para sacar el mayor partido a este excelente firewall.

Otros dos ficheros importantes a tener en cuenta son :

/etc/apf/deny_host.rules
/etc/apf/allow_host.rules

En estos ficheros podemos incluir ips, rangos y reglas a las que denegar acceso (deny_host.rules) o permitir(allow_host.rules) al servidor. Finalmente arrancamos APF:

/usr/local/sbin/apf -s

Fuente: rm-rf.es

Bloquear el tráfico con IPTABLES desde/hacia una dirección IP

Una entrada rápida, sencilla y útil para usuarios principiantes de Linux, la forma más rápida de bloquear el acceso a una determinada IP o rango a un sistema es mediante IPTABLES, el comando a ejecutar es el siguiente:

Bloquear tráfico de entrada a una IP con IPTABLES:

iptables -I INPUT -s 12.34.56.78 -j DROP

Bloquear tráfico de salida a una IP con IPTABLES:

iptables -I OUTPUT -s 12.34.56.78 -j DROP