Sign in to follow this  
hany

Il firewall di Mac OS X... IPFW è morto. Viva PF.

Recommended Posts

Forse qualcuno saprà che dalla versione 10.7 di OS X il firewall IPFW è stato "deprecato", ossia messo in una sorta di quarantena in attesa di venire eliminato (molto probabilmente) dalla prossima release di Mac OS X (10.8). Pur essendo (quasi) perfettamente funzionante, esso è stato sostituito (tecnicamente parlando, per ora, è stato "affiancato") da PF. PF è un firewall molto più sofisticato di IPFW, viene direttamente da OpenBSD. L'implementazione Apple di PF (ovviamente) è particolare. PF è usato in modo dinamico da OS X: ad esempio abilitando la condivisione internet, airdrop, oppure la funzione "stealth" delle Preferenze di Sistema in realtà OS X abilita alcune regole di PF. PF si configura da linea di comando, come IPFW. Tuttavia la sintassi e soprattutto la logica di funzionamento dei due firewall è molto diversa.

Ho sviluppato per anni WaterRoof, una applicazione (gratuita e open source) che semplifica la configurazione di IPFW. Ora ho iniziato lo sviluppo di IceFloor, che non è altro che un'interfaccia grafica (frontend) per il nuovo firewall PF. Anche questa applicazione è gratuita e open source. Se qualcuno vuole partecipare allo sviluppo o è interessato in qualche modo può contribuire. Critiche, consigli, idee e contributi in forma di codice sono benvenuti. Ho appena rilasciato la prima versione pubblica, è la 1.0 beta 1. Potete scaricarla liberamente (inclusi i codici sorgenti in formato xcode3) dal mio sito personale .:h4nyn3t:..

Grazie!

Hany

Share this post


Link to post
Share on other sites

Grazie.

Uso già da tempo WaterRoof, è un'ottima applicazione.

Vorrei alcuni chiarimenti.

Se scarico ed uso IceFloor, questo va ad interferire con il Firewall di default o WaterRoof?

IceFloor è una beta, ti risultano problemi di instabilità o disfunzioni negli upload e download tramite ftp o nell'uso di uploader propri dei CMS su server remoti Linux?

Share this post


Link to post
Share on other sites

Grazie.

Uso già da tempo WaterRoof, è un'ottima applicazione.

Vorrei alcuni chiarimenti.

Se scarico ed uso IceFloor, questo va ad interferire con il Firewall di default o WaterRoof?

IceFloor è una beta, ti risultano problemi di instabilità o disfunzioni negli upload e download tramite ftp o nell'uso di uploader propri dei CMS su server remoti Linux?

Grazie a te :)

allora... per rispondere alla tua domanda purtroppo devo dilungarmi un po', spero di non annoiarti :)

Su Lion ci sono non uno, non due, non tre ma TRE FIREWALL EMMEZZO! Mi spiego...

1) IPFW , e' il firewall di FreeBSD, presente su osx dalla versione 10.0DP3, quindi potremmo dire "da sempre". E' un network firewall, ossia riconosce indirizzi IP e porte e permette di bloccare selettivamente il traffico di rete. WaterRoof è una interfaccia grafica usata per configurare appunto IPFW, cosa che potresti tranquillamente fare a mano col terminale. IPFW in Lion e' "deprecated" che in "apple slang" significa "c'e' ancora, funziona, ma presto lo toglieremo da osx, quindi potete usarlo ma fareste bene ad abituarvi al suo sostituto, pf."

2) PF, è il firewall di OpenBSD, molto più potente e sofisticato di IPFW, e' un network firewall anche lui, come IPFW si configura da linea di comando. IceFloor è (sarà..) una interfaccia grafica per velocizzare questa operazione di configurazione. L'implementazione di PF di apple è diversa da quella di OpenBSD. PF su osx viene (dovrebbe essere) usato "dinamicamente" dalle applicazioni, stando ai commenti che si leggono nei file di configurazione di osx. In realtà' può anche essere usato nel modo "classico", come su openbsd. E' complicatissima 'sta cosa. Aggiungiamo che per ora pf su osx fa schifo: manca il traffic shaping (ALTQ) che permette la gestione della banda, e causa kernel panic usando la funzione synproxy... insomma è un parto difficile.

3) ALF, è l'application layer firewall, quello che si configura dalle "Preferenze di Sistema". Lavora a livello di applicazioni e non di network nel senso che le regole si applicano in modo specifico al traffico generato da/per una specifica applicazione.

