Una forma sencilla de proteger tu Mikrotik de ataques

Quiero compartir con la comunidad una forma sencilla y funcional de cómo utilizar Mikrotik para proteger su red y los servicios que "se asoman" detrás de ella contra ataques externos. Es decir, sólo tres reglas para organizar un honeypot en Mikrotik.

Entonces, imaginemos que tenemos una oficina pequeña, con una IP externa detrás de la cual hay un servidor RDP para que los empleados trabajen de forma remota. La primera regla es, por supuesto, cambiar el puerto 3389 de la interfaz externa por otro. Pero esto no durará mucho; después de un par de días, el registro de auditoría del servidor de terminal comenzará a mostrar varias autorizaciones fallidas por segundo de clientes desconocidos.

Otra situación, tienes un asterisco escondido detrás de Mikrotik, por supuesto no en el puerto 5060 udp, y después de un par de días también comienza la búsqueda de contraseña... sí, sí, lo sé, fail2ban es nuestro todo, pero todavía tenemos que trabaje en ello... por ejemplo, lo instalé recientemente en ubuntu 18.04 y me sorprendió descubrir que fail2ban no contiene la configuración actual para asterisco del mismo cuadro de la misma distribución de ubuntu... y busqué en Google configuraciones rápidas Las “recetas” ya preparadas ya no funcionan, el número de lanzamientos crece con los años, los artículos con “recetas” para versiones antiguas ya no funcionan y las nuevas casi nunca aparecen... Pero estoy divagando...

Entonces, ¿qué es un honeypot en pocas palabras? Es un honeypot, en nuestro caso, cualquier puerto popular en una IP externa, cualquier solicitud a este puerto desde un cliente externo envía la dirección src a la lista negra. Todo.

/ip firewall filter
add action=add-src-to-address-list address-list="Honeypot Hacker" 
    address-list-timeout=30d0h0m chain=input comment="block honeypot ssh rdp winbox" 
    connection-state=new dst-port=22,3389,8291 in-interface=
    ether4-wan protocol=tcp
add action=add-src-to-address-list address-list="Honeypot Hacker" 
    address-list-timeout=30d0h0m chain=input comment=
    "block honeypot asterisk" connection-state=new dst-port=5060 
    in-interface=ether4-wan protocol=udp 
/ip firewall raw
add action=drop chain=prerouting in-interface=ether4-wan src-address-list=
    "Honeypot Hacker"

La primera regla en los populares puertos TCP 22, 3389, 8291 de la interfaz externa ether4-wan envía la IP "invitada" a la lista "Honeypot Hacker" (los puertos para ssh, rdp y winbox se desactivan de antemano o se cambian por otros). El segundo hace lo mismo en el popular UDP 5060.

La tercera regla en la etapa previa al enrutamiento descarta paquetes de "invitados" cuya dirección srs está incluida en el "Honeypot Hacker".

Después de dos semanas de trabajo con mi Mikrotik doméstico, la lista de "Honeypot Hacker" incluía alrededor de mil quinientas direcciones IP de aquellos a quienes les gusta "mantener por la ubre" mis recursos de red (en casa tengo mi propia telefonía, correo, nextcloud, rdp). Los ataques de fuerza bruta se detuvieron y llegó la felicidad.

En el trabajo, no todo resultó ser tan simple, allí continúan rompiendo el servidor rdp mediante contraseñas por fuerza bruta.

Al parecer, el número de puerto fue determinado por el escáner mucho antes de que se activara el honeypot, y durante la cuarentena no es tan fácil reconfigurar a más de 100 usuarios, de los cuales el 20% tienen más de 65 años. En el caso de que no se pueda cambiar el puerto, existe una pequeña receta de trabajo. He visto algo similar en Internet, pero hay algunas adiciones y ajustes adicionales involucrados:

Reglas para configurar Port Knocking

 /ip firewall filter
add action=add-src-to-address-list address-list=rdp_blacklist 
    address-list-timeout=15m chain=forward comment=rdp_to_blacklist 
    connection-state=new dst-port=3389 protocol=tcp src-address-list=
    rdp_stage12
add action=add-src-to-address-list address-list=rdp_stage12 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage11
add action=add-src-to-address-list address-list=rdp_stage11 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage10
add action=add-src-to-address-list address-list=rdp_stage10 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage9
add action=add-src-to-address-list address-list=rdp_stage9 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage8
add action=add-src-to-address-list address-list=rdp_stage8 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage4
add action=add-src-to-address-list address-list=rdp_stage7 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage6
add action=add-src-to-address-list address-list=rdp_stage6 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage5
add action=add-src-to-address-list address-list=rdp_stage5 
    address-list-timeout=4m chain=forward connection-state=new dst-port=
    3389 protocol=tcp src-address-list=rdp_stage4
add action=add-src-to-address-list address-list=rdp_stage4 
    address-list-timeout=4m chain=forward connection-state=new dst-port=
    3389 protocol=tcp src-address-list=rdp_stage3
add action=add-src-to-address-list address-list=rdp_stage3 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage2
add action=add-src-to-address-list address-list=rdp_stage2 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage1
add action=add-src-to-address-list address-list=rdp_stage1 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp 
/ip firewall raw
add action=drop chain=prerouting in-interface=ether4-wan src-address-list=
rdp_blacklist

En 4 minutos, el cliente remoto puede realizar sólo 12 nuevas "solicitudes" al servidor RDP. Un intento de inicio de sesión es de 1 a 4 "solicitudes". En la duodécima “solicitud” - bloqueo durante 12 minutos. En mi caso, los atacantes no dejaron de piratear el servidor, se ajustaron a los temporizadores y ahora lo hacen muy lentamente, tal velocidad de selección reduce la efectividad del ataque a cero. Los empleados de la empresa prácticamente no experimentan ningún inconveniente en el trabajo debido a las medidas adoptadas.

Otro pequeño truco
Esta regla se activa según un horario a la 5 a.m. y se apaga a las XNUMX a.m., cuando las personas reales definitivamente están dormidas y los recolectores automáticos continúan despiertos.

/ip firewall filter 
add action=add-src-to-address-list address-list=rdp_blacklist 
    address-list-timeout=1w0d0h0m chain=forward comment=
    "night_rdp_blacklist" connection-state=new disabled=
    yes dst-port=3389 protocol=tcp src-address-list=rdp_stage8

Ya en la octava conexión, la IP del atacante está en la lista negra durante una semana. ¡Belleza!

Bueno, además de lo anterior, agregaré un enlace a un artículo Wiki con una configuración funcional para proteger Mikrotik de los escáneres de red. wiki.mikrotik.com/wiki/Drop_port_scanners

En mis dispositivos, esta configuración funciona junto con las reglas del honeypot descritas anteriormente, complementándolas bien.

UPD: Como se sugiere en los comentarios, la regla de caída de paquetes se ha movido a RAW para reducir la carga en el enrutador.

Fuente: habr.com

Añadir un comentario