Guida MikroTik
Firewall e QoSBase

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
Configurazione connection tracking e timeout personalizzati
# 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.

Best practice: inserisci SEMPRE come prime regole del firewall 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.
Regole firewall base con connection-state
# 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"
connection trackingstateful firewallnewestablishedrelatedinvaliduntrackedconntracktimeouttcp state

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