3,5) In Lion ALF si comporta diversamente dalle precedenti release di osx, infatti per alcune sue funzioni usa PF, per altre no. Ad esempio abilitando la modalità stealth, ALF non farà altro che attivare due regole di PF su una anchor (=contenitore di regole) dedicata. Idem per airdrop e condivisione internet.

IPFW e PF, di fatto, possono lavorare insieme. Di conseguenza IceFloor e WaterRoof possono lavorare insieme. Ed entrambi, è previsto da osx, lavorano insieme ad ALF. Una connessione sarà quindi possibile solo se NESSUNO DEI TRE la blocca, semplice. Cioè.. quasi semplice :)

Seconda risposta: la possibilità di effettuare o meno connessioni (FTP o qualsiasi altra cosa) dipende esclusivamente da IPFW, PF e ALF. IceFloor è in beta e questo sicuramente limita la possibilità di configurare PF usando l'interfaccia grafica, ma non influisce in alcun modo sul fatto di poter configurare pf da terminale, contemporaneamente. IceFloor per ora è molto limitato, è più che altro un proof of concept. Ma ciò che fai con IceFloor (o con qualsiasi altro frontend per pf o ipfw) può sempre essere "corretto" o "ottimizzato" a mano, col terminale. Anzi, è buona norma farlo sempre. Io ho creato WaterRoof per "imparare" ipfw, solo dopo è diventato quello che è. IceFloor nasce per la mia necessità di imparare pf, e piano piano spero riuscirò a renderlo pratico e utile. Entro la settimana rilascerò la beta2, già molto più funzionale allo stato in cui si trova oggi.

Il grosso problema, per ora, è che sembra PF ad essere in beta :) Nonostante i tanti problemi, nell'uso di PF non ho comunque riscontrato nessuno dei problemi di cui hai parlato.

Scusa sono stato un po' lungo...

ciao!

Share this post


Link to post
Share on other sites

Veramente interessante la questione.

Soprattutto perché è da poco che ho cominciato ad interessarmi al problema dei firewall, come misura di difesa nei siti dove il server è gestito.

Prima era solo una sorta di on-off, al massimo mi ero spinto a cose come LittleSnitch.

Che poi in pratica mi davano più problemi che benefici in caso di cattiva impostazione.

Aspetto con piacere la versione completa di quello nuovo

Share this post


Link to post
Share on other sites

LittleSnitch è molto comodo ma bisogna saperci convivere...

Le cose su 10.8 sembrano cambiate... ora PF è abilitato di default e deve essere disabilitato (pfctl -d) perché IPFW funzioni. Il traffic shaping di IPFW è definitivamente morto, quello di PF non è ancora stato implementato... è una preview, speriamo la cosa migliori. Le applicazioni applescript studio funzionano ancora, per ora :) :)

Share this post


Link to post
Share on other sites

Vorrei segnalarvi che ho postato l'ultima versione beta di IceFloor.

L'applicazione ora è completa e permette la configurazione del firewall PF con pochi click partendo da un'interfaccia molto semplice e (spero) chiara. E' inoltre possibile aggiungere regole o anchors manualmente, visionare i log di pf, le statistiche, ecc ecc.

Richiede osx 10.7.3; non compatibile con osx 10.7 server (che come firewall di sistema usa ipfw e non pf.)

Naturalmente è free e opensource, i sorgenti sono a vostra disposizione per il download, così come l'applicazione, sul mio sito personale .:h4nyn3t:.

Per ora è tutto in inglese, inclusa documentazione (inglese un po' povero tra l'altro:D)

Ho ricevuto alcuni feedback da utenti del forum... grazie mille :)

critiche, consigli e contributi sotto forma di codice sono molto ben accetti :)

Share this post


Link to post
Share on other sites

Grazie molte hany per la tua prolissa quanto interessante descrizione, e soprattutto grazie per icefloor.

Vorrei chiederti se l'uso di little snitch assieme ad icefloor è sensato, e soprattutto se non rallenta il sistema (l'uso simultaneo intendo).

Ciao e grazie di nuovo.

Share this post


Link to post
Share on other sites

Grazie molte hany per la tua prolissa quanto interessante descrizione, e soprattutto grazie per icefloor.

Vorrei chiederti se l'uso di little snitch assieme ad icefloor è sensato, e soprattutto se non rallenta il sistema (l'uso simultaneo intendo).

