Connection Tracking — Firewall stateful in RouterOS
Il connection tracking permette a RouterOS di tenere traccia dello stato di ogni connessione di rete, abilitando un firewall stateful efficiente che distingue traffico legittimo da intrusioni.
Il connection tracking è il motore stateful di RouterOS. Mantiene una tabella di tutte le connessioni attive e assegna a ogni pacchetto uno dei cinque stati di connessione. Questo consente al firewall di accettare in modo efficiente il traffico di risposta senza dover aprire porte aggiuntive.
Gli stati di connessione
- new — primo pacchetto di una nuova connessione (es. TCP SYN) o pacchetto UDP senza entry nella tabella. È il traffico da esaminare con più attenzione.
- established — pacchetto appartenente a una connessione già vista in entrambe le direzioni. Il traffico di risposta legittimo. Da accettare quasi sempre.
- related — pacchetto correlato a una connessione esistente ma non parte di essa (es. messaggi ICMP di errore, connessione dati FTP in modalità passiva). Anch'esso legittimo.
- invalid — pacchetto che non corrisponde a nessuna connessione nota e non è
new. Tipicamente traffico malformato o attacchi. Da scartare sempre. - untracked — stato speciale per pacchetti esclusi dal conntrack tramite regole RAW con azione
notrack. Utile per traffico ad altissimo volume (es. DDoS mitigation).
Timeout di default per protocollo
- TCP SYN (handshake): 5 secondi
- TCP established: 1 giorno
- TCP close/fin-wait/time-wait: 10 secondi
- UDP (una direzione): 30 secondi
- UDP (bidirezionale): 3 minuti
- ICMP: 10 secondi
- Generico: 10 minuti
# Visualizza la configurazione corrente del conntrack /ip firewall connection tracking print # Il parametro "enabled=auto" attiva il conntrack solo se esistono # regole firewall che lo richiedono (ottimale per router base). # Forzarlo a "yes" o "no" se necessario: /ip firewall connection tracking set enabled=yes # Ridurre i timeout in ambienti con molte connessioni (es. server PPPoE) # per liberare più rapidamente le entry scadute: /ip firewall connection tracking set tcp-established-timeout=8h udp-timeout=30s udp-stream-timeout=2m generic-timeout=5m # Abilitare il liberal TCP tracking (raccomandato su link WAN instabili): # Fa sì che solo i segmenti RST fuori finestra vengano marcati INVALID # invece di scartare pacchetti legittimi su connessioni asimmetriche. /ip firewall connection tracking set liberal-tcp-tracking=yes # Visualizzare la tabella connessioni con colonne utili /ip firewall connection print detail
Stati TCP interni
Oltre agli stati di connessione del firewall, RouterOS traccia lo stato interno TCP: syn-sent, syn-recv, established, fin-wait, close-wait, last-ack, time-wait, close. Questi sono visibili nella tabella /ip firewall connection e utili per il debugging.
accept connection-state=established,related e drop connection-state=invalid. Questo garantisce massima performance (il traffico legittimo viene accettato immediatamente) e massima sicurezza (il traffico malformato viene scartato subito). Dopo aver modificato le regole NAT, svuota la tabella connessioni con /ip firewall connection remove [find] per evitare comportamenti inattesi.# Pattern fondamentale da inserire come PRIME regole in ogni chain: # Chain INPUT - protegge il router /ip firewall filter add chain=input connection-state=established,related,untracked action=accept comment="Accetta traffico di risposta stabilito" /ip firewall filter add chain=input connection-state=invalid action=drop comment="Scarta pacchetti non validi" # Chain FORWARD - protegge i clienti /ip firewall filter add chain=forward connection-state=established,related action=fasttrack-connection hw-offload=yes comment="FastTrack - accelerazione hardware traffico stabilito" /ip firewall filter add chain=forward connection-state=invalid action=drop comment="Scarta pacchetti forward non validi"
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