Guida MikroTik
Firewall e QoSAvanzato

Firewall RAW — Filtraggio pre-conntrack e protezione DDoS

Il firewall RAW opera prima del connection tracking e del firewall filter, permettendo di scartare traffico massiccio (DDoS, bogon, amplification) a costo CPU minimo prima che entri nella tabella di connessioni.

Il firewall RAW (/ip firewall raw) è una chain speciale che viene valutata prima del connection tracking. Il vantaggio principale: scartare traffico massivo (es. DDoS) prima che venga creata una entry nella tabella di connessioni, risparmiando CPU e memoria. Le chain RAW sono prerouting (traffico in ingresso) e output (traffico generato dal router).

Differenza tra RAW e Filter

  • RAW prerouting: agisce prima del conntrack e del mangle. Nessun accesso a connection-state (non ancora calcolato). Azioni: accept, drop, notrack.
  • Filter input/forward: agisce dopo il conntrack. Ha accesso a connection-state, connection-mark. Più potente ma più costoso.
  • Usa RAW per bloccare IP noti cattivi, indirizzi bogon, e mitigare flood; usa Filter per logica stateful avanzata.

Protezione DDoS con RAW e address-list

Ruleset RAW anti-DDoS e blocco bogon
# ================================================================
# FIREWALL RAW — Protezione pre-conntrack
# Obiettivo: ridurre il carico sul conntrack durante attacchi volumetrici
# ================================================================

# --- BOGON FILTERING (RFC 5735/1918 - blocca indirizzi non instradabili) ---
# Crea una lista di indirizzi bogon (RFC 1918 + riservati)
/ip firewall address-list add list=bogon address=0.0.0.0/8 comment="This network"
/ip firewall address-list add list=bogon address=10.0.0.0/8 comment="RFC 1918"
/ip firewall address-list add list=bogon address=100.64.0.0/10 comment="Shared Address"
/ip firewall address-list add list=bogon address=127.0.0.0/8 comment="Loopback"
/ip firewall address-list add list=bogon address=169.254.0.0/16 comment="Link-local"
/ip firewall address-list add list=bogon address=172.16.0.0/12 comment="RFC 1918"
/ip firewall address-list add list=bogon address=192.0.0.0/24 comment="IETF Protocol"
/ip firewall address-list add list=bogon address=192.168.0.0/16 comment="RFC 1918"
/ip firewall address-list add list=bogon address=198.18.0.0/15 comment="Benchmark"
/ip firewall address-list add list=bogon address=198.51.100.0/24 comment="TEST-NET-2"
/ip firewall address-list add list=bogon address=203.0.113.0/24 comment="TEST-NET-3"
/ip firewall address-list add list=bogon address=224.0.0.0/4 comment="Multicast"
/ip firewall address-list add list=bogon address=240.0.0.0/4 comment="Reserved"

# Blocca sorgenti bogon dalla WAN (spoofing / traffico non valido)
/ip firewall raw add   chain=prerouting   in-interface-list=WAN   src-address-list=bogon   action=drop   comment="RAW: blocca sorgenti bogon dalla WAN"

# Blocca destinazioni bogon (scansioni non instradabili)
/ip firewall raw add   chain=prerouting   in-interface-list=WAN   dst-address-list=bogon   action=drop   comment="RAW: blocca destinazioni bogon dalla WAN"

# --- PROTEZIONE DDoS con address-list dinamiche ---
# Tecnica: identifica attaccanti (troppo traffico verso stessa destinazione)
# e droppali in RAW prima che entrino nel conntrack.

# Crea le liste (vuote, popolate dinamicamente dalle regole sotto)
/ip firewall address-list add list=ddos-attackers
/ip firewall address-list add list=ddos-targets

# DROP immediato in RAW per attaccanti già identificati
/ip firewall raw add   chain=prerouting   src-address-list=ddos-attackers   dst-address-list=ddos-targets   action=drop   comment="RAW: drop DDoS attaccanti già identificati"

# Identifica attaccanti: se un IP supera 32 nuove connessioni/10s
# verso la stessa destinazione, aggiungilo alle liste di blocco
/ip firewall filter add   chain=forward   connection-state=new   action=jump jump-target=detect-ddos   comment="Salta alla chain di rilevamento DDoS"

/ip firewall filter add   chain=detect-ddos   dst-limit=32,32,src-and-dst-addresses/10s   action=return   comment="Traffico sotto soglia: torna alla chain forward"

