Linux/ Un firewall per amico (II)

In questa seconda puntata si descrivono le operazioni preventive necessarie a rendere la nostra macchina Linux una black box adibita alla protezione della rete ed eventualmente anche all'inoltro dei pacchetti TCP/IP


Il sistema utilizzato in questo esempio per creare il nostro firewall è basato su un processore Intel Pentium II 350 MHz, scheda madre Asus P2BF, 64 MB di SDRAM PC-100, un hard disk IBM da 10,5 GB diviso in due partizioni (una da 128 MB per lo swap disk e il resto per la partizione ?Linux native?), un CD-ROM Plextor collegato ad una interfaccia SCSI Tekram DC395U e una scheda video Matrox G200 da 8 MB. Questi ultimi tre dispositivi non influenzano in nessun modo il buon funzionamento del sistema, quindi qualsiasi altro adattatore/scheda può essere un buon candidato per la realizzazione del sistema.
La scheda di rete è una 3Com 905 B Tx collegata alla rete locale attraverso uno Switch 8 porte 3Com a 100 Mbit. Per il collegamento ad Internet utilizzeremo un terminal adapter attivo della Zyxel Omni.net LCD ISDN collegato alla prima porta seriale del computer. E? importante precisare che a seconda delle esigenze e delle strutture disponibili è possibile sostituire il TA con una scheda di rete (eth1) per poter utilizzare infrastrutture come ADSL o CDN.
Per la rete locale è stata utilizzata una sub-address privata di classe C: 192.168.0 come prescritto dal RFC 1918.
Ecco il diagramma della tipologia di rete:

La distribuzione adottata è la SuSE Linux versione 6.4. Il kernel presente nel pacchetto (2.2.14) è stato sostituito con una versione più recente (2.2.15) che risolve alcuni bug relativi al Masquerading.
La distribuzione adottata è la SuSE Linux versione 6.4. Il kernel presente nel pacchetto (2.2.14) è stato sostituito con una versione più recente (2.2.15) che risolve alcuni bug relativi al Masquerading.


Per rendere sicura la nostra macchina Linux, dobbiamo iniziare ad operare “dall’interno”. Per prima cosa occorre collegarsi al sito Web o FTP della distribuzione in uso e controllare se esistono “aggiornamenti critici” (bug fixe e security release) per i pacchetti che abbiamo installato. Ricordatevi che Linux è veramente funzionale, ma, senza i dovuti accorgimenti nella ricerca e l’installazione di bug fixe, la macchina può essere facilmente vittima di hacker.
Una volta scaricati i nuovi pacchetti in una directory del file system (per esempio /tmp/patch) è necessario utilizzare la funzione refresh dell’utility RPM digitando:

rpm -Fvh /tmp/patch/*

che aggiorna unicamente le precedenti versioni degli RPM installati sulla macchina. Successivamente a tale verifica occorre compilare il kernel secondo le proprie esigenze. Per conoscere quale sia l’ultima versione stabile del kernel basta digitare il seguente comando:

finger @zeus.kernel.org

L’output sarà simile al seguente:

zeus.kernel.org/209.10.41.242]

The latest stable version of the Linux kernel is: 2.2.15
The latest beta version of the Linux kernel is: 2.3.99-pre9
The latest prepatch (alpha) version *appears* to be: 2.3.99/10-3

Ora controlliamo quale versione di kernel stiamo utilizzando digitando:

uname -a oppure uname -r

riceveremo un messaggio di questo tipo:

Linux black 2.2.15 #7 SMP Thu May 25 14:08:27 CEST 2000 i686 unknown

Se la versione che utilizziamo è l’ultima versione stabile possiamo passare alla configurazione e successiva compilazione del kernel:
portiamoci nella directory /usr/src/linux con il comando:

cd /usr/src/linux

e iniziamo la configurazione:

make mrproper
make menuconfig

Abilitiamo l’utilizzo dei module nel menu “Loadable module support”
e nel menu ” Networking options” attiviamo le seguenti voci:

– Packet socket
– Network firewalls
– Socket Filtering
– Unix domain sockets
– TCP/IP networking
– IP firewalling
– IP transparent proxy
– IP Masquerading
– IP ICMP masquerading
– IP optimise as router not host
– IP Tcp syncookie support
– IP Allow large windows

Salviamo la configurazione scelta e ricompiliamo il kernel con i comandi:

make dep
make clean
make zImage oppure make bzImage
make modules
make modules_install

A questo punto troviamo nella directory /usr/src/linux/arch/i386/boot il nuovo kernel. Se utilizziamo lilo possiamo utilizzare il comando

make zlilo
…oppure…
make bzlilo

per rimpiazzare il vecchio kernel con quello nuovo. Riavviamo il sistema per rendere operativi i cambiamenti.

Per questa settimana ci fermiamo qui. Nella prossima parleremo del “Super Server” ovvero del daemon inetd e della sua configurazione, di cosa sono e a cosa servono i tcp wrapper e dei permessi che dobbiamo impostare al file system per aver una “macchina sicura”.

Giuseppe Augiero

La tua email sarà utilizzata per comunicarti se qualcuno risponde al tuo commento e non sarà pubblicato. Dichiari di avere preso visione e di accettare quanto previsto dalla informativa privacy

Chiudi i commenti