sshguard

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Sshguard and the translation is 69% complete.
Outdated translations are marked like this.

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

Additional software

Depending on the init system and the desired firewall backend to be used by sshguard, additional software may be required to be emerged in order for sshguard to block malicious actors.

More information on various supported backends can be found by reading the setup manpage:

root #man 7 sshguard-setup

iptables

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.

nftables

When nftables are being used as the system firewall:

root #emerge --ask net-firewall/nftables

Configuración

iptables backend

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

Then verify that the appropriate path to the iptables backend library is set in /etc/sshguard.conf:

ARCHIVO /etc/sshguard.confSet iptables library for BACKEND
# Full path to backend executable (required, no default)
BACKEND="/usr/libexec/sshg-fw-iptables"

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:

{{FileBox|filename=/etc/sshguard.conf|title=Configurar sshguard para que lea /var/log/messages y /var/log/auth.log|lang=bash|1=

  1. Ruta completa la ejecutable del backend (requerido, no tiene valor por defecto)

BACKEND="/usr/libexec/sshg-fw-iptables"

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

systemd

Use systemd's conventional way to enable it, and then start it:

root #systemctl enable sshguard
root #systemctl restart sshguard

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:

{{FileBox|filename=/etc/conf.d/sshguard|title=Configurar sshguard para marcar en la lista negra a los abusones|lang=bash|1= BACKEND="/usr/libexec/sshg-fw-iptables" FILES="/var/log/auth.log"

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

Recursos externos

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