Compilazione

Prima di avviare la compilazione è necessario eseguire il comando
./configure
che provvederà a configurare il pacchetto. É possibile modificare la directory di installazione specificando il parametro --sbindir=/nuova/directory (predefinito: /usr/sbin)

Per compilare è sufficiente dare il comando:
make

Installazione

L'installazione deve essere eseguita dall'utente root con il comando:
make install

Durante l'installazione verrà chiesto se si vuole sostituire il file di configurazione (/etc/firewall.conf) eventualmente già presente. Di default viene installato un file di configurazione basato sulle informazioni rilevate dallo script di configurazione.

Lo script principale (firewall) e il programma di gestione dei log (scanlog) verranno installati nella directory /usr/sbin (se non specificato diversamente).

Disinstallazione

Con il comando
make uninstall
verranno rimossi i file installati. Verrà chiesta conferma per il file di configurazione.

Configurazione

Il file di configurazione è /etc/firewall.conf. È eventualmente possibile cambiare il file, modificando la variabile CONFIG, posta all'inizio del file /usr/sbin/firewall.

Il file è composto da una serie di linee nella forma VARIABILE=VALORE.

IF_IN (default =ppp0):
indica quale interfaccia verra` controllata dal firewall. Il valore ppp0 è riferito al modem nelle distribuzioni Slackware, su altre il valore potrebbe essere differente.
IPTAB (default =autorilevato all'installazione):
indica dove trovare il file iptables. È indipensabile settare questa variabile in modo corretto, altrimenti sarà impossibile avviare il firewall.
IFCONFIG (default =autorilevato all'installazione):
indica dove trovare il file ifconfig. È indipensabile settare questa variabile in modo corretto, altrimenti sarà impossibile avviare il firewall.
IPV6 (default =no):
indica se attivare o meno il supporto per il protocollo IPv6 sull'interfaccia selezionata. Al momento il supporto è ancora sperimentale e largamente incompleto (anche nel kernel).
IP6TAB (default =/usr/local/sbin/ip6tables):
indica dove trovare il file ip6tables. È opzionale, a meno che non venga attivato il supporto per IPv6 (vedi sopra).
LOG (default =yes):
indica se attivare o meno il logging dei pacchetti sospetti.
FIFO (default =/var/log/kern.log-fifo):
indica la posizione della fifo che riceverà i dati inviati dal firewall tramite syslogd. Se il file non esiste il firewall provvederà a crearlo. Questa opzione viene ignorata se LOG è settato a "no".
LOGFILE (default =/var/log/firewall.log):
indica la posizione del file sulla quale verranno scritti i log, dopo essere stati filtrati da scanlog. Questa opzione viene ignorata se LOG è settato a "no".
TTY (default =/dev/tty9):
indica su quale terminale verrà fatto l'echo dei log. Per disabilitare questa opzione impostarla a no. Questa opzione viene ignorata se LOG è settato a "no".
SERVICES (default =):
indica che sul pc sono attivi determinati servizi che devono essere accessibili anche dall'esterno. I valori consentiti sono: TALK, NAP, FAKEBO, SMTP, POP3, FTP, IRC, TELNET, SSH, HTTP. Ogni valore dovrà essere separato con una virgola da quello che lo precede. Non viene fatta distinzione tra lettere maiuscole e minuscole. Attenzione: potrebbe essere necessario inserire NAP tra i servizi aperti per poter scaricare MP3 da napster.

Logging

Se si vuole attivare l'opzione di logging, bisognerà aggiungere la seguente riga al file /etc/syslog.conf:

kern.warn   |/var/log/kern.log-fifo

Il file indicato (/var/log/kern.log-fifo) potrà essere modificato in accordo con la variabile FIFO nel file di configurazione del firewall. Affinchè la modifica abbia effetto bisogna riavviare syslogd con la seguente istruzione:

kill -hup `pidof syslogd`

Script aggiuntivi

Alla fine del caricamento il firewall cerca ed esegue il file /root/firewall.init

Testing

Il firewall è in grado di eseguire un piccolo test per vedere se nel kernel sono presenti tutte le caratteristiche richieste. Per avviarlo è sufficiente digitare da root il comando:

firewall test

Se uno dei test fallisce è necessario attivare l'opzione corrispondente all'interno del kernel (builtin o modulo) e ricompilare.

Bug Reporting

In caso di errore grave il firewall fornisce un codice che permette di risalire al punto esatto in cui è avvenuto l'errore. Se volete segnalare un malfunzionamento, è importante che forniate anche un eventuale codice di errore.

Se trovate un bug siete pregati di segnalarlo al mio indirizzo (kronos@myself.com) con una breve descrizione del problema, in modo che possa provvedere a correggerlo nelle future release. Se siete stati in grado di correggere il bug potete anche inviare una patch creata con il programma diff.