Los servidores no existen de manera aislada y la mayoria son instalados y personalizados con sólo la configuración más básica de SSH pueden ser vulnerables a ataques de fuerza bruta.
La herramineta fail2ban proporciona una manera de proteger automáticamente el servidor de sospechas de ataques y software malicioso.
El programa funciona mediante el escaneo de los archivos de registro y ayuda a reaccionar ante acciones tales como los intentos de conexión fallidos repetidos.
Comenzaremos instalando fail2ban
Debido a que fail2ban no está disponible en CentOS, debemos comenzar por descargar el repositorio:
rpm- Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Luego instalamos fail2ban desde la linea de comandos con el siguiente comando
yum install fail2ban
Copiamos el archivo de configuración
El archivo de configuración fail2ban por defecto es la ubicación en /etc/fail2ban/jail.conf. El trabajo de configuración no se debe hacer en ese archivo, sin embargo, y en su lugar se debe hacer una copia local del mismo, para tener de respaldo.
cp / etc/fail2ban/jail.conf / etc/fail2ban/jail.local
Una vez copiado el archivo, podemos hacer todos los cambios en el nuevo archivo jail.local . Muchos de los posibles servicios que pueden necesitar protección se encuentran en estel archivo ya preconfigurados. Cada uno se encuentra en su propia sección, configurado y apagado.
Configure los valores predeterminados en Jail.Local
Abra el nuevo archivo de configuración de la fail2ban:
vi / etc/fail2ban/jail.local
La primera sección de configuraciones por defecto cubre las reglas básicas que fail2ban seguirá. Si desea configurar la protección más personalizada de su servidor privado virtual, puede personalizar los detalles de cada sección.
Se puede ver la sección default algunos detalles como los siguientes.
[ DEFAULT ] # " Ignoreip " puede ser una dirección IP , una máscara CIDR o un host DNS. Fail2ban no lo hará # Prohíben una serie que coincide con una dirección en esta lista. Varias direcciones pueden ser # Define mediante separador de espacio. ignoreip = 127.0.0.1 # " Bantime " es el número de segundos que un host está prohibido de acceder o baneado. bantime = 3600 # El tiempo en segundos que un host sera bloqueado si hace un numero maximo de consultas fallidas findtime = 600 # " Maxretry " es el número de fallos permitidos antes de ser baneado. maxretry = 3
Escriba su dirección IP en la línea de personal ignoreip. Puede separar cada dirección con un espacio. IgnoreIP le lista blanca determinadas direcciones IP y asegúrese de que no queden al margen de su VPS . Incluyendo su dirección garantizará que usted no prohíben accidentalmente a sí mismo de su propio servidor privado virtual.
El siguiente paso es decidir sobre un tiempo de baneo, el número de segundos que un host se bloquea desde el servidor si se encuentran en violación de cualquiera de las reglas. Esto es especialmente útil en el caso de los robots , que una vez prohibido el aceso, simplemente pasara al siguiente objetivo. El valor predeterminado es de 10 minutos, puede elevar esto a una hora, si quieres.
Maxretry es la cantidad de intentos de acceso incorrectos que un host pueda tener antes de que sean prohibidos sus intentos de acceso para la duración del tiempo de prohibición.
Findtime refiere a la cantidad de tiempo que un host tiene que entrar el valor predeterminado es de 10 minutos , lo que significa que si se hace un intento acceso de un host a un servidor y falla, para iniciar la sesión en más de la cantidad maxretry de 3 veces en los 10 minutos designados, su ip se bloqueara y no podra acceder.
Configurar la sección ssh - iptables en Jail.Local
La sección de detalles de SSH es sólo un poco más abajo en la configuración , y ya está instalada y activada. Aunque usted no debe ser obligado a hacer para hacer cualquier cambio dentro de esta sección , usted puede encontrar los detalles acerca de cada línea de abajo .
[ ssh - iptables ] enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com] logpath = /var/log/secure maxretry = 5
Enabled se refiere simplemente al hecho de que la protección de SSH está encendido. Puede apagarlo con la palabra false.
Filter, que utiliza de forma predeterminada para sshd, se refiere al archivo de configuración que contiene las reglas que fail2banuses para encontrar coincidencias. El nombre es una versión abreviada de la extensión de archivo. Por ejemplo, se refiere a la sshd /etc/fail2ban/filter.d/sshd.conf
Action, describe los pasos que se llevarán fail2ban para prohibir una dirección IP coincidente. Al igual que la entrada de filtro, cada acción se refiere a un archivo dentro del directorio action.d. La acción de prohibición por defecto, iptable se puede encontrar en /etc/fail2ban/action.d/iptables.conf
En los iptables, puede personalizar aun mas fail2ban. Por ejemplo, si está utilizando un puerto no estándar , puede cambiar el número de puerto dentro de los corchetes a la altura, haciendo que la línea de mira de la misma familia :
por ejemplo . iptables [name = SSH, port = 30000, protocol = tcp ]
Usted puede cambiar el protocolo de TCP a UDP en esta línea , así , dependiendo de cuál de ellos desea fail2ban supervisar.
Si tiene un servidor de correo configurada en el servidor privado virtual, fail2ban puede enviarle por correo electrónico cuando se prohíbe una dirección IP. En el caso de omisión, el sendmail- whois se refiere a las acciones ubicadas en / etc/fail2ban/action.d/sendmail-whois.conf .
ruta de registro se refiere a la ubicación del registro que fail2ban hará un seguimiento .
La línea de reintento máximo dentro de la sección SSH tiene la misma definición que la opción por defecto . Sin embargo , si se ha habilitado un servicio y quiere tener valores específicos para cada una de ellas , se puede establecer el nuevo importe máximo de reintentos para SSH aquí .
Reiniciar fail2ban
Después de realizar cualquier cambio en la configuración fail2ban , siempre asegúrese de reiniciar fail2ban:
servicio sudo restart fail2ban
Podras ver las reglas que fail2ban pone en efecto dentro de la tabla IP:
iptables- L