sshguard

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Sshguard and the translation is 100% complete.

Other languages:
English • ‎español • ‎italiano • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

Warning: Display title "sshguard" overrides earlier display title "Sshguard".

Resources

sshguard es un sistema de prevención de intrusiones que analiza los registros del servidor, determina la actividad maliciosa y utiliza el cortafuegos del sistema para bloquear las direcciones IP de las conexiones maliciosas. sshguard está escrito en C, así que no supone una carga para el sistema.

Cómo funciona

sshguard es un demonio sencillo que hace un seguimiento continuo de uno o más ficheros de registro. Analiza los eventos del registro que los demonios envían en caso de intentos de conexión fallidos y entonces bloquea cualquier intento de esas conexiones mediante la actualización del cortafuegos del sistema.

A diferencia de lo que su nombre indica, sshguard no solamente analiza los registros de SSH. También es compatible con muchos sistemas de correo, así como unos pocos FTP. Una lista completa de los servicios soportados se puede encontrar en el sitio web sshguard.net.

Instalación

Emerge

Instale app-admin/sshguard:

root #emerge --ask app-admin/sshguard

Asegúrese también de que está instalado el paquete net-firewall/iptables y que el mismo se utiliza como el cortafuegos del sistema. Al momento de escribir (este artículo), sshguard todavía no soporta net-firewall/nftables.

root #emerge --ask net-firewall/iptables

También se puede encontrar más información sobre el uso y configuración de IPtables en el artículo IPtables.

Configuración

Preparar el cortafuegos

Cuando sshguard bloquea a cualquier usuario malintencionado (mediante el bloqueo de sus direcciones IP), utilizará la cadena sshguard.

Por tanto, prepare la cadena, y asegúrese también de que dicha cadena actúa cuando se detectan nuevas conexiones entrantes:

root #iptables -N sshguard
root #iptables -A INPUT -j sshguard

Supervisar los ficheros de registro

La idea básica detrás de sshguard es que el administrador analice el fichero(s) de registro (que elija) —dado que no hay ningún fichero de configuración nativo de sshguard— para verlo(s) como opciones de la aplicación.

En Gentoo, las opciones de sshguard se pueden afinar mejor en el fichero /etc/sshguard.conf:

ARCHIVO /etc/sshguard.confConfigurar sshguard para que lea /var/log/messages y /var/log/auth.log
# Ruta completa la ejecutable del backend (requerido, no tiene valor por defecto)
BACKEND="/usr/libexec/sshg-fw-iptables" 

# Lista separada por espacios de ficheros de registro que se deben monitorizar. (opcional, no tiene valor por defecto)
FILES="/var/log/messages /var/log/auth.log" 

# Cuantos intentos problemáticos disparan un bloqueo
THRESHOLD=10
# Los bloqueos se mantienen al menos durante 24 horas (60480 segundos)
BLOCKTIME=60480
# Registrar las direcciones IP durante 24 horas (60480 segundos)
DETECTION_TIME=60480

# Tamaño de la subred IPv6 a bloquear. El valor por defecto es una sola dirección en notación CIDR. (opcioanl, el valor por defecto 128)
IPV6_SUBNET=64
# Tamaño de la subred IPv4 a bloquear. El valor por defecto es una sola dirección en notación CIDR. (opcioanl, el valor por defecto 32)
IPV4_SUBNET=24

# Ruta completa al fichero PID file (opcional, no tiene valor por defecto)
PID_FILE=/run/sshguard.pid

Asegúrese de que los ficheros de registro que utiliza el usuario sshguard le son accesibles en tiempo de ejecución.

Servicios

OpenRC

Para que sshguard se inicie de forma predeterminada, hay que añadirlo al nivel de ejecución default y, luego, iniciarlo:

root #rc-update add sshguard default
root #rc-service sshguard start

Bloquear equipos

Con la opción de bloquear equipos, después de una serie de abusos, se bloquea la dirección IP del atacante o una subred IP. Esta prohibición se cargará en cada inicio y se extenderá con nuevas entradas durante la operación. sshguard inserta una nueva dirección una vez se haya superado el límite de abusos.

No se planifica nunca la liberación (permitir) de Las direcciones bloqueadas.

Para habilitar el bloqueo, crear el directorio y fichero apropiados:

root #mkdir -p /var/lib/sshguard
root #touch /var/lib/sshguard/blacklist.db

Mientras que definir una lista negra es importante para excluir redes IP y anfitriones de confianza en una lista blanca.

Para habilitar la lista blanca, crear el directorio y ficheros adecuado:

root #mkdir -p /etc/sshguard
root #touch /etc/sshguard/whitelist

La lista blanca debe incluir la interfaz de bucle y debe tener al menos una red IP de confianza, por ejemplo 192.0.2.0/24.

ARCHIVO /etc/sshguard/whitelistMarcar como buenas las redes en las que confiamos
127.0.0.0/8
::1/128
192.0.2.0/24
Nota
Se debe ajustar la entrada 192.0.2.0/24 a sus necesidades.

Añadir el fichero BLACKLIST_FILE y WHITELIST_FILE a la configuración:

ARCHIVO /etc/conf.d/sshguardConfigurar sshguard para marcar en la lista negra a los abusones
BACKEND="/usr/libexec/sshg-fw-iptables"
FILES="/var/log/auth.log"

THRESHOLD=10
BLOCK_TIME=43200
DETECTION_TIME=604800

IPV4_SUBNET=24
IPV6_SUBNET=64

PID_FILE=/run/sshguard.pid

# Añadir las siguientes líneas
BLACKLIST_FILE=10:/var/lib/sshguard/blacklist.db
WHITELIST_FILE=/etc/sshguard/whitelist

Reiniciar el demonio sshguard para que los cambios tengan efecto:

root #/etc/init.d/sshguard restart

Resolución de problemas

¡El fichero '/var/log/auth.log' desapareció mientras se estaba añadiendo!

Cuando arranca, sshguard informa del siguiente error:

CÓDIGO Menaje de error cuando se intenta añadir un monitor para /var/log/auth.log
Sep 23 03:39:11 foo.bar.com sshguard[64933]: File '/var/log/auth.log' vanished while adding!

Este error (la ruta al fichero puede variar) ocurre cuando el fichero destino no está disponible en el sistema. Asegúrese de que se ha creado o actualice la configuración de sshguard para que no lo incluya en la monitorización.

En un sistema syslog-ng con OpenRC, suele ser suficiente añadir lo siguiente a syslog-ng.conf:

ARCHIVO /etc/syslog-ng/syslog-ng.confCrear auth.log file
log { source(src); destination(messages); };
log { source(src); destination(console_all); };
 
destination authlog {file("/var/log/auth.log"); };
filter f_auth { facility(auth); };
filter f_authpriv { facility(auth, authpriv); };
log { source(src);  filter(f_authpriv);  destination(authlog);  };

Recargar la configuración para que los cambios tengan efecto:

root #rc-service syslog-ng reload

Véase también

  • Iptables - Un artículo acerca de cómo instalar y configurar el cortafuegos iptables en Gentoo.

Recursos externos

La documentación de sshguard proporciona toda la información necesaria para afinar aún más la aplicación.