PROTECCIÓN AVANZADA / SCRIPT AUTOMATIZADO SECURITY

Genera scripts de protección avanzada para reforzar la seguridad y endurecer MikroTik RouterOS.

GENERADOR DE SCRIPTS

Servicio de puerto Mikrotik

Servicio de puerto MikrotikDescription

API (8728)

Interfaz de programación de aplicaciones (API), un servicio que permite a los usuarios crear software o aplicaciones personalizadas que se comunican con el router, por ejemplo, para obtener información sobre él o incluso configurarlo. Utiliza el puerto 8728. Este puerto API suele ser objeto de ataques de fuerza bruta; se recomienda cambiarlo o deshabilitarlo cuando no se utilice.

Script
# API Port Enable
/ip service set api port=8728 address=0.0.0.0/0 disabled=no
# API Port Disable
/ip service set api port=8728 address=0.0.0.0/0 disabled=yes

API-SSL (8729)

Tiene la misma función que la API, solo que la API SSL es más segura porque cuenta con un certificado SSL. Esta API SSL se ejecuta en el puerto 8729. Puede cambiar el puerto o deshabilitarla cuando no la utilice.

Script
# API-SSL Port Enable
/ip service set api-ssl port=8729 address=0.0.0.0/0 disabled=no
# API-SSL Port Disable
/ip service set api-ssl port=8729 address=0.0.0.0/0 disabled=yes

FTP (21)

Mikrotik ofrece un servicio FTP estándar que utiliza los puertos 20 y 21. FTP se usa habitualmente para subir o descargar datos del router, como archivos de copia de seguridad. La autorización FTP requiere el usuario y la contraseña de la cuenta del router. Este puerto FTP suele ser objeto de ataques de fuerza bruta; se recomienda cambiar el puerto o deshabilitarlo cuando no se utilice.

Script
# FTP Port Enable
/ip service set ftp port=21 address=0.0.0.0/0 disabled=no
# FTP Port Disable
/ip service set ftp port=21 address=0.0.0.0/0 disabled=yes

SSH (22)

SSH es una forma segura de acceder a un router remoto mediante una consola. Es similar a Telnet, pero más segura, ya que los datos transmitidos por SSH están cifrados. MikroTik SSH utiliza por defecto el puerto 22. Este puerto suele ser objeto de ataques de fuerza bruta; se puede cambiar o deshabilitar cuando no se utilice.

Script
# SSH Port Enable
/ip service set ssh port=22 address=0.0.0.0/0 disabled=no
# SSH Port Disable
/ip service set ssh port=22 address=0.0.0.0/0 disabled=yes

TELNET (23)

Tiene prácticamente la misma función que SSH, pero presenta algunas limitaciones y un bajo nivel de seguridad. Se suele utilizar para acceder a routers remotos desde la consola. El servicio Telnet de MikroTik utiliza el puerto 23. Este puerto Telnet suele ser objeto de ataques de fuerza bruta; se recomienda cambiarlo o deshabilitarlo cuando no se utilice.

Script
# TELNET Port Enable
/ip service set ftp port=23 address=0.0.0.0/0 disabled=no
# TELNET Port Disable
/ip service set ftp port=23 address=0.0.0.0/0 disabled=yes

WINBOX (8291)

El servicio permite que la aplicación Winbox se conecte al router. Por supuesto, ya conocemos la aplicación Winbox, que se utiliza para controlar el router de forma remota mediante gráficos. La conexión de Winbox utiliza el puerto 8291. Algunas versiones de routeros pueden ser vulnerables a ataques mediante exploits. ¡Puedes cambiar el puerto para mayor seguridad!

Script
# WINBOX Port Enable
/ip service set winbox port=8291 address=0.0.0.0/0 disabled=no
# WINBOX Port Disable
/ip service set winbox port=8291 address=0.0.0.0/0 disabled=yes

WWW WEBFIG (80)

Además de la consola remota y Winbox, Mikrotik también ofrece acceso al router a través de una interfaz web mediante un navegador. El puerto utilizado es el puerto HTTP estándar, el puerto 80. Puede cambiar el puerto o deshabilitarlo cuando no esté en uso.

Script
# WWW (webfig) Port Enable
/ip service set www port=80 address=0.0.0.0/0 disabled=no
# WWW (webfig) Port Disable
/ip service set www port=80 address=0.0.0.0/0 disabled=yes

WWW-SSL WEBFIG (443)

Al igual que el servicio WWW, que permite el acceso al router mediante una interfaz web, www-ssl es más seguro porque utiliza certificados SSL para establecer una conexión entre el router y el cliente remoto. Por defecto, utiliza el puerto 443; puede cambiarlo o desactivarlo cuando no lo utilice.

