Lezione 2 di 4 · 9 min
Firewall: filtraggio con stato e le opzioni di macOS
Come un firewall con stato decide cosa lasciar passare, la differenza tra filtraggio in entrata e in uscita, e gli strumenti che macOS offre per ciascuno.
Il compito di un firewall sembra semplice: lascia passare il traffico buono, tieni fuori quello cattivo. La parte interessante è come decide, e a quale livello. Questa lezione tratta il filtraggio con stato come concetto, poi gli strumenti specifici e separati che macOS offre, ciascuno operante a un livello diverso.
Filtraggio con stato: ricordare la conversazione
Un firewall precoce e “senza stato” ispeziona ogni pacchetto isolatamente rispetto a un insieme fisso di regole. Un firewall con stato invece tiene traccia delle connessioni aperte, e come descrive il glossario di rete di Cloudflare, “salva le informazioni relative alle connessioni aperte e usa queste informazioni per analizzare il traffico in entrata e in uscita, invece di ispezionare ogni pacchetto” da zero. Nella pratica questo significa che un firewall con stato può mantenere le porte effettivamente chiuse finché una connessione che hai avviato tu non chiede una risposta, poi lasciare rientrare quella specifica risposta, senza aprire la porta a nient’altro. Quasi ogni firewall consumer e di sistema operativo in uso oggi, incluso quello di macOS, ha stato.
Filtraggio in entrata contro in uscita
Il filtraggio in entrata controlla le connessioni che arrivano alla macchina, non invitate, dall’esterno: qualcuno o qualcosa che cerca di raggiungere un servizio in esecuzione su di essa. Il filtraggio in uscita (egress) controlla le connessioni che la macchina stessa, o un’app su di essa, cerca di fare verso l’esterno. I due contano per motivi diversi. Il filtraggio in entrata impedisce che una macchina venga raggiunta e sondata in primo luogo. Il filtraggio in uscita conta dopo che qualcosa è già andato storto: il software dannoso che arriva su una macchina ha comunque bisogno di comunicare verso casa, ricevere istruzioni, o inviare dati fuori, e ognuna di queste azioni richiede una connessione in uscita. Una macchina con un forte firewall in entrata e nessun filtraggio in uscita può comunque far trapelare tutto ciò che contiene, una connessione in uscita alla volta.
Cosa offre davvero macOS
| Strumento | Livello | Direzione | Note |
|---|---|---|---|
| Firewall applicativo | Per app, in Impostazioni di Sistema → Rete → Firewall | In entrata | Decide se ogni app possa accettare affatto connessioni in entrata; non filtra ciò che le app inviano fuori. Trattato con i comandi per controllarlo nel corso di irrobustimento di macOS di questo sito. |
| pf (packet filter) | Filtraggio dei pacchetti a livello kernel, ereditato da BSD | Entrambe, basato su regole | Un firewall potente e generico che Apple usa internamente (per esempio per la Condivisione internet), documentato per gli amministratori nelle pagine manuali pfctl e pf.conf invece che in un pannello di impostazioni grafico. Le regole pf scritte a mano sono un firewall BSD legacy, non un prodotto Apple con una pagina di supporto, e macOS non documenta ufficialmente la modifica di queste regole per l’irrobustimento da parte dell’utente finale. |
| Filtri dei contenuti Network Extension | A livello app, tramite il framework NetworkExtension di Apple | In uscita (e in entrata per i flussi assegnati a un filtro) | Il framework che le app di terze parti usano per ispezionare o bloccare il traffico di rete per app o per dominio, con il permesso dell’utente; è ciò che rende possibile affatto un firewall in uscita per app su macOS, invece che solo in entrata. |
La lettura pratica di questa tabella è che il firewall integrato e supportato di macOS (il Firewall applicativo) copre bene le connessioni in entrata ma non dice nulla su cosa lascia la macchina. pf può tecnicamente fare entrambe le cose, ma è uno strumento di basso livello basato su script rivolto ad amministratori a proprio agio nel modificare file di configurazione e ragionare sull’ordine delle regole, non qualcosa che questo corso percorrerà nella configurazione, poiché un errore in un insieme di regole scritto a mano può silenziosamente fallire in modo aperto o bloccare del tutto l’accesso alla rete, e Apple non lo tratta come un’impostazione di prima classe e supportata per l’utente finale come fa con il Firewall applicativo. Le guide di irrobustimento della comunità che pubblicano insiemi di regole pf già pronti o script che importano liste di blocco IP di terze parti vanno oltre quanto raccomanda questo corso: quelle liste devono essere affidabili e mantenute aggiornate da qualcuno, e un aggiornamento rotto può interrompere la connettività senza un messaggio di errore chiaro.
Quella lacuna, un firewall integrato solo in entrata senza un modo semplice e supportato di vedere o controllare le connessioni in uscita per app, è esattamente ciò che il framework Network Extension di Apple esiste per permettere agli sviluppatori di terze parti di colmare, con il permesso esplicito dell’utente all’installazione.
Da ricordare
- Un firewall con stato tiene traccia delle connessioni aperte e consente il traffico di ritorno per una connessione che hai avviato tu, senza ispezionare ogni pacchetto rispetto a un elenco fisso di regole.
- Il filtraggio in entrata impedisce che una macchina venga raggiunta dall’esterno; il filtraggio in uscita (egress) conta una volta che qualcosa è già sulla macchina e cerca di comunicare verso l’esterno.
- Il Firewall applicativo di macOS filtra le connessioni in entrata per app; non filtra il traffico in uscita.
- `pf` è un potente firewall BSD a livello kernel che macOS usa internamente, ma non è un’impostazione di irrobustimento supportata e documentata per l’utente finale come lo è il Firewall applicativo.
- Il framework Network Extension di Apple è ciò che permette alle app di terze parti di fornire filtraggio in uscita per app, la lacuna che il firewall integrato lascia aperta.
Mettiti alla prova
1. Cosa fa un firewall con stato in modo diverso da un semplice filtro di pacchetti senza stato?
- Blocca tutto il traffico per impostazione predefinita senza eccezioni
- Tiene traccia delle connessioni aperte e usa quel contesto per consentire il traffico di ritorno atteso — Esatto.
- Funziona solo su reti Wi-Fi
- Cifra tutto il traffico di rete
I firewall con stato ricordano lo stato delle connessioni aperte invece di giudicare ogni pacchetto isolatamente, il che permette loro di consentire in sicurezza le risposte alle connessioni che hai avviato.
2. Perché il filtraggio in uscita (egress) conta, dato un forte firewall in entrata?
- Non conta se il filtraggio in entrata è forte
- Perché il software già presente sulla macchina ha comunque bisogno di una connessione in uscita per inviare dati fuori o ricevere istruzioni — Esatto.
- Le connessioni in uscita sono sempre sicure
- Conta solo per i server web
Il filtraggio in entrata impedisce alle connessioni non richieste di raggiungere la macchina, ma non fa nulla una volta che qualcosa è già in esecuzione su di essa e cerca di comunicare verso l’esterno.
3. Cosa NON fa il Firewall applicativo di macOS?
- Decidere se un’app possa accettare connessioni in entrata
- Filtrare le connessioni in uscita fatte da un’app — Esatto.
- Funzionare su base per app
- Funzionare senza software aggiuntivo
Il Firewall applicativo è solo in entrata; controllare cosa le app inviano fuori richiede un meccanismo diverso, come uno costruito sul framework Network Extension di Apple.
Mettilo in pratica con FireAI
Metti in pratica questa lezione sul tuo Mac.
- Regole: app, sito, dominio, IP o un intervallo, per sempre o fino al riavvio — Scrivi una regola precisa quanto un solo indirizzo o ampia quanto un intero dominio.
- L’interruttore di emergenza (kill switch) — Taglia il tuo Mac fuori da internet con un clic quando qualcosa ti sembra sospetto.
- Indaga su una connessione — Decidi con i fatti davanti a te, non con un vago avvertimento.
- Attività: ogni app che si è collegata, e una cronologia interrogabile in linguaggio naturale — Vedi ogni app che si è collegata oggi, e agisci su ciascuna con un solo clic.
Fonti
- Cloudflare Learning: What is a firewall?
- Apple Support: Block connections to your Mac with a firewall
- Apple Developer: Network Extension framework
Mettilo in pratica sul tuo Mac
Prova tutte le funzioni gratis per 17 giorni, senza carta.