ALP - Aquileia Linux Project

Gruppo Utenti GNU/Linux – Free Software Bassa Friulana
Oggi è 14/11/2018, 16:00

Tutti gli orari sono UTC




Apri un nuovo argomento Rispondi all’argomento  [ 5 messaggi ] 
Autore Messaggio
MessaggioInviato: 01/06/2006, 14:22 
Non connesso
new_entry
new_entry

Iscritto il: 31/05/2006, 9:00
Messaggi: 1
1.Presentazione: cos'è IPFIRE-wall

Il progetto IPFIRE-wall consta di due moduli scritti in linguaggio C: il primo viene eseguito in spazio kernel, mentre il secondo in quello utente. Essi comunicano tra di loro per mezzo dell'interfaccia fornita dai netlink socket. IPFIRE-wall è essenzialmente un filtro di pacchetti di rete ma offre anche funzionalità di traduzione degli indirizzi internet (NAT).

2.Cosa rende IPFIRE-wall particolare.

a) IPFIRE-wall è orientato alla semplicità d'uso: già nella sua attuale interfaccia a linea di comando, ma soprattutto nella prossima realizzazione di un'interfaccia grafica basata sulle librerie QT, si è posto l'accento ad aspetti di interazione uomo-macchina (HCI) che rendono usabile il software anche per utenti meno esperti. Ad esempio, vengono nascosti all'utente finale (a meno che egli non sia l'amministratore) gli aspetti strettamente legati all'iter di un pacchetto IP all'interno del kernel Linux (hook di pre-routing, post-routing, forward, input, output), e al contempo si è cercato di sensibilizzare l'utilizzatore alla comprensione del lavoro svolto dal software, grazie al logging dei pacchetti filtrati assieme all'esito associato a ciascuno di essi, per mezzo della comunicazione attuata attraverso i netlink socket;

b) la politica di gestione delle regole è concettualmente diversa da quella applicata solitamente da parte di molti filtri di pacchetto: esiste un database di regole di negazione esplicita e un altro di permessi espliciti. Il filtro consulta prima le regole di negazione: se ne è presente una per il pacchetto in esame, questo viene immediatamente scartato, altrimenti viene cercata una corrispondenza tra le regole di permesso. Alla fine del percorso, se non viene riscontrata la presenza di una regola esplicita, viene applicata la politica predefinita, di permesso o negazione, a seconda di come viene caricato il modulo nel kernel o mediante l'interazione con un file del file system proc;

c) non solo l'amministratore ha il diritto di creare le regole base per la sicurezza del sistema, ma ogni utente non privilegiato può aggiungere, in coda a quelle di root, le proprie regole, senza ovviamente interferire con quelle del super utente. Con l'avvento dell'interfaccia grafica, sarà possibile anche l'aggiunta dinamica di una regola, ovvero un'eventuale finestra di popup consentirà l'aggiunta al volo di una nuova regola ad hoc per il pacchetto in arrivo o in uscita;

d) è sufficiente aggiungere in un semplice file di testo (o tramite la futura interfaccia grafica) il nome Internet di una macchina remota per bloccare l'accesso ad essa. Infatti un demone figlio del processo principale di IPFIRE userspace si incarica, ad intervalli di tempo regolari, di risolvere i nomi degli host nella blacklist e di aggiornare le regole di negazione esplicita. Si intravvede quindi la facilità di controllo per un genitore che voglia bloccare le connessioni verso siti Internet dai contenuti poco educativi;

e) quanto avviene nel filtro e in fase di NAT viene espresso in modo semplice attraverso l'interfaccia e al contempo su un file di testo, interpretabile a posteriori da un secondo software chiamato analyzer, che, risolvendo i nomi degli host e dei servizi di rete, consente all'utente una immediata ricostruzione del traffico filtrato, insieme a tutti gli esiti dei pacchetti ispezionati.

3.Altre particolarità minori.

