GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo proteger su servidor con badIPs.com y reportar IPs con Fail2ban en Debian

Este tutorial documenta el proceso de uso del rastreador de abuso de badips junto con Fail2ban para proteger su servidor o computadora. Lo probé en un sistema Debian 8 Jessie y Debian 7 Wheezy.

¿Qué son las direcciones IP incorrectas?

BadIps es una lista de direcciones IP que se notifican como malas en combinación con fail2ban.

Este tutorial contiene dos partes, la primera tratará sobre el uso de la lista y la segunda sobre la inyección de datos.


Usar la lista de badIPs

Defina su nivel y categoría de seguridad

Puede obtener la lista de direcciones IP simplemente usando la API REST.

Cuando OBTIENES esta URL: https://www.badips.com/get/categories
Verás todas las diferentes categorías que están presentes en el servicio.

  • Segundo paso, determina qué puntuación se ha hecho para ti.
    Aquí una cita de badips que debería ayudar (personalmente tomé la puntuación =3):
  • Si desea recopilar una estadística o utilizar los datos para algún experimento, etc., puede comenzar con una puntuación de 0.
  • Si desea proteger su servidor privado o sitio web con un cortafuegos, opte por puntajes a partir de 2. Tal vez combinados con sus propios resultados, incluso si no tienen un puntaje superior a 0 o 1.
  • Si está a punto de proteger una tienda web o un servidor de comercio electrónico rentable con mucho tráfico, le recomendamos que utilice valores de 3 o 4. Tal vez también se combinen con sus propios resultados (clave/sincronización).
  • Si eres paranoico, toma 5.

Así que ahora que obtienes tus dos variables, hagamos tu enlace concatenándolas y tomemos tu enlace.

http://www.badips.com/get/list/{{SERVICE}}/{{LEVEL}}

Nota:Al igual que yo, puedes tomar todos los servicios. Cambie el nombre del servicio a "cualquiera" en este caso.

La URL resultante es:

https://www.badips.com/get/list/any/3

Vamos a crear el script

Muy bien, cuando haya terminado, crearemos un script simple.

  1. Ponga nuestra lista en un archivo temporal.
  2. (solo una vez) crea una cadena en iptables.
  3. Eliminar todos los datos vinculados a nuestra cadena (entradas antiguas).
  4. Enlazaremos cada IP a nuestra nueva cadena.
  5. Cuando termine, bloquee todas las ENTRADAS / SALIDAS / ADELANTE que estén vinculadas a nuestra cadena.
  6. Eliminar nuestro archivo temporal.

Ahora crearemos el script para eso:

cd /home/<user>/
vi myBlacklist.sh

Introduzca el siguiente contenido en ese archivo.

#!/bin/sh
# based on this version http://www.timokorthals.de/?p=334
# adapted by Stéphane T.

_ipt=/sbin/iptables    # Location of iptables (might be correct)
_input=badips.db       # Name of database (will be downloaded with this name)
_pub_if=eth0           # Device which is connected to the internet (ex. $ifconfig for that)
_droplist=droplist     # Name of chain in iptables (Only change this if you have already a chain with this name)
_level=3               # Blog level: not so bad/false report (0) over confirmed bad (3) to quite aggressive (5) (see www.badips.com for that)
_service=any           # Logged service (see www.badips.com for that)

# Get the bad IPs
wget -qO- http://www.badips.com/get/list/${_service}/$_level > $_input || { echo "$0: Unable to download ip list."; exit 1; }

### Setup our black list ###
# First flush it
$_ipt --flush $_droplist

# Create a new chain
# Decomment the next line on the first run
# $_ipt -N $_droplist

# Filter out comments and blank lines
# store each ip in $ip
for ip in `cat $_input`
do
# Append everything to $_droplist
$_ipt -A $_droplist -i ${_pub_if} -s $ip -j LOG --log-prefix "Drop Bad IP List "
$_ipt -A $_droplist -i ${_pub_if} -s $ip -j DROP
done

