In un sistema operativo ben progettato con un'adeguata manutenzione, non esiste un processo che funzioni e offra servizi e implichi varie attività, ad eccezione di quelle strettamente necessarie per ciò che l'amministratore di sistema e l'utente intendono che faccia la macchina.
Sfortunatamente, gli OS desktop sono cresciuti oltre il punto in cui una semplicità così efficiente potrebbe essere realisticamente raggiunta. Devi far fronte al sistema operativo, compresi molti elementi e attività non documentati, alcuni dei quali implicano attività di rete, in particolare ascoltare le richieste in arrivo su alcune porte e offrire così un servizio agli estranei. È una buona idea fare un inventario di ciò che è in esecuzione sulla tua macchina e provare a tracciare tali elementi indesiderati (guarda l'elenco dei processi, vedi anche le porte aperte con netstat -a
, e così via).
Tuttavia, è anche una buona idea applicare una rigorosa politica di in / out per tutto ciò che riguarda il networking, nel caso in cui non si effettuasse una pulizia completa. Un firewall è qualcosa che applica questa politica di in / out. Il tuo firewall hardware esterno intrappolerà tutte le attività che lo attraversano ma potrebbe non visualizzare attività correlate alla rete locale (e i sistemi Windows lo fanno molto, con tutti i NetBIOS roba). Un firewall locale , essendo locale, può vedere ogni singolo byte che entra di uscire dalla macchina, quindi è più accurato per rilevare attività indesiderate.
D'altra parte, un firewall esterno sarà più efficiente nel bloccare gli attacchi che mirano direttamente all'implementazione dei protocolli di rete di basso livello; il firewall locale può agire solo dopo che è stato ricevuto il pacchetto IP e alcuni processi si sono già verificati nel kernel del sistema operativo, quindi è un po 'troppo tardi per il tipo di attacco che sfrutta buffer overflow nel kernel. In questo senso, il firewall esterno e il firewall locale si completano a vicenda . Entrambi possono fare cose che l'altro non può, anche se c'è una parziale sovrapposizione nelle loro rispettive funzionalità.