Ciao e grazie di nuovo.

Non so risponderti io se è sensato l'uso di più firewall, credo di no.

La risposta competente spetta a Hany.

Ma comunque un firewall non può rallentare il sistema

Share this post


Link to post
Share on other sites

Utilizzare contemporaneamente un application firewall (LittleSnitch o altro) e un network firewall (PF o altro) può avere senso. Lo ha per Apple che da anni "usa" (nel senso che consente, di fatto, di usare) contemporaneamente i due tipi di firewall su Mac OS X a partire dalla versione 10.5.

Application firewall e Network firewall sono due cose diverse, fanno cose diverse. Sono due diversi sistemi per filtrare le connessioni tcp/ip da/per il tuo mac. La necessità di utilizzare uno, l'altro o entrambe dipende dal tipo di uso che si fa del mac e dall'ambiente in cui si trova. Perciò non esiste una risposta secca. Posso dirti una cosa: la prima causa di vulnerabilità è la complessità, quindi se vuoi mantenere un sistema con 2 firewall deve "valerne la pena". Se puoi ottenere lo stesso "livello di protezione" usando un solo firewall è meglio. Ma qui scendiamo a livello di opinione, e in ogni caso il "livello di protezione" non è un valore finito e conoscibile, quindi... valuta tu.

Un firewall configurato a dovere in genere non rallenta un sistema. Un firewall sovraccarico potrebbe al limite alzare la latenza e/o mandare in timeout alcune connessioni. Esiste anche un caso limite (dal punto di vista dell'amministratore è una vulnerabilità) che consente di bloccare un sistema su cui giri un applicativo firewall, ma è facile prevenirlo.

Il punto è che l'implementazione di PF su OSX è piuttosto acerba, quindi la vera domanda è:

in quale contesto, su Lion, ha più senso usare PF invece che IPFW?

Sto tenendo traccia dei vari kernel panic, presto avrò la risposta :)

grazie a tutti

ciao

Share this post


Link to post
Share on other sites

Hany, comincio l'intervento facendoti i complimenti per lo sforzo che stai facendo per WaterRoof/IceFloor... bravo bravo bravo...

Detto ciò... io sono un tecnico informatico che dopo una 20ina d'anni di Winzoz (sia a livello personale e sia a livello di supporto ai clienti), è passato ad un fiammante macbook pro 15"... incontrando ahimè, ora che mi sto addentrando un pochetto più nell'ambito sistemistico delle reti, i primi problemi.

Uno dei primi problemi è stato il discorso firewall bi-direzionale...

Con Windows, lasciando perdere lo scarso Windows Firewall, ho sempre lavorato con Norton Internet Security, Comodo o Zone Alarm che mi davano alcune importanti possibilità:

1) abilitare o no un sw della mia macchina alla connessione a internet (per bloccare ad esempio l'auto-aggiornamento di un programma)

2) permettere o no la rilevazione della mia macchina dalla rete alla quale sono connesso (ad esempio bloccare, conoscendo l'IP, il ping alla mia macchina o non renderla visibile a un broadcast o a un ipscan...)

3) creare una sorta di "white list" di IP - o range di IP - sicuri (vedere qui http://taison.altervista.org/immagini/za_agg.JPG )

Il primo problema l'ho risolto con i sw Little Snitch o Hands Off!... esso però viene pubblicizzato come migliore di Little Snitch per la sua "Blocks incoming/outgoing network connections" quando, dai miei test, non noto nessun "Blocks INCOMING network connections"... qualcuno di voi l'ha provato e me ne da conferma?

Il secondo problema pensavo di risolverlo appunto con Hands Off! ma niente... il mio mac continua a essere visto dalla rete nonostante Hands Off! che dovrebbe bloccare le connessioni in ingresso (via ping/icmp il mio mac continua a essere visto...); l'unico modo che ho trovato per bloccare il ping da parte di altri pc della rete (e quindi non permettere al mio Mac di essere visto) è stato quello di abilitare il firewall di Lion seguito dall'attivazione della modalità Stealth... ma come giustamente parlavate qui... non ha molto senso usare 2 firewall insieme (Hands Off! per gestire i SW che si connettono a internet e il firewall di Lion per rendere invisibile la macchina dalla rete)... addirittura leggevo che su Lion lavorano insieme IPFW, PF e ALF... e quindi siamo a 4 firewall... :confused::confused::confused:

Come mi muovo?

Infine, non ho ancora avuto tempo di documentarmi, come risolvo il terzo problema?

Grazie infinite a chi mi potrà dare una mano...

Ken

Share this post


Link to post
Share on other sites

Ciao Ken, grazie per le tue parole di apprezzamento e supporto :) E' davvero raro sentirle nella mia lingua, la maggior parte (99,99%) dei feedback su WaterRoof negli ultimi 6 anni è arrivata in inglese, francese, tedesco, cinese, giapponese... ma molto poco in tricolore, ahimè :)