a) L'interfaccia fornisce statistiche immediate sull'attività svolta, dal punto di vista del kernel e da quello del lato userspace.
b) Il numero di regole dinamiche gestite dal kernel è configurabile e disponibile per l'utente in modo immediato, così come i timeout applicati a ciascuna di esse. Questo consente il controllo sulla memoria che viene allocata da IPFIRE-wall e la limitazione delle risorse da esso utilizzate, risultando utile nella difesa dagli attacchi di tipo negazione di servizio.
c) Come accennato in precedenza, i privilegi dell'utente non amministratore sono limitati, ma comunque consentono una buona personalizzazione del software.
d) IPFIRE-wall può spedire un'email all'utente a intervalli di tempo regolari, al fine di informarlo sull'operato e sulle statistiche.
e) IPFIRE-wall implementa una semplice macchina a stati per tenere traccia delle connessioni già stabilite, consentendo una rapida introduzione di una nuova regola nel firewall (grazie all'opzione state non serve immettere i campi di una regola e gli stessi invertiti per consentire il traffico bidirezionale).
f) Il software gestisce l'FTP passivo: non è necessario aprire in uscita tutte le porte sopra la 1024 per permettere ai propri utenti il traffico ftp: se una regola è marcata per il supporto ftp, il filtro ispeziona il campo dati del socket buffer e apre momentaneamente le porte correlate alla sessione ftp.
g) IPFIRE-wall possiede un'interfaccia getsockopt() per il recupero degli indirizzi di rete originali, cioè prima della traduzione. Questo consente il funzionamento di applicazioni che fungono da transparent proxy.

4.Perché IPFIRE-wall?

Grazie alle peculiarità descritte in 2. e 3, il software sarà rivolto all'uso desktop, e pertanto anche ad utenti poco esperti. Già con l'installazione di default, è presente una semplice base di dati che dà una protezione base dalle connessioni in ingresso indesiderate.
All'utente non amministratore viene presentata un'interfaccia dall'interazione semplificata, che consente l'uso anche ai non esperti.
Le funzionalità di NAT inoltre, disponibili per l'amministratore, lo rendono utilizzabile anche in scenari un po' più complessi.

1- Avvio.

IPFIRE-wall può essere avviato con numerose opzioni dalla linea di comando (v. http://www.giacomos.it/ipfire/cmdline.html). Esse consentono di scegliere un database di regole di permesso/negazione, il livello di log su console oppure su file, e danno la possibilità di abilitare la risoluzione dei servizi (i numeri di porta sono sostituiti dagli acronimi dei servizi corrispondenti). Questo avviene consultando la lista dei servizi allocata dinamicamente in memoria, per ragioni di efficienza, piuttosto che ispezionando il file /etc/services volta per volta.
L'amministratore ha la facoltà di specificare numerose opzioni, atte a consentire o meno all'utente di popolare il database con le proprie regole, di caricare solo le regole in memoria e poi uscire (lasciando così che l'utente non privilegiato avvii la propria istanza), di rimuovere il modulo all'uscita (importante per non bloccare la rete allo spegnimento del firewall, se la policy predefinita fosse stata quella di negazione). L'amministratore stabilisce quindi anche il livello di comunicazione kernel/user, essendo presente una modalità particolare che, riconosciuti i pacchetti aventi medesimo header, inoltra verso l'interfaccia utente solo quelli non ancora visti. Questo riduce drasticamente il traffico attraverso il socket netlink per il dialogo utente/firewall (http://www.giacomos.it/ipfire/logging.html).
Un aspetto importante concerne la possibilità di poter installare uno script che viene eseguito all'avvio del sistema e che, impostati i parametri cruciali, lascia l'opportunità a ciascun utente di utilizzare IPFIRE-wall.

Le procedure di inserimento e rimozione delle regole avviene per mezzo di procedure guidate.
I pacchetti marcati in viola (primo campo a sinistra) sono quelli privi di riscontro nella base di dati: ad essi viene applicata la politica di default, secondo quanto stabilito in /proc/IPFIRE/policy. I pacchetti contrassegnati in verde sono invece accettati, e il numero corrispondente rappresenta la posizione della regola nelle liste del kernel. La 'X' rossa rappresenta invece pacchetti esplicitamente scartati.
Un aspetto interessante è la presenza di un campo di caratteri che riporta un semplice nome che l'utente assegna ad una regola nel momento in cui egli la aggiunge alla base di dati: in questo modo è semplice ricordare il significato di una regola, senza doverlo ricercare tra i campi dei pacchetti. Inoltre, per le connessioni bloccate per mezzo dei nomi host dei siti web, il nome riportato è automaticamente costituito dai primi venti caratteri del nome Internet dell'host proibito, così da rendere immediata l'associazione della regola all'esito dei pacchetti interessati.
Il firewall supporta l'FTP passivo.
IPFIRE-wall possiede alcuni file di configurazione propri di ciascun utente,e di norma presenti nella sottocartella IPFIRE della home.
Essi sono sufficientemente auto esplicativi.
Aspetti di programmazione.

1.Spazio kernel.

Si possono approfondire i seguenti temi:
a) header dei pacchetti e loro rappresentazione in kernel space (struct sk_buff);
b) contesto di esecuzione delle routine di rete (softirq in local input e forward, kernel on behalf of user process in local output [...]) e problemi connessi alla protezione delle strutture dati condivise;
c) kernel timers: inizializzazione, aggiornamento, timeout, assegnazione di un timer a una struttura dati;
d) liste doppiamente collegate: aggiunta di entry, rimozione, consultazione della lista tramite macro;
e) netlink socket: allocazione in kernel space e dialogo con lo spazio utente;
f) registrazione di un'interfaccia getsockopt();
g) registrazione di una funzione presso gli hook di netfilter;
h) lettura e scrittura di file tramite l'interfaccia /proc.


