Guida MikroTik
Firewall e QoSIntermedio

Firewall Filter — Ruleset di base sicuro e commentato

Un ruleset firewall completo, commentato riga per riga, per proteggere il router MikroTik dalla WAN mantenendo piena operatività LAN. Include protezione Winbox/SSH con address-list admin e drop WAN totale.

Il firewall è la prima linea di difesa del router. Per impostazione predefinita RouterOS non blocca nulla, quindi è obbligatorio configurare un ruleset prima di esporre il router su Internet. Il principio guida è deny-by-default: tutto ciò che non è esplicitamente permesso viene scartato.

SICUREZZA CRITICA — Principio del router protetto di default: aggiungi le regole di DROP come ULTIMA regola nelle chain, non come prima. RouterOS valuta le regole dall'alto verso il basso e si ferma al primo match (a meno che non si usi passthrough=yes). Se per errore metti un DROP troppo in alto, puoi perdere l'accesso al router. Mantieni sempre una sessione Winbox aperta durante la configurazione: le modifiche alla chain input non interrompono le sessioni già stabilite.

Prerequisito: Interface List

Creare le interface list WAN e LAN
# Creare le liste di interfacce (da adattare ai propri nomi)
/interface list add name=WAN comment="Interfacce verso Internet"
/interface list add name=LAN comment="Interfacce verso la rete locale"

# Aggiungere le interfacce (esempio: ether1=WAN, ether2-5+wlan=LAN)
/interface list member add list=WAN interface=ether1
/interface list member add list=LAN interface=ether2
/interface list member add list=LAN interface=ether3
/interface list member add list=LAN interface=wlan1

# Creare la lista degli IP amministrativi (da cui si accede a Winbox/SSH)
# IMPORTANTE: aggiungere il proprio IP PRIMA di configurare le regole!
/ip firewall address-list add   list=admin address=192.168.88.10   comment="PC amministratore principale"
/ip firewall address-list add   list=admin address=10.0.0.0/8   comment="Rete management interna"

Chain INPUT — Protezione del router

Regole chain input complete e commentate
# ================================================================
# CHAIN INPUT — Protegge il router stesso dagli accessi non autorizzati
# Valutate per OGNI pacchetto destinato al router (SSH, Winbox, API, DNS...)
# ================================================================

# [1] ACCETTA traffico già stabilito/correlato — performance critica
#     Questa DEVE essere la prima regola: evita di processare tutto il
#     traffico di risposta attraverso le regole successive.
/ip firewall filter add   chain=input   connection-state=established,related,untracked   action=accept   comment="[1] Accetta connessioni già stabilite e correlate"

# [2] SCARTA traffico non valido — sicurezza
#     Pacchetti malformati o fuori-sequenza: tipico di scan/attacchi.
/ip firewall filter add   chain=input   connection-state=invalid   action=drop   comment="[2] Scarta connessioni non valide (malformate/attacchi)"

# [3] ACCETTA ICMP controllato dalla WAN
#     Permette solo ping (echo-request) dalla WAN con rate limiting.
#     Blocca ICMP redirect e altri tipi potenzialmente pericolosi.
/ip firewall filter add   chain=input   protocol=icmp icmp-options=8:0   in-interface-list=WAN   limit=10,20:packet   action=accept   comment="[3] ICMP ping WAN (rate-limited 10 pps)"

/ip firewall filter add   chain=input   protocol=icmp   in-interface-list=LAN   action=accept   comment="[3b] ICMP dalla LAN: tutto permesso"

/ip firewall filter add   chain=input   protocol=icmp   action=drop   comment="[3c] Scarta altri tipi ICMP dalla WAN"

# [4] WINBOX — SOLO da address-list 'admin'
#     MAI esporre Winbox (TCP 8291) su Internet!
/ip firewall filter add   chain=input   protocol=tcp dst-port=8291   src-address-list=admin   action=accept   comment="[4] Winbox - solo da IP admin autorizzati"

/ip firewall filter add   chain=input   protocol=tcp dst-port=8291   action=drop   log=yes log-prefix="WINBOX-BLOCKED"   comment="[4b] Blocca Winbox da IP non autorizzati"

# [5] SSH — SOLO da address-list 'admin'
#     SSH (TCP 22) non deve mai essere accessibile dalla WAN senza
#     restrizioni. Meglio ancora: cambiare porta e usare chiavi.
/ip firewall filter add   chain=input   protocol=tcp dst-port=22   src-address-list=admin   action=accept   comment="[5] SSH - solo da IP admin autorizzati"