/ip firewall filter add   chain=detect-ddos   action=add-dst-to-address-list   address-list=ddos-targets   address-list-timeout=10m   comment="Aggiunge la destinazione attaccata alla lista"

/ip firewall filter add   chain=detect-ddos   action=add-src-to-address-list   address-list=ddos-attackers   address-list-timeout=10m   comment="Aggiunge l'attaccante alla lista di blocco"

# --- SYN FLOOD: abilita TCP SYN cookies ---
/ip settings set tcp-syncookies=yes

# --- NOTRACK: esclude traffico ad alto volume dal conntrack ---
# Esempio: esclude il traffico di transito generico (non gestito dal router)
# per ridurre le entry nel conntrack su router con molti client
/ip firewall raw add   chain=prerouting   in-interface-list=WAN   protocol=udp   dst-port=!53   action=notrack   comment="RAW notrack: UDP non-DNS dalla WAN (riduce conntrack)"
ATTENZIONE con notrack: usare notrack su traffico che richiede NAT o firewall stateful causa problemi (il traffico appare in stato untracked e può bypassare regole filter basate su connection-state). Usa notrack solo per traffico di transito puro o per mitigazione DDoS dove la sicurezza stateful non è necessaria.

Protezione port-scan e amplification (DNS/NTP/SSDP)

Due minacce molto comuni per i router WISP esposti: i port scan (ricognizione prima di un attacco) e gli amplification attack (l'attaccante usa il tuo DNS/NTP aperto per amplificare traffico verso una vittima). Entrambi si mitigano efficacemente — i primi col rilevamento PSD, i secondi NON esponendo mai resolver/NTP aperti sulla WAN.

Rilevamento port scan + blocco amplification
# --- PORT SCAN DETECTION (PSD) ---
# Rileva chi sonda molte porte in poco tempo e lo mette in blacklist
/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=1d comment="Rileva port scanner (PSD)"

/ip firewall raw add   chain=prerouting src-address-list=port-scanners   action=drop comment="RAW: drop port scanner identificati"

# --- ANTI AMPLIFICATION ---
# Non rispondere MAI a query DNS dalla WAN: il resolver è solo per i clienti.
# (Questa regola va nel ruleset input, prima del drop finale.)
/ip firewall filter add   chain=input in-interface-list=WAN protocol=udp dst-port=53   action=drop comment="Anti-amplification: nessun DNS aperto sulla WAN"
/ip firewall filter add   chain=input in-interface-list=WAN protocol=udp dst-port=123   action=drop comment="Anti-amplification: nessun NTP aperto sulla WAN"
/ip firewall filter add   chain=input in-interface-list=WAN protocol=udp dst-port=1900   action=drop comment="Anti-amplification: blocca SSDP dalla WAN"

Limitare le connessioni per IP (anti-flood applicativo)

Connection-limit per contenere flood e client malevoli
# Blocca chi apre più di 100 connessioni TCP contemporanee verso il router
# (tipico di bot/flood; un client normale ne usa molte meno)
/ip firewall filter add   chain=input protocol=tcp connection-limit=100,32   connection-state=new   action=add-src-to-address-list address-list=conn-flood   address-list-timeout=1h comment="Troppe connessioni: aggiungi a lista"
/ip firewall raw add chain=prerouting src-address-list=conn-flood   action=drop comment="RAW: drop chi supera il connection-limit"

# Limitare il rate di NUOVE connessioni per IP (SYN flood applicativo)
/ip firewall filter add   chain=forward protocol=tcp tcp-flags=syn connection-state=new   src-address-type=!local   limit=50,5:packet action=accept   comment="Rate-limit nuove connessioni TCP per contenere SYN flood"
Bilancia sempre soglie e clienti reali: un cliente con molti dispositivi (smart home, P2P) apre legittimamente molte connessioni. Soglie troppo basse causano ticket di assistenza. Misura il comportamento normale con /ip firewall connection print count-only where src-address~"100.64" prima di impostare i limiti.

Per i WISP, una protezione DDoS efficace è critica: un attacco volumetrico può saturare il router gateway e rendere irraggiungibili tutti i clienti. La combinazione RAW + SYN cookies + dst-limit riduce significativamente l'impatto mantenendo reattivo il router. Ricorda però che un attacco veramente volumetrico (decine di Gbps) satura il link a monte: in quel caso serve un servizio di scrubbing/mitigazione lato upstream o un blackhole BGP concordato col transito.

RAW firewallnotrackpre-conntrackDDoS protectionbogon filteringSYN floodamplification attackaddress-listdst-limittcp-syncookies

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