Questo perché c'è sempre la paura che alcuni servizi si attivino all'insaputa dell'utente e facciano in modo che il proprio pc e i suoi dati sensibili possano essere esposti alla rete.
Nei sistemi GNU/Linux il firewall ritorna ad essere lo strumento da utilizzare nel caso l'utente decida d'installare programmi per mettere a disposizione servizi dal suo pc verso altri pc con regole ben precise.
Per l'utilizzo desktop così come lo troviamo per predefinito su Ubuntu, escludendo alcuni casi specifici, si può affermare che il firewall sia spesso superfluo.
Le principali vie del traffico di rete sono in entrata e uscita. Più nello specifico il traffico è costituito da:
- Connessioni in entrata
- Connessioni in uscita
Per chiarire queste differenze : INPUT, OUTPUT e FORWARD termini fondamentali per capire quale è il compito di un firewall all'interno di una rete, sia preso come esempio un singolo pc connesso ad una rete più o meno grande (che può essere anche tutta internet).
È possibile pensare al funzionamento della propria rete come a una serie di tubi lungo la quale l'acqua si muove solo in una direzione.
Esisterà un flusso di dati in entrata nel pc e un flusso di dati uscenti.
Dati in entranta: ottenuti dall'esterno visualizzando una pagina web, oppure scaricando un file.
Dati in uscita: informazioni spedite dal nostro pc come: una e-mail, una richiesta di accesso ad una pagina web, etc...
Per le connessioni invece il discorso è diverso. Mentre i dati grezzi viaggiano secondo le direttive precedentemente esposte, la logica che sta dietro a questi movimenti funziona in modo leggermente differente.
Sia preso ad esempio il caricamento di una pagina web.
Digitando un indirizzo nella barra del nostro browser, viene messa in moto una serie di meccanismi che portano alla serie di dati uscenti (la richiesta della pagina) ed entranti (i dati della pagina) che fanno parte tuttavia di un'unica connessione.
Dal momento che la richiesta iniziale che genera il traffico di dati parte dal nostro pc, tale connessione viene detta connessione in uscita.Digitando un indirizzo nella barra del nostro browser, viene messa in moto una serie di meccanismi che portano alla serie di dati uscenti (la richiesta della pagina) ed entranti (i dati della pagina) che fanno parte tuttavia di un'unica connessione.
Le connessioni in uscita rappresentano
praticamente la totalità delle connessioni effettuate da un comune pc
preposto alla navigazione, alla spedizione/ricezione delle e-mail,
etc...
Per continuare con lo stesso esempio, sia considerato ora un server che ospita una pagina web.
Su questo pc gira un programma detto server (tipicamente Apache su macchine Unix) che si prende l'incarico di accettare le richieste di connessione provenienti dai pc che navigano in internet e fornire loro la pagina web desiderata ospitata localmente.
Su questo pc gira un programma detto server (tipicamente Apache su macchine Unix) che si prende l'incarico di accettare le richieste di connessione provenienti dai pc che navigano in internet e fornire loro la pagina web desiderata ospitata localmente.
In questo caso la richiesta iniziale che genera il traffico di dati parte da un altro pc. Quindi la connessione viene definita connessione in entrata.
I pc adibiti a questo utilizzo server sono
solitamente riservati ad un utilizzo professionale, tuttavia anche nei
pc di molti utenti si trovano programmi che fanno cose simili. Ad
esempio i programmi p2p funzionano come dei veri e propri
server, ascoltando le richieste degli altri utenti della rete
interessati ad un file ospitato sul proprio hard disk.
Dal momento che un pc può ospitare innumerevoli programmi server, è previsto che ciascun programma si metta in ascolto su una diversa porta, il cui numero va da 1 a 65535.
Qualsiasi richiesta di connessione deve specificare, oltre all'indirizzo ip del server, anche la porta a cui ci si connette. I browser tipicamente si connettono alla porta 80, quella dove si mettono in ascolto i server web. Nella tabella vengono riportati alcuni esempi:
Qualsiasi richiesta di connessione deve specificare, oltre all'indirizzo ip del server, anche la porta a cui ci si connette. I browser tipicamente si connettono alla porta 80, quella dove si mettono in ascolto i server web. Nella tabella vengono riportati alcuni esempi:
Porte standard
|
||||
HTTP
|
SSH
|
FTP
|
Telnet
|
HTTPS
|
80/tcp
|
22/tcp
|
21/tcp
|
23/tcp
|
443/tcp
|
Per avere un elenco completo delle porte standard consultare la seguente pagina.
Le porte dalla 1 a 1024 sono tutte standardizzate e sono dette porte privilegiate. Il programma che ascolta su una di queste porte deve per forza avere i permessi di root.
Le porte sopra la 1024 vengono
usate dai programmi server lanciati dagli utenti normali, come ad
esempio i programmi p2p (ciascuno usa specifiche porte sopra la 1024).
Ci sono anche alcuni computer che fanno qualcosa di ancora diverso. I
router, ad esempio veicolano le connessioni in entrata su una presa
(Internet) verso i pc della rete interna (LAN) e viceversa. Questo
"passaggio di mani", senza che venga fatto niente con i dati in
transito, si chiama forwarding, e le connessioni di questo tipo si dicono connessioni di forward.
Capire la differenza e il funzionamento di queste connessioni INPUT, OUTPUT e FORWARD, è utile per capire poi il funzionamento della rete e le regole dei firewall, che altro non sono che strumenti avanzati per manipolare le connessioni del proprio pc.
Gli applicativi installati in modo predefinito nella versione Desktop di Ubuntu sono pensati essenzialmente per consentire di uscire su internet alla ricerca di informazioni, file o quant'altro, piuttosto che per accettare connessioni in entrata dall'esterno.
I programmi che accettano connessioni dall'esterno sono detti server. Questa categoria comprende per fare alcuni esempi i server web che ospitano le pagine HTML, oppure i server ssh o telnet, i quali consentono l'apertura di una shell su di un pc remoto.
Nella versione Desktop di Ubuntu sono presenti alcuni server, ma volti principalmente all'utilizzo delle periferiche hardware come X (grafica video), cups (stampa), sane (scanner), ecc.., di default chiusi verso connessioni esterne.
Chiunque desideri offrire un servizio di rete ad utenti remoti deve necessariamente installare un apposito programma server sul proprio pc; questo programma si mette in ascolto su una porta, e tutte le connessioni INPUT entranti si connettono a questa porta per entrare in comunicazione con il server.
Non è possibile connettersi da remoto ad un pc se non c'è almeno un
server in ascolto su una qualsiasi porta. Per fare un esempio banale è
come bussare ad una casa disabitata: nessuno verrà ad aprire.
I server menzionati in precedenza (tipo web, ssh, telnet..)
di default non vengono installati, pertanto è perfettamente inutile
installare un firewall per regolamentare l'accesso a porte sulle quali
nessun programma è in ascolto (come avere un poliziotto in un quartiere
deserto).
Anche nel caso in cui si installi esplicitamente un programma server, come ad esempio tutti i programmi p2p
è ancora inutile utilizzare un firewall allo scopo di chiudere le
porte. Difatti questo avrebbe il solo scopo di impedire ai server
installati di accedere alla rete e compiere il loro dovere!
Solitamente gli utenti di Windows sono abituati ad utilizzare un firewall, questo sostanzialmente per due motivi:
Windows tende ad effettuare molte operazioni
all'insaputa dell'utente, e di default ha attivi molti server in ascolto
sulla rete (connessioni INPUT). Visto che le porte di questi server
sono, per ovvi motivi, quelle più attaccate dai bot automatici
su internet, molti utenti cercano un minimo di sicurezza impedendo
l'accesso dall'esterno a questi server che non è possibile
"disattivare" o "disinstallare".
Non solo Windows agisce come server all'insaputa
dell'utente, ma spesso si connette automaticamente ad internet per
eseguire operazioni poco chiare. Inoltre molti virus o spyware cercano
automaticamente di connettersi all'esterno per eseguire i loro loschi
compiti. Per questi motivi gli utenti di Windows sono
soliti tenere sotto controllo anche le connessioni in uscita (OUTPUT),
visto che la natura closed-source del loro sistema operativo e la sua
naturale tendenza ad essere infettato da tutto e tutti lo rendono privo
delle necessarie garanzie di trasparenza su cui fare affidamento.
Nel primo caso spesso il firewall integrato nella maggior parte dei router è sufficiente a bloccare il traffico in entrata.
Mentre nel secondo caso per tenere a bada le connessioni "indesiderate" in uscita, risulta più agevole l'utilizzo di un firewall installato sul sistema operativo stesso.
Mentre nel secondo caso per tenere a bada le connessioni "indesiderate" in uscita, risulta più agevole l'utilizzo di un firewall installato sul sistema operativo stesso.
I vantaggi di GNU/Linux sotto questi aspetti sono
piuttosto evidenti. Il sistema non effettua alcuna operazione sospetta o
nascosta all'utente e proprio per la sua natura opensource (e
quindi di trasparenza), eventuali comportamenti anomali sarebbero
facilmente individuabili dalla comunità che lavora al suo sviluppo.
Inoltre la sua proverbiale
immunità ai virus fa sì che le sue connessioni in uscita siano
considerate con abbondanti margini sicure.
Molti utenti di internet si trovano già ad usufruire, anche inconsapevolmente, degli effetti di un firewall.
Ad esempio i router
che la maggior parte degli utenti usano per connettersi tramite una
connessione ADSL, integrano nella maggior parte dei modelli un firewall
(in genere basato su Iptables, incluso nelle distribuzioni Linux-embedded contenute nella maggior parte dei router).
In genere di default i firewall dei router bloccano tutte le connessioni
in entrata ma permettono quelle in uscita, pertanto interferiscono solo
con il funzionamento dei programmi server. La maggior parte degli utenti si rende conto di essere dietro ad un firewall quando prova ad usare programmi p2p (come ad esempio Amule) e scopre che non funzionano correttamente, oppure vanno a rilento.
Il firewall incluso in questi dispositivi ha effetto su tutti i pc che
vi si connettono, pertanto a meno che non ci sia la necessità di
configurazioni particolari, risulta inutile configurare un firewall
diverso su ciascun dispositivo. Oltre che ridondante come soluzione vi è
il rischio di eccessive complicazioni.
Occorre ricordare che il firewall, ancor prima che un vero e proprio dispositivo di sicurezza (tipo gli antivirus, antispyware...), è uno strumento per regolare il traffico di rete.
Il suo utilizzo può entrare in gioco quando dalla propria macchina c'è
la necessita di mettere "qualcosa" a disposizione di altri pc e a
seconda dei casi quando occorrono delle regole ben precise sul "come"
regolare il relativo traffico di rete.
Può essere necessario quando occorre condividere una connessione ad
internet. In questo caso saranno proprio le regole per le connessioni di
FORWARD che permetteranno ad un altro pc di sfruttare la connessione ad
internet.
A volte si tratta di mettere a disposizione dati o servizi dal proprio
pc, ma solo verso uno o un solo gruppo di pc presente in una rete. Le
regole del firewall possono venire incontro a queste esigenze, tuttavia
vale la pena ricordare che a seconda dei casi alcuni software offrono
dei tool che possono o rendere non necessario l'uso del firewall o
comunque essere preferiti a quest'ultimo. In questo caso Samba, software per la condivisione di file noto anche all'utenza desktop ne è un buon esempio.
In alcune configurazioni il firewall potrebbe ancora essere utile come
strumento per ottimizzare la banda in entrata/uscita ed effettuare
quello che viene comunemente detto traffic shaping, tuttavia questo genere di configurazioni sono solitamente molto complesse, e fuori dalla portata dell'utente comune.
In definitiva i casi in cui anche in ambiente desktop si arrivi ad
utilizzare il firewall possono sussistere. È comunque evidente come la
casistica sia piuttosto ristretta.
Nessun commento:
Posta un commento
Non sei daccordo? Dite la Vostra...