ORGANIZZAZIONE DEL PROGETTO


http://www.giacomos.it/ipfire/kstopics.html

i) flusso dei pacchetti attraverso il kernel linux,
http://www.giacomos.it/ipfire/kflow.html.

2.Spazio user.

Si possono approfondire i seguenti temi:

a) in relazione al punto e) precedente, ricezione di dati dallo spazio kernel via netlink socket. In proposito, è disponibile un'interfaccia che innalza il livello di programmazione per chiunque volesse scrivere codice per la comunicazione sistema-utente (libnetl.c);
b) libreria per l'input non bufferizzato, (g_getcharlib.c), per la cattura non bufferizzata dei caratteri di controllo e di funzione della tastiera, oltre ai tasti standard;
c) altri oggetti della programmazione standard: segnali, pipes, programmazione di rete: indirizzi di rete, indirizzi dei servizi (porte), flag per il controllo della connessione nel protocollo tcp connection oriented...

http://www.giacomos.it/ipfire/usertopics.html

_________________
. '' `.
: :' :
`. ` '
`- Debian GNU/Linux -- The power of freedom
http://www.debian.org
Try IPFIREwall http://www.giacomos.it/ipfire


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 02/06/2006, 9:37 
Non connesso
pinguino_imperatore
pinguino_imperatore
Avatar utente

Iscritto il: 17/05/2005, 8:05
Messaggi: 178
Località: Aquileia
A questo punto invito gigabytes, ormai noto sviluppatore kde :), a lavorare, se nelle sue possibilità di tempo, all'interfaccia QT4 per ipfire-wall, vista ormai la sua comprovata abilità con queste librerie.

Mandi.


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 02/06/2006, 10:35 
Non connesso
pinguino_semplice
pinguino_semplice

Iscritto il: 27/11/2004, 20:26
Messaggi: 32
Località: Udine
Bella idea riky :D
Chi è l'autore dell'attuale interfaccia? forse basta solo qualche piccola patch.


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 02/06/2006, 10:37 
Non connesso
pinguino_semplice
pinguino_semplice

Iscritto il: 27/11/2004, 20:26
Messaggi: 32
Località: Udine
Ah non avevo letto bene, l'interfaccia QT è in previsione.
Ok se posso aiutare, lo faccio volentieri.


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 02/06/2006, 11:05 
Non connesso
slacker
slacker
Avatar utente

Iscritto il: 07/10/2004, 12:41
Messaggi: 1296
Località: Terra - Italia - Friûl - Udine
hola nicola :D
Abbiamo scovato qualcosa che interessa a gigaBytes :D

Se ne vedranno delle belle :mrgreen:

mi sa che questo thread lo terro in testa per un bel po :)

:tux:
:ciauz:

_________________
Devo Proprio? pare di si :)


Top
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 5 messaggi ] 

Tutti gli orari sono UTC


Chi c’è in linea

Visitano il forum: Google [Bot] e 0 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduzione Italiana phpBBItalia.net basata su phpBB.it 2010
[ Time : 0.084s | 14 Queries | GZIP : Off ]