# Finally, insert or append our black list
$_ipt -I INPUT -j $_droplist
$_ipt -I OUTPUT -j $_droplist
$_ipt -I FORWARD -j $_droplist

# Delete your temp file
rm $_input
exit 0

Cuando haya terminado, debe crear un cronjob que actualizará nuestra lista negra.

Para esto, utilicé crontab y ejecuto el script todos los días a las 11:30 p. m. (justo antes de mi copia de seguridad retrasada).

crontab -e
23 30 * * * /home/<user>/myBlacklist.sh #Block BAD IPS

No olvides modificar tu secuencia de comandos:

chmod + x myBlacklist.sh

Ahora que está hecho, su servidor/computadora debería estar un poco más seguro.

También puede ejecutar el script manualmente de esta manera:

cd /home/<user>/
./myBlacklist.sh

Debería llevar algo de tiempo... así que no rompas el guión. De hecho, su valor radica en las últimas líneas.

Reportar direcciones IP a badIPs con Fail2ban

En la segunda parte de este tutorial, le mostraré cómo reportar las direcciones IP bd al sitio web badips.com usando Fail2ban.

Fail2ban>=0.8.12

El reporte se hace con Fail2ban. Dependiendo de su versión de Fail2ban, debe usar la primera o la segunda sección de este capítulo. Si tiene fail2ban en la versión 0.8.12.

Si tiene fail2ban versión 0.8.12 o posterior.

fail2ban-server --version

En cada categoría de la que informará, simplemente agregue una acción.

[ssh]
enabled = true
action = iptables-multiport
badips[category=ssh]
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry= 6

Como puede ver, la categoría es SSH, eche un vistazo aquí (https://www.badips.com/get/categories) para encontrar la categoría correcta.

Fail2ban < 0.8.12

Si la versión es menos reciente que la 0.8.12, tendrá que crear una acción. Puede descargarlo aquí: https://www.badips.com/asset/fail2ban/badips.conf.

wget https://www.badips.com/asset/fail2ban/badips.conf -O /etc/fail2ban/action.d/badips.conf

Con el badips.conf de arriba, puede activar por categoría como se indicó anteriormente o puede habilitarlo globalmente:

cd /etc/fail2ban/
vi jail.conf
[DEFAULT]

...

banaction = iptables-multiport
badips

Ahora reinicie fail2ban; debería comenzar a generar informes a partir de ahora.

service fail2ban restart

Estadísticas de tus informes de IP


Último paso:no es realmente útil... Puede crear una clave.
Esta es útil si desea ver sus datos.
Simplemente copie/pegue esto y aparecerá una respuesta JSON en su consola.

wget https://www.badips.com/get/key -qO -
{
  "err":"",
  "suc":"new key 5f72253b673eb49fc64dd34439531b5cca05327f has been set.",
  "key":"5f72253b673eb49fc64dd34439531b5cca05327f"
}

Luego vaya al sitio web de badips, ingrese su "clave" y haga clic en "estadísticas".

Aquí vamos... todas tus estadísticas por categoría.


Debian
  1. Aumente su seguridad IPv4 con Fail2Ban y Tinyhoneypot en Debian Jessie

  2. Cómo instalar el servidor FTP vsftpd y asegurarlo con TLS en Debian 11

  3. Cómo instalar Spamassassin con Postfix y Dovecot en Ubuntu/Debian Server

  4. Cómo configurar un cortafuegos con CSF en Debian 9

  5. Cómo proteger Apache y SSH con Fail2Ban en CentOS 8

Cómo configurar el servidor y el cliente NTP en Debian 11

Cómo configurar LAMP con Debian 11

Cómo configurar bind con Debian 11

Cómo configurar el servidor Samba con Debian 11

Cómo instalar Nginx con PHP-FPM en Debian 11

Cómo instalar y habilitar el servidor SSH en Debian 10