Gui e configurazione di Firewall Builder
In questa sezione, analizzeremo dapprima la GUI di FWBuilder e poi passeremo alla configurazione vera e propria delle politiche di sicurezza che permetteranno al nostro sistema di essere il meno vulnerabile possibile.
La finestra principale è divisa in due parti: l’albero degli oggetti e l’area di dialogo. Un oggetto selezionato nell’albero è evidenziato in blu ed è mostrato nella finestra di dialogo che si trova nella parte destra della finestra principale. Si può creare più di una finestra principale usando il menu principale"File"/"New Window". Tutte le finestre sono sincronizzate e lavorano sullo stesso albero degli oggetti. Le modifiche fatte su un oggetto in una finestra si riflettono immediatamente in tutte le altre finestre in cui esso è visibile, sia nell’albero che nella finestra di dialogo. Tra finestre differenti è inoltre possibile usare operazioni di Drag and drop e Copia/Incolla.
La finestra principale di Firewall Builder
“Options” della GUILe opzioni personalizzabili della GUI, sono raggruppate nella finestra di dialogo "Options" cui si può accedere mediante il menu principale "Edit/Options":
Le Options della finestra di dialogo della GUI
Vediamo in dettaglio, le singole opzioni modificabili dall'utente:
General/ Paths > Working directory
Questa opzione definisce la directory di lavoro del programma in cui salvare i file di configurazione o gli script
GUI / Object Tooltips
Il firewall può mostrare le proprietà dell'oggetto in una finestra pop-up rapida (questa caratteristica è denominata spesso "tooltip") quando l'utente dispone il cursore del mouse sopra un oggetto rappresentato da un icona. Questo è un modo rapido e conveniente per controllare le proprietà dell'oggetto senza dovere aprire altre finestre di dialogo.
GUI / Tree View
Gli oggetti in Firewall Builder possono essere organizzati in librerie differenti: solitamente ci sono almeno due librerie: "User" e "Standard". La GUI può rappresentare gli oggetti in un unico grande albero, o in un albero separato per ogni libreria.
Analizziamo ora la struttura ad Albero con cui Firewall Builder gestisce le operazioni sugli oggetti:
La Struttura Standard dell’Albero
L'oggetto albero permette di organizzare tutti i tipi di oggetti in una gerarchia. Il ramo "Objects" contiene i tipi corrispondenti agli oggetti della rete: host, spazi di indirizzi, reti, etc. Il ramo "Services" contiene invece tutti gli oggetti relativi ai servizi di rete: ICMP, IP, TCP, UDP, etc.
Gli oggetti standard rappresentano oltre 100 dei protocolli e dei servizi usati più di frequente. Dividere l'albero degli oggetti in "librerie" non solo è un modo funzionale di ordinare gli oggetti, ma nello stesso tempo permette di tenere sotto controllo tutte le opzioni relative ai singoli oggetti configurati in precedenza.
Oggetti Standard
Tutti gli oggetti visibili all'utente hanno alcuni campi editabili in comune, quali il nome e il commento. Il nome dell’oggetto può contenere spazi bianchi e può essere arbitrariamente lungo. Il commento può contenere testo di qualunque lunghezza.
L'oggetto host nel Firewall Builder è progettato per rappresentare gli host reali nella rete: workstation, server e qualunque altro nodo di rete con un indirizzo. Proprio come gli host reali, gli oggetti host hanno interfacce che rappresentano le differenti connessioni fisiche alla rete. Per ogni oggetto host appena creato, Firewall Builder assegnerà un nome arbitrario "interface1" all'interfaccia dell'host, che sarà comunque possibile rinominare in seguito.
Usando una gerarchia ad albero del tipo host - > interface - > address è possibile specificare l'indirizzo esatto e/o l'interfaccia di un host quando serve. Sia le interfacce che gli indirizzi sono rappresentati da oggetti, che sono organizzati in un albero. Gli oggetti interfaccia risiedono nell'albero direttamente sotto l'host e gli oggetti indirizzo sono individuati sotto le loro interfacce in più l'oggetto interfaccia può avere uno o più indirizzi.
Esempi di host con un' unica interfaccia e più indirizzi sono riportati in figura:
Un Oggetto Host con un' unica interfaccia e più indirizzi virtuali
L'host "test server" situato sulla LAN ha tre indirizzi IP virtuali che appartengono tutti alla stessa interfaccia "eth0". L'host "www.netcitadel.com" è remoto, ma ha anche tre indirizzi IP.
Creazione dell'oggetto Host
Per accelerare il processo di creazione di un oggetto host, è possibile usare il wizard che raccoglie tutti i dati necessari sia per l'host che per le sue interfacce e poi genera l'oggetto:
In primo luogo è necessario introdurre il nome dell’host. Se il nuovo oggetto host ha una singola interfaccia (questo forse è il caso più comune!!) allora bisogna solo riempire la casella per il suo indirizzo (e per l’indirizzo MAC) e cliccare "Next". Se il nome dell'oggetto è lo stesso del nome dell’host reale, allora è possibile usare il tasto "DNS Lookup" per ottenere l'indirizzo dal DNS.
Nel caso in cui il nuovo oggetto host abbia più interfacce, è necessario attivare l'opzione nella parte inferiore della finestra di dialogo e quindi passare alla pagina seguente del wizard con il tasto "Next":
Qui è possibile aggiungere interfacce al nuovo oggetto host: basta fornire il nome, l'indirizzo e la netmask dell'interfaccia nei campi appropriati, quindi cliccare su "Add" per aggiungere alla lista le nuove opzioni. Il tasto "Update" aggiorna le informazioni per l’interfaccia selezionata nella lista, mentre il tasto "Delete" cancella l'interfaccia.
Editare un oggetto host
La finestra di dialogo dell'oggetto host è divisa in due voci: "General" e "Sysinfo":
Editare un Oggetto Host
La voce “General” fornisce alla GUI i comandi per i seguenti parametri:
• Name: definisce il nome dell’oggetto Host.
• MAC ADDRESS filtering: gestisce la politica di sicurezza degli host che usano solo gli indirizzi MAC delle interfacce.
• Comment: campo testuale che può essere usato per aggiungere osservazioni.
La finestra di dialogo per l'oggetto interfaccia che appartiene all’host, ha soltanto una voce che si chiama "General":
L'Interface Dell'Host
La finestra, fornisce i comandi per i seguenti parametri:
• Name
E’ il nome dell'oggetto. Solitamente dovrebbe essere il nome dell'interfaccia reale. Per esempio, su Linux potrebbe essere 'eth0 'o 'eth1 '.
• Label
Sulla maggior parte dei Sistemi Operativi questo campo non è usato ed è una voce descrittiva.
• L’Opzione "Regular Interface"
Questa opzione è usata solo se l'interfaccia ha un indirizzo IP assegnatole manualmente.
• L’ Opzione "Address is assigned dynamically"
Questa opzione è usata solo se l'interfaccia ha un indirizzo IP assegnatole dinamicamente per mezzo di DHCP o PPA.
• L’Opzione "Unnumbered interface"
Questa opzione è usata se l'interfaccia non ha un indirizzo IP, come per esempio l'interfaccia ethernet usata per eseguire una comunicazione PPPoE su collegamenti ADSL,
• Physical (MAC) Address
Questo campo contiene l’indirizzo MAC dell'interfaccia.
• Comment:
Questo è un campo testuale libero.
Oggetto Address e Physical Address
L'oggetto Address definisce l’indirizzo IP dell'interfaccia:
L’Oggetto Address
Questa finestra di dialogo fornisce i seguenti campi:
• Name
E’ il nome dell'oggetto. Si suggerisce di usare un nome descrittivo perché quando l'oggetto indirizzo è usato nella politica del firewall, viene identificato con questo nome. E’ difficile distinguere un indirizzo da un altro se i loro nomi sono simili.
• Address
E’ l’indirizzo IP dell'interfaccia.
• Netmask
E’ la netmask assegnata all’interfaccia.
• Comment:
Campo testuale libero.
Nota: Attualmente il Firewall Builder non supporta gli indirizzi IPv6, anche se tale supporto sarà aggiunto in futuro.
L’Oggetto Physical Address definisce l’indirizzo fisico dell'interfaccia:
L’ Oggetto Physical Address
La finestra riporta l’indirizzo MAC dell'interfaccia nel campo Address ed il suo nome nel campo Name.
Uso degli oggetti Address e Physical Address nella politica di sicurezza
• Usare soltanto l'oggetto Address nella politica di sicurezza, vuol dire che il firewall controlla soltanto l’indirizzo IP ed ignora l’indirizzo MAC dei pacchetti:
Regola di politica usando soltanto l'oggettoAddress
• Usare soltanto l'oggetto Physical Address nella politica di sicurezza, permette il traffico di tutti i tipi di pacchetti che provengono dall’host fidato anche se il suo indirizzo IP cambia.
Regola di politica usando soltanto l'oggettoPhysical Address
• Usare l'oggetto Host o l’oggetto Interface, definisce una regola di protezione che si basa sulla combinazione dell’indirizzo IP e l’indirizzo MAC. Questa può essere usata come regola anti-spoofing specializzata.
Regola di politica usando l'oggetto Host
Regola di politica usando l'oggetto Interface
L'oggetto Network descrive una rete IP o una sottorete.
L'Oggetto Network
La sua finestra di dialogo fornisce i seguenti campi:
• Name: Il nome dell’oggetto Network
• DNS Lookup’ button: Cliccando su questo bottone si esegue una query DNS per ottenere un nome di riferimento.
• Address: indirizzo della rete
• Netmask: La Netmask, insieme all’Address, definisce la sottorete.
Creare un Oggetto Firewall
Come la creazione di un oggetto Host, la creazione di un nuovo oggetto Firewall è facilitata da una finestra wizard. La prima pagina, rappresentata in figura, permette di specificare il nome per il nuovo firewall:
Cliccando su "Next", è possibile aggiungere la configurazione per l'interfaccia:
Aggiungere interfacce al nuovo oggetto Firewall
E' necessario introdure il nome, l'indirizzo e la netmask dell'interfaccia nei campi appropriati cliccando su "Add". Il pulsante "Update" aggiornai parametri dell'interfaccia attualmente selezionata mentre il tasto "Delete" li cancella. Una volta che tutte le interfacce sono state configurate, cliccando su "Next" viene creato il nuovo oggetto firewall appena configurato.
Editare un Oggetto Firewall
L'oggetto Firewall rappresenta forse l'oggetto più complesso di Firewall Builder. La sua finestra di dialogo ha le seguenti voci: 'General ', 'Sysinfo ', 'Compile/Install ', 'Firewall 'e 'Network '.
La voce General fornisce i seguenti comandi:
• Name: Il nome dell’oggetto.
• Host OS e Platform Firewall: Definiscono i moduli che forniscono il supporto per il Sistema Operativo e la piattaforma in uso.
Le voci ’Firewall’ e ’Network’ forniscono i campi che specificano la piattaforma del firewall e le configurazioni scelte del Sistema Operativo.
L’ Oggetto Interface appartenente a un firewall
La finestra di dialogo per l'oggetto Interface che appartiene ad un firewall è simile a quella per l'interfaccia dell' Host ma ha alcuni comandi supplementari.
Diversamente dall'interfaccia dell'oggetto Host, l'interfaccia del Firewall ha il parametro "Security Level". A seconda della piattaforma del firewall, il livello di sicurezza può avere due valori "External"/"Internal"o un valore numerico compreso fra 0 e 100, in cui 0 è il livello meno sicuro e 100 è il più sicuro. La finestra di dialogo della GUI definisce automaticamente i comandi appropriati a seconda della scelta della piattaforma del firewall.
La figura riportata di seguito, mostra una finestra di dialogo per un oggetto interface che appartiene ad un oggetto firewall chiamato "firewall-pix". Quello che si nota è che il livello di sicurezza è stato impostato a 100 dunque il più alto:
Un Interface con un Security Level numerico
Il Firewall Builder fornisce tipi di oggetti standard per i più diffusi e i più utilizzati protocolli di rete come ICMP, TCP e UDP.
IP Service
L’oggetto IP service aiuta a descrivere altri protocolli che non sono né ICMP né TCP né UDP. Il protocollo è composto da 8 bit posti nell’header del pacchetto IP. La schermata riportata in figura, rappresenta l’oggetto ESP (Encapsulating Security Payload, una parte del protocollo IPSEC), il quale utilizza il protocollo IP numero 50.
I numeri dei protocolli sono assegnati dallo IANA: è possibile ricercare il numero di un particolare protocollo al seguente URL: http://www.iana.org. Oltre al numero del protocollo, l’header del pacchetto IP ha anche un campo chiamato “opzione” che è una lista di lunghezza variabile contenentr informazioni opzionali del pacchetto.
ICMP Service
L’oggetto ICMP Service è una rappresentazione generalizzata del protocollo ICMP. Il pacchetto ICMP è spesso usato per comunicare messaggi d’errore generati o a livello IP o da protocolli di alto livello (TCP o UDP). ICMP può essere anche utilizzato come un semplice protocollo di interrogazione. L’amministratore del firewall deve conoscere la natura e lo scopo di ogni messaggio ICMP per poter configurare in maniera appropriata il firewall, in modo da bloccare solo le richieste indesiderate.
La schermata ICMP Service offre i seguenti controlli:
TCP Service
L’oggetto TCP è una generalizzazione del protocollo TCP che offre un byte stream connect-orieted fidato. Molti dei più comuni application protocol si basano sul protocollo TCP: FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), HTTP(Hyper Text Transfer Protocol) ecc.
L’header del TCP contiene campi speciali chiamati source port number e destination port number utilizzati, rispettivamente, per identificare il mittente e il destinatario. Questi due valori, insieme all’indirizzo IP del mittente e del destinatario, identificano univocamente ogni connessione. Siccome i numeri di porta sono usati per distinguere le applicazioni che usano il data stream fornito dal protocollo TCP, ogni applicazione deve usare un numero di porta unico. Di conseguenza questi numeri sono assegnati, in maniera coordinata, da un'autorità centrale: Internet Assigned Numeri Autorità (IANA) http://www.iana.org.
Riportiamo ora la finestra di configurazione relativa alle opzioni per la gestione dell'oggetto TCP:
L’header del TCP inoltre contiene una serie di flag, che permettono di ottenere una varietà di informazioni di controllo. Per esempio, i flag SYN e ACK sono utilizzati per stabilire una connessione mentre il campo FIN è utilizzato per terminare una connessione. Alcune combinazioni di campi possono causare degli errori in alcuni sistemi; l’amministratore del firewall, quindi, potrebbe decidere di bloccare pacchetti TCP con flag ritenuti non validi. Vediamo nel dettaglio i vari flag:
UDP Service
L’oggetto UDP Service è una generalizzazione del protocollo UDP. Molte applicazioni, come DNS (Domain Name System), DHCP (Dynamic Host Configuration Protocol), NTP (Network Time Protocol), SNMP (Simple Name Managment Protocol) e altre, utilizzano UDP per l’invio dei loro messaggi. Come il TCP service, UDP utilizza un numero di porta per distinguere le applicazioni che passano da una macchina all’altra.
L’header del pacchetto UDP contiene due numeri di porta: la porta sorgente e la porta destinazione. L’oggetto UDP service nel Firewall Builder consente di definire un intervallo di valori sia per la porta del mittente sia per quella del destinatario.
La schermata seguente, mostra l’oggetto udp service ‘dns’ che rappresenta il protocollo Domain Name System che utilizza la porta di destinazione 53.
Il significato del valore Start e del valore End è lo stesso che assume nel TCP Service. Occorre osservare che gli estremi sono inclusi, così che, saranno incluse sia la porta iniziale sia quella finale. Usando lo ‘0’ sia come valore iniziale sia come valore finale dell’intervallo indica qualunque porta. Questa regola vale sia per il mittente sia per destinatario.
Il servizio UDP contiene i seguenti controlli:
Ogni oggetto Firewall ha molti insiemi di regole associate ad esso: Global policy, Interface policies e Network Address Translation. Le regole nel Global Policy e nell’Interface Policies controllano l’accesso da e verso la macchina firewall e le macchine controllate da essa, mentre la NAT rule descrive trasformazioni di indirizzi e di porte che il Firewall dovrebbe effettuare ai pacchetti che lo attraversano.
Azioni
L’azione della policy rule può essere una delle seguenti: Accept, Deny, Reject.
Se l’azione è Accept, un pacchetto con l’indirizzo sorgente e destinazione o un servizio che rispetta la regola viene fatto passare.
Se l’azione è Deny, tale pacchetto viene bloccato senza l’invio di alcuna notifica.
Se l’azione è Reject, allora un pacchetto è bloccato e un appropriato messaggio ICMP viene spedito al mittente.
Nota: Si potrebbe avere, inoltre, un’opzione per spedire un pacchetto TCP RST per rispondere ad un servizio TCP (la piattaforma in considerazione deve consentire tale servizio).
Direzioni
La direzione dei pacchetti è definita considerando la politica di firewall, non la rete controllata da esso. Per esempio, i pacchetti che lasciano le rete interna, attraversando il firewall, sono considerati “inbound” nell’interfaccia interna del Firewall e “outbound” nell’interfaccia esterna. Similmente pacchetti che provenienti da Internet sono “inbound” nell’interfaccia esterna del firewall e “outbound” nell’interfaccia interna. La figura riportata di seguito, illustra la definizione di direzione per i pacchetti entranti o uscenti dall’interfaccia del firewall:
Parametri di configurazione per S.O. Linux
Riportiamo di seguito i principali parametri di configurazione di Firewall Builder per piattaforme linux con kernel 2.4.x:
Bene, se siete arrivati fino a qui allora vuol dire che la nostra guida vi è stata di grande aiuto. L'ultima cosa che possiamo fare è ringraziarvi.....