Una manera fácil de proteger tu Mikrotik de los ataques

Quiero compartir con la comunidad una manera simple y funcional de cómo usar Mikrotik para proteger mi red y los servicios que "vigilan" debido a ataques externos. Es decir, con solo tres reglas, organice un honeypot en Mikrotik.

Entonces, imaginemos que tenemos una pequeña oficina, 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 en la interfaz externa a otro. Pero esto no es por mucho tiempo, después de un par de días, el registro de auditoría del servidor terminal comenzará a mostrar varias autorizaciones fallidas por segundo de clientes desconocidos.

Otra situación, tienes un asterisco oculto detrás de Mikrotik, por supuesto, no en el puerto udp 5060, y después de un par de días también comienza a adivinar la contraseña ... sí, lo sé, fail2ban es todo, pero todavía tengo que resoplarlo ... por ejemplo, recientemente lo levanté a ubuntu El 18 de abril, me sorprendió descubrir que fail2ban no contiene la configuración real para el asterisco del mismo cuadro de la misma distribución de ubuntu ... pero Google no puede buscar en Google configuraciones rápidas de "recetas" preparadas, el número de lanzamientos crece con los años y los artículos con " recetas "para las versiones antiguas ya no funcionan, pero casi no hay nuevas ... Pero algo me estoy desviando ...

Entonces, lo que es honeypot en pocas palabras: es un señuelo, en nuestro caso, un 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. Todas.

/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 del invitado a la lista Honeypot Hacker (los puertos para ssh, rdp y winbox se deshabilitan por adelantado o se cambian a otros). El segundo hace lo mismo en el popular UDP 5060.

La tercera regla en la etapa previa al enrutamiento deja caer paquetes de "invitados" cuya dirección srs entró en el "Honeypot Hacker".

Después de dos semanas de trabajo en mi hogar Mikrotik, la lista de Honeypot Hacker incluía alrededor de mil quinientas direcciones IP de admiradores amigables con las ubres de los recursos de mi red (telefonía doméstica, correo, nextcloud, rdp). Los ataques de fuerza bruta se detuvieron, la felicidad se produjo.

En el trabajo, no todo resultó ser tan simple, continúan rompiendo el servidor rdp con contraseñas de fuerza bruta.

Aparentemente, el escáner determinó el número de puerto mucho antes de que se encendiera el honeypot, y durante la cuarentena no es tan fácil reconfigurar a más de 100 usuarios, de los cuales el 20% tiene más de 65 años. En el caso de que el puerto no se pueda cambiar, hay una pequeña receta de trabajo. Conocí algo similar en Internet, pero hay un ajuste final y preciso:

Reglas para configurar la anulación de puertos
 /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=2m 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=2m 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=2m 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=2m 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=2m 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 solo 12 nuevas "solicitudes" al servidor RDP. Un intento de inicio de sesión es de 1 a 4 "solicitudes". En el 12º "pedido" - un candado por 15 minutos. En mi caso, los atacantes no dejaron de piratear el servidor, se adaptaron a los temporizadores y ahora lo hacen muy lentamente, esta velocidad de selección reduce la eficiencia del ataque a cero. Los empleados de la empresa prácticamente no experimentan ningún inconveniente en el trabajo realizado.

Otro pequeño truco
5, , .

/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

8 IP . !

Bueno, además de lo anterior, agregaré un enlace al artículo de Wiki, con la configuración de trabajo para proteger a 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 de honeypot descritas anteriormente, y las complementa 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.

All Articles