1)Little Snitch, Hands Off e il firewall integrato nelle preferenze di sistema di Mac OS X (dalla 10.5 in poi) sono APPLICATION FIREWALLS. Controllano le comunicazioni di rete dal punto di vista delle applicazioni: riconoscono quale applicazione fa traffico su rete e ti consentono di bloccarle o farle passare. Se il tuo scopo è monitorare il traffico di applicazioni specifiche allora hai scelto bene. Ad esempio potresti bloccare i banner in entrata, o la comunicazione di "statistiche di utilizzo" in uscita. Così' come potresti bloccare accesso ad alcuni siti usando un browser ma lasciarli accessibili da un altro browser. Eccetera. Lo scopo degli application firewall è controllare il traffico specifico effettuato da un'app, e quindi in particolar modo il traffico in USCITA. Il fatto che possano controllare il traffico in entrata è secondario e a volte opzionale.

2)La rilevazione di una macchina in rete (LAN) può avvenire in molti modi, non solo usando ping (ICMP). Nascondere una macchina dalle altre della LAN può essere complicato, dipende anche dall'infrastruttura (switch/hub e protocolli usati).

L'opzione che hai trovato (stealth mode, che come nome suona un po' di supercazzola, ma fa niente) è niente meno che un semplice filtro sul protocollo ICMP. Che tu lo filtri con IPFW, con PF, con un altro network firewall o con un application firewall come ALF (quello integrato di OSX che si setta dalle preferenze di sistema, ossia quello che hai usato tu) cambia poco. Semplicemente si dice alla macchina di non rispondere alle richieste di echo ICMP. Non c'e' un modo corretto per farlo, basta farlo :)

E' un modo rozzo di nascondersi: è "security through obscurity". E' come se tu dipingessi la porta di casa con il colore del muro sperando che nessun ***** la noti :) Rozzo ma efficace, se unito ad altri sistemi di protezione E controllo.

3)White list... non saprei sinceramente non potrei mai fidarmi di una istituzione terza che mi fornisce un elenco di IP indesiderati... gli IP possono cambiare, le persone si spostano... i bot anche. Non so, non la vedo come una soluzione praticabile.

IPFW, PF, ALF sono integrati in OSX. Little Snitch e HandsOff sono software di terze parti. Non esiste una regola precisa che ci dica quale soluzione sia la migliore.

Dalla mia esperienza la soluzione più logica per un firewall integrato al S.O. risponde alle seguenti caratteristiche:

a) funziona

b) mi ricordo come configurarla

c) non mi costringe a controllare ogni giorno se ci sono update di vari sw di terze parti.

Indipercui, se ti trovi bene usando LittleSnitch e le sue notifiche, allora bene, continua a usarlo! Se però la parte di filtro ICMP devi attivarla su ALF (preferenze di sistema) allora nessun problema, fallo pure. Usare più software firewall insieme non è per forza complicato, se si sa cosa si fa. Mi è molto difficile entrare più nello specifico del tuo caso. Molto dipende dalla configurazione della tua rete e da cosa ci fai.

Come al solito sono stato lungo e forse poco chiaro ma la materia, almeno per me, è di una complicazione allucinante ed è davvero complicato scriverne: nella testa ho tutto chiaro e limpido, ma quando si tratta di mettere giù parole è davvero complicato. Spero di esserti stato d'aiuto, naturalmente sono a tua completa disposizione. Ciao!

Share this post


Link to post
Share on other sites

Vi segnalo che IceFloor 1.3 è ora disponibile.

L'applicazione è stata completamente ridisegnata e arricchita di moltissime opzioni fra le quali la configurazione di NAT e port forwarding e l'uso di Emerging Threats per bloccare gli host più pericolosi.

Ovviamente è gratuito e open-source. Potete scaricarlo dal mio sito hanynet.com.

ciao!

hany

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this