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
# ================================================================ # 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)"
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.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.
Continua con
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