Script
# WWW-SSL (webfig) Port Enable
/ip service set www-ssl port=443 address=0.0.0.0/0 disabled=no
# WWW-SSL (webfig) Port Disable
/ip service set www-ssl port=443 address=0.0.0.0/0 disabled=yes

Seguridad avanzada del enrutador

Seguridad avanzada del enrutadorDescription

Descubrimiento de protección de los vecinos

Mikrotik cuenta con un protocolo que permite la difusión de dominios a través de la capa 2, de modo que los dispositivos Mikrotik puedan encontrarse entre sí si se encuentran en la misma red de capa 2. Este protocolo se denomina Protocolo de Descubrimiento de Vecinos de Mikrotik (MNDP). Los dispositivos compatibles con MNDP y CDP pueden obtener información adicional del enrutador, como su identidad, dirección MAC y dirección IP. Un ejemplo sencillo es cuando, al usar Winbox, en la pestaña Vecinos, observamos información del enrutador conectada a la capa 2 junto con la información de nuestra red.

Script
# Hide Discover Interface Broadcast
/ip neighbor discovery-settings set discover-interface-list=none
# Show Discover Interface Broadcast
/ip neighbor discovery-settings set discover-interface-list=all

Proteger Mac Server

Deshabilitar la interfaz de detección no significa que no se pueda acceder al router de forma remota mediante la dirección MAC. Si previamente ha guardado o conoce la dirección MAC del router, aún puede acceder a ella de forma remota. Si desea impedir el acceso remoto al router mediante la dirección MAC, ya sea a través de Winbox o Telnet, desactive la función de servidor MAC en el router.

Script
# Protect login from Mac Address
/tool mac-server mac-winbox set allowed-interface-list=none
/tool mac-server ping set enabled=no
# Unprotect login from Mac Address
/tool mac-server mac-winbox set allowed-interface-list=all
/tool mac-server ping set enabled=yes

Protector de gestor de arranque

En Mikrotik existe una función que protege el acceso al sistema del router, especialmente en lo que respecta al uso del botón de reinicio. Esta función se llama RouterBOOT protegido. Cuando se activa, algunas funciones no se pueden realizar de forma predeterminada, como el botón de reinicio y el reinicio mediante el pinhole. Además, se desactiva el acceso al router desde la consola. Nota: en la nueva versión de ROS, después de pegar el script para habilitarlo, no olvide presionar el botón en un plazo de 60 segundos para confirmar la activación de RouterBOOT protegido.

Script
# Enable Bootloader Protector
/system routerboard settings set protected-routerboot=enabled
# Disable Bootloader Protector
/system routerboard settings set protected-routerboot=disabled

Proteja el servidor Btest

El router Mikrotik también cuenta con la función Btest Server, que permite probar las conexiones establecidas. Sin embargo, si usuarios externos utilizan esta función repentinamente, nuestro router se ve obligado a generar o recibir tráfico para pruebas de ancho de banda, lo que podría provocar que se agote el ancho de banda o que la carga de la CPU alcance el 100%. Como los administradores de red no desean que esto ocurra, lo mejor es desactivar esta función.

Script
# Btest Server Enable
/tool bandwidth-server set enabled=yes authenticate=yes
# Btest Server Disable
/tool bandwidth-server set enabled=no authenticate=yes

Proteger a RoMON

RoMON es el protocolo propietario de MikroTik o un protocolo compatible únicamente con dispositivos MikroTik. La comunicación RoMON se basa en el parámetro ID de RoMON, que se obtiene de la dirección MAC del router. Los dispositivos compatibles con RoMON realizarán un descubrimiento de direcciones MAC de pares y también un protocolo de reenvío de datos de forma independiente. Si no desea que su dirección MAC se difunda a todas las redes, puede desactivar RoMON.

Script
# Enable RoMON
/tool romon set enabled=yes secrets=12345
# Disable RoMON
/tool romon set enabled=no secrets=12345

Seguridad opcional del enrutador

Seguridad opcional del enrutadorDescription

Proteja el servicio de puerto de Internet

Proteja el puerto de servicio predeterminado utilizado por Mikrotik, como telnet, ssh, ftp, winbox, www y api. Si no está en uso, puede desactivarlo. Si utiliza un puerto personalizado, agréguelo.

Script
# Protect Port Service from Internet
/interface list add name=WAN
/interface list member
add list=WAN interface="ether to ISP"
/ip firewall filter
add action=drop chain=input dst-port=21,22,23,8291,80,8728,8729 in-interface-list=WAN protocol=tcp comment="Protect Port Service from Internet"
add action=drop chain=input dst-port=21,22,23,8291,80,8728,8729 in-interface-list=WAN protocol=udp

Anti-hack de EXPLOIT

La vulnerabilidad permitía que una herramienta especial se conectara al puerto de Winbox y solicitara el archivo de la base de datos de usuarios del sistema. Versiones afectadas: afectó a todas las versiones de corrección de errores desde la 6.30.1 hasta la 6.40.7, desde la 6.29 hasta la 6.42 y desde la 6.29rc1 hasta la 6.43rc3.

Script
# Anti Hack from EXPLOIT
/ip firewall filter add action=reject chain=input content=user.dat reject-with=icmp-network-unreachable comment="Anti Hack Exploit"
/ip firewall filter add action=drop chain=input content=user.dat

Memcrashed - Ataques de amplificación UDP 11211

Este ataque DDoS se conoce como Memcrashed, donde el atacante explota el protocolo UDP del puerto 11211 utilizado por el servicio Memcached del servidor web. Memcached es una tecnología utilizada para sistemas de almacenamiento y distribución de datos en la memoria del servidor.

Script
# Memcrashed - Amplification Attacks UDP 11211
/ip firewall filter
add chain=forward dst-port=11211 protocol=udp action=drop comment="Memcrashed - Amplification Attacks UDP 11211"

Bloquear módem de acceso

El módem o el router del proveedor de internet generalmente tienen una configuración predeterminada, desde la dirección IP hasta el nombre de usuario y la contraseña. Si alguien conoce esta configuración, sin duda será peligroso para tu red.

Script
# Block ACCESS MODEM
/ip firewall address-list
add address=192.168.1.1 list=IP-MODEM
add address=192.168.2.1 list=IP-MODEM
/ip firewall filter
add action=drop chain=forward dst-address-list=IP-MODEM dst-port=21-23,80,443 protocol=tcp comment="MODEM PROTECTED"
add action=drop chain=output dst-address-list=IP-MODEM dst-port=21-23,80,443 protocol=tcp

Dejar caer TRACEROUTE

Para ocultarnos a través de varios enrutadores o mediante qué ISP para que el cliente no pueda leer nuestra ruta de red, podemos ocultarla o descartarla para el traceroute.

Script
# Drop TRACEROUTE
/ip firewall filter
add action=drop chain=forward icmp-options=11:0 protocol=icmp comment="Drop TRACEROUTE"
add action=drop chain=forward icmp-options=3:3 protocol=icmp

Anti NETCUT

Anti Netcut transmite ARP y ataca en la capa 2, pero al menos con el script a continuación podemos saber quién es el malhechor que quiere cortar nuestra red.

Script
# ANTI NETCUT
/ip firewall address-list add list=netcut address=www.arcai.com comment="Anti Netcut"
/ip firewall mangle add action=add-src-to-address-list address-list=NetcutUser address-list-timeout=1h5m chain=prerouting dst-address-list=netcut dst-port=80 protocol=tcp comment="Anti Netcut"
/ip firewall filter add action=drop chain=forward src-address-list=NetcutUser comment="Anti Netcut"
/system scheduler add interval=10m name="AutoBlockNetcut" comment="Anti Netcut"

local a [/ip firewall address-list get [find list="NetcutUser"] address]
local b [/ip hotspot active get [find address=$a] mac-address]
if ($a != "") do={[ /ip hotspot ip-binding add mac-address="$b" address="$a" type=blocked
/ip firewall address-list remove [find address="$a"]
/system scheduler add name ($a) interval="01:00:00" on "/ip hotspot ip-binding remove [find mac-address=$b]
/system scheduler remove [find name=$a]"
]}

Bloquear DNS recursivo abierto

¿Alguna vez has notado que el acceso a internet se ralentiza repentinamente? Podría deberse a que alguien está usando la IP pública de nuestro router como servidor DNS.

Script
# Block Open Recursive DNS
/interface list add name=WAN
/interface list member
add list=WAN interface="ether to ISP"
/ip firewall filter
add chain=input dst-port=53 in-interface-list=WAN protocol=tcp action=drop comment="Block Open Recursive DNS"
add chain=input dst-port=53 in-interface-list=WAN protocol=udp action=drop

Bloquear Open PROXY

Evite que personas ajenas hagan un mal uso del proxy abierto. Si utiliza un puerto personalizado, añada el suyo.

Script
# Block Open PROXY
/interface list add name=WAN
/interface list member
add list=WAN interface="ether to ISP"
/ip firewall filter
add action=drop chain=input dst-port=3128,8080 in-interface-list=WAN protocol=tcp comment="Block Open PROXY"
add action=drop chain=input dst-port=3128,8080 in-interface-list=WAN protocol=udp

Protección contra ataques DDoS

Anticípese a los ataques DDoS, limitando el número de conexiones en las reglas del cortafuegos. Cuando se produce un ataque DDoS, el sistema detecta que el número de solicitudes de conexión supera el límite especificado.

Script
# Anti DDoS Attacks
/ip firewall filter
add chain=forward connection-state=new action=jump jump-target=block-ddos comment="Anti DDoS Attacks"
add chain=forward connection-state=new src-address-list=ddoser dst-address-list=ddosed action=drop
add chain=block-ddos dst-limit=50,50,src-and-dst-addresses/10s action=return
add chain=block-ddos action=add-dst-to-address-list address-list=ddosed address-list-timeout=10m
add chain=block-ddos action=add-src-to-address-list address-list=ddoser address-list-timeout=10m

Anti PUERTOS ESCANEO

Para reducir riesgos y pérdidas derivadas de acciones irresponsables, también debemos mantener y prevenir activamente amenazas de seguridad, especialmente las que provienen de la red.

Script
# Anti PORT SCAN
/ip firewall filter
add chain=input protocol=tcp psd=21,3s,3,1 action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="Mark Source ip port scanner to Address list " disabled=no
add chain=input protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="NMAP FIN Stealth scan"
add chain=input protocol=tcp tcp-flags=fin,syn action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="SYN/FIN scan"
add chain=input protocol=tcp tcp-flags=syn,rst action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="SYN/RST scan"
add chain=input protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="FIN/PSH/URG scan"
add chain=input protocol=tcp tcp-flags=fin,syn,rst,psh,ack,urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="ALL/ALL scan"
add chain=input protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="NMAP NULL scan"
add chain=input src-address-list="port scanners" action=drop comment="Drop port scanners" disabled=no

Protección contra ataques de fuerza bruta FTP + SSH

El ataque de fuerza bruta consiste en intentar descifrar contraseñas probando aleatoriamente cada una de ellas a partir de una combinación de letras, números y símbolos, hasta dar con la correcta.

Script
# Anti Hack from BruteForce FTP + SSH
/ip firewall filter
add action=drop chain=input comment="drop ftp BRUTE FORCErs" dst-port=21 protocol=tcp src-address-list=ftp_blacklist
add action=accept chain=output content="530 Login incorrect" dst-limit=1/1m,9,dst-address/1m protocol=tcp
add action=add-dst-to-address-list address-list=ftp_blacklist address-list-timeout=3h chain=output content="530 Login incorrect" protocol=tcp
add action=drop chain=input comment="drop ssh BRUTE FORCErs" dst-port=22-23 protocol=tcp src-address-list=ssh_blacklist
add action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=1w3d chain=input connection-state=new dst-port=22-23 protocol=tcp src-address-list=ssh_stage3
add action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m chain=input connection-state=new dst-port=22-23 protocol=tcp src-address-list=ssh_stage2
add action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m chain=input connection-state=new dst-port=22-23 protocol=tcp src-address-list=ssh_stage1
add action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m chain=input connection-state=new dst-port=22-23 protocol=tcp
add action=drop chain=forward comment="drop ssh brute downstream" dst-port=22-23 protocol=tcp src-address-list=ssh_blacklist

Port Knocking utiliza ICMP + tamaño del paquete

En redes informáticas, el port knocking es un método para abrir externamente puertos en un firewall mediante la generación de un intento de conexión en un conjunto de puertos cerrados preespecificados.

Script
# Port Knocking Use Icmp + Packet Size
/ip firewall filter
add action=add-src-to-address-list address-list="port-knocking-first" address-list-timeout="00:00:00" chain=input packet-size="100" protocol=icmp comment="Port Knocking Use Icmp + Packet Size"
add action=add-src-to-address-list address-list="port-knocking-second" address-list-timeout="00:00:00" chain=input packet-size="200" protocol=icmp src-address-list="port-knocking-first"
add action=accept chain=input dst-port="21,22,23" protocol=tcp src-address-list="port-knocking-second"
add action=drop chain=input dst-port="21,22,23" protocol=tcp src-address-list="!port-knocking-second"

¿No sabes qué opción elegir?

Aprende cómo funciona Protección Avanzada de RouterOS antes de generar tu configuración.

Ver guía