/ip firewall filter add   chain=input   protocol=tcp dst-port=22   action=drop   log=yes log-prefix="SSH-BLOCKED"   comment="[5b] Blocca SSH da IP non autorizzati"

# [6] API RouterOS — solo dalla LAN (o da admin)
/ip firewall filter add   chain=input   protocol=tcp dst-port=8728,8729   src-address-list=admin   action=accept   comment="[6] RouterOS API (plain/SSL) - solo admin"

/ip firewall filter add   chain=input   protocol=tcp dst-port=8728,8729   action=drop   comment="[6b] Blocca API RouterOS da IP non autorizzati"

# [7] DNS dalla LAN — se il router fa da DNS resolver locale
/ip firewall filter add   chain=input   protocol=tcp dst-port=53   in-interface-list=LAN   action=accept   comment="[7] DNS TCP dalla LAN"

/ip firewall filter add   chain=input   protocol=udp dst-port=53   in-interface-list=LAN   action=accept   comment="[7b] DNS UDP dalla LAN"

# [8] NTP — se il router fa da server NTP
/ip firewall filter add   chain=input   protocol=udp dst-port=123   in-interface-list=LAN   action=accept   comment="[8] NTP dalla LAN"

# [9] DHCP — necessario per assegnare IP ai client locali
/ip firewall filter add   chain=input   protocol=udp dst-port=67,68   action=accept   comment="[9] DHCP server"

# [10] DROP FINALE — tutto il resto dalla WAN viene scartato silenziosamente
#      In-interface-list=WAN garantisce che solo il traffico WAN venga droppato.
#      Il traffico LAN non corrisponde e passa alle regole successive (se ci sono).
/ip firewall filter add   chain=input   in-interface-list=WAN   action=drop   comment="[10] DROP FINALE: tutto il resto dalla WAN"

Chain FORWARD — Protezione del traffico dei clienti

Regole chain forward complete e commentate
# ================================================================
# CHAIN FORWARD — Controlla il traffico che transita ATTRAVERSO il router
# (traffico dei clienti: LAN→WAN, WAN→LAN, LAN→LAN su subnet diverse)
# ================================================================

# [1] FASTTRACK per connessioni già stabilite — performance massima
#     FastTrack bypassa il firewall per le connessioni già verificate.
#     NOTA: se si usano Simple Queues per shaping, FastTrack va disabilitato
#     o le queue devono trovarsi su interfacce specifiche (Queue Tree).
/ip firewall filter add   chain=forward   connection-state=established,related   action=fasttrack-connection hw-offload=yes   comment="[1] FastTrack - hardware offload per traffico stabilito"

# [2] Accetta established/related (fallback se FastTrack non supportato)
/ip firewall filter add   chain=forward   connection-state=established,related   action=accept   comment="[2] Accetta traffico forward già stabilito"

# [3] Scarta traffico non valido
/ip firewall filter add   chain=forward   connection-state=invalid   action=drop   comment="[3] Scarta traffico forward non valido"

# [4] ACCETTA LAN → WAN — i clienti possono navigare su Internet
/ip firewall filter add   chain=forward   in-interface-list=LAN   out-interface-list=WAN   action=accept   comment="[4] LAN -> WAN: clienti verso Internet"

# [5] Blocca connessioni WAN → LAN non richieste
#     Solo il traffico "established/related" (già accettato sopra) può
#     tornare dalla WAN verso la LAN. Nuove connessioni dalla WAN: DROP.
/ip firewall filter add   chain=forward   in-interface-list=WAN   out-interface-list=LAN   connection-state=new   action=drop   comment="[5] Blocca nuove connessioni da WAN verso LAN"

# [6] DROP FINALE FORWARD
/ip firewall filter add   chain=forward   action=drop   comment="[6] DROP FINALE forward: tutto il resto"
FastTrack e QoS non coesistono direttamente: se vuoi applicare Simple Queues a tutti i clienti, commenta la regola FastTrack in forward e usa invece Queue Tree su interfacce specifiche (che lavora correttamente anche con FastTrack attivo). Alternativa: usa hw-offload=no su FastTrack e gestisci le code in software.
firewall filterrulesetchain inputchain forwarddrop WANaccept establishedaddress-list adminwinbox securityssh protectionICMPsicurezza routerfasttrack

Configura senza fatica con l'AI

In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.

Prova WispOS