Securizar Mikrotik

Hola a todos,

Estaba teniendo problemas con un Switch Netgear conectado a Mikrotik. El switch desctivaba al cabo del tiempo el puerto del Mikrotik y creo que era debido a sospecha de DoS. No creo que lo sea pero me ha hecho revisar la configuración de Mikrotik y creo que está bastante adecuada pero quería corroborar con vosotros y ver si se os ocurría alguna otra cosa más.

Empezando por temas que no son el Firewall he estado mirando la Wiki
Yo ya tenía desactivados los servicios y restringidos los rangos de IPs, pero por ejemplo restringir el rango de IP de usuario tiene algún sentido?
He aprovechado y he quitado lo de los Neightbour.
Y también he quitado el Mac-Server
Código:
/tool mac-server
set allowed-interface-list=none
/tool mac-server ping
set enabled=no

En lo referente al Firewall tengo separado el rango en dos subredes ya que como no dispongo actualmente de un punto de acceso con VLAN por SSID me ha parecido una buena idea la separación por esta via.

Código:
/ip firewall address-list
add address=192.168.0.0/25 list=LAN-FIABLE
add address=192.168.10.0/24 list=LAN-IPTV
add address=192.168.0.128/25 list=LAN-GUEST
add address=192.168.0.0/24 list=LAN-ALL
add address=10.10.0.0/24 list=VPN

/ip firewall filter
add action=accept chain=input comment="IN - Accept Winbox" dst-port=XXXXXX,XXXXXX in-interface-list=LAN protocol=tcp src-address-list=LAN-FIABLE
add action=add-src-to-address-list address-list=Blacklist address-list-timeout=10h chain=input comment="IN - Add Src to Blacklist" connection-state=new dst-port=20-25,80,110,161,443,445,3128,3306,3333,3389,7547,8291,8080-8082 \
    in-interface-list=WAN log=yes log-prefix="FWALL- ADD BLACKLIST" protocol=tcp
add action=accept chain=input comment="IN - Accept Established and related" connection-state=established,related
add action=drop chain=input comment="IN - Drop Invalid" connection-state=invalid
add action=accept chain=input comment="IN - Accept ICMP" protocol=icmp
add action=accept chain=input comment="IN WAN - Allow Wireguard" dst-port=XXXXXX in-interface-list=WAN protocol=udp
add action=accept chain=input comment="IN WAN IPTV - Allow IPTV Multicast UDP" in-interface-list=WAN-IPTV protocol=udp
add action=accept chain=input comment="IN WAN IPTV - Accept IGMP" in-interface-list=WAN-IPTV protocol=igmp
add action=accept chain=input comment="IN LAN - Accept 53 UDP (DNS)" dst-port=53 protocol=udp src-address-list=LAN-ALL
add action=accept chain=input comment="IN LAN IPTV - Allow IGMP" protocol=igmp src-address-list=LAN-IPTV
add action=accept chain=input comment="IN LAN IPTV - Allow UDP" protocol=udp src-address-list=LAN-IPTV
add action=drop chain=input comment="IN - Drop all not comming from LAN" log=yes log-prefix="FWALL - IN DROP" src-address-list=!LAN-FIABLE
add action=fasttrack-connection chain=forward comment="FW - FastTrack" connection-state=established,related hw-offload=yes
add action=accept chain=forward comment="FW - Accept Established and related" connection-state=established,related
add action=drop chain=forward comment="FW - Drop Invalid" connection-state=invalid
add action=accept chain=forward comment="FW WAN IPTV - Allow IPTV Multicast UDP" in-interface-list=WAN-IPTV protocol=udp
add action=drop chain=forward comment="FW - Drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=EXT-ALL log=yes log-prefix="FWALL - FW DROP"

/ip firewall mangle
add action=set-priority chain=postrouting new-priority=4 out-interface-list=WAN-IPTV passthrough=yes
add action=set-priority chain=postrouting new-priority=1 out-interface-list=WAN passthrough=no

/ip firewall nat
add action=masquerade chain=srcnat comment="NAT - WAN-IPTV" out-interface-list=WAN-IPTV
add action=masquerade chain=srcnat comment="NAT - WAN" out-interface-list=WAN
add action=dst-nat chain=dstnat comment="Service" dst-port=XXXXX in-interface-list=WAN protocol=tcp src-address=XX.XX.XX.XX to-addresses=XX.XX.XX.XX to-ports=XXXXX

/ip firewall raw
add action=drop chain=prerouting comment="Drop Address From Blacklist" log=yes log-prefix="FWALL - BLACKLIST DROP" src-address-list=Blacklist
add action=add-dst-to-address-list address-list=Blacklist address-list-timeout=10m chain=output comment="add a device performing unsuccessful authorization to BlackList" content="invalid user name or password" log=yes log-prefix=\
    BRUTEFORCE

Leyendo la Wiki lo tengo bastante similar a lo aconsejado pero hay algunas reglas que especifican que no acabo de entenderlas bien. Sino me equivoco esta regla no permite llegar a otros equipos de la LAN desde la propia LAN.
drop attempts to reach not public addresses from your local network, apply address-list=not_in_internet before, bridge1 is local network interface, log attempts with !public_from_LAN;
REGLA: add action=drop chain=forward comment="Drop tries to reach not public addresses from LAN" dst-address-list=not_in_internet in-interface=bridge1 log=yes log-prefix=!public_from_LAN out-interface=!bridge1
Estas otras dos las entiendo pero me parecen situaciones dificiles
drop incoming packets from Internet, which are not public IP addresses, ether1 is public interface, log attempts with prefix !public;
drop packets from LAN that does not have LAN IP, 192.168.88.0/24 is local network used subnet;

También he estado leyendo sobre la restricionones DoS, he visto que se hace igual que he hecho yo con la lista negra, se pueden añadir cuales tenga muchas conexiones y bloquearlas o enlentecerlas. De momento no lo he aplicado pero me parece que puede estar bien, la cuestión es elegir bien el número de conexiones.

Al hacer el post me he dado cuenta que tenía puesto el mismo puerto de wireguard que winbox. Entiendo que no es grave porque Wireguard es UDP y WinBox solo lo permito desde la interfaz lan y en el rango de la LAN. Ya está cambiado.

Un saludo y muchas gracias de antemano.
 
Última edición:
Firewall por defecto y, sobre ese, tus particularidades. Y ojo con poner que todas las reglas logueen, porque como de verdad tengas un DDoS, lo vas a petar por las escrituras de logs en memoria.

Saludos!
 
Yo creo que este es el firewall por defecto con alguna particularidad para la IPTV y algun añadido de seguridad sino me equivoco.
El de la Wiki de Mikrotik al final es el de por defecto pero añade alguna cosa más como la que comentaba.
Lo de los logs es verdad, creo que lo había puesto para detectar en alguna ocasión algo que me estaba bloqueando pero lo podría quitar claro.
Muchas gracias.
 
Te dejo el firewall por defecto, por si te sirve de referencia:
Código:
/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related hw-offload=\
    yes
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
    connection-state=new in-interface-list=WAN

Si quieres hacer que una subred sólo acceda a internet, metes una regla adicional del estilo a esta:
Código:
/ip firewall filter
add action=reject chain=forward out-interface-list=!WAN reject-with=icmp-network-unreachable src-address=192.168.X.Y/24
 
Si quieres hacer que una subred sólo acceda a internet, metes una regla adicional del estilo a esta:
Código:
/ip firewall filter
add action=reject chain=forward out-interface-list=!WAN reject-with=icmp-network-unreachable src-address=192.168.X.Y/24
Ya la tengo añadida. Disculpa la tardanza en la respuesta. Si, básicamente es lo que quería. Es una solución a medio camino hacia las VLAN. Como en la parte inalámbrica tengo metidos esos equipos en la red de invitados ya estaría también por esa parte solucionado. La regla haría su función salvo en el tráfico que no pase por el router sino por el switch.

Lo suyo sería tener dos SSID con VLAN separadas y con DHCP para cada una pero haciendo las aisgnaciones por DHCP de manera estática se puede gestionar.

Un saludo,
 
Arriba