Esistono centinaia di howto (se non migliaia) in giro per internet su come ricompilare il kernel e per questo mi limiterò a dare le istruzioni fondamentali per avere un buon kernel adatto per un firewall.
Ricordatevi però sempre di configurare il kernel dopo :-) aver applicato tutte le patch, onde evitare di faticare ad applicare delle patch che non verranno mai utilizzate per via dei parametri scelti con ``menuconfig'' (o ``xconfig'' o ...).
Ok, a questo punto dovreste avere il vostro kernel decompresso in giro da qualche parte su una delle vostre partizioni. Entrate dunque nella directory dove è stato decompresso e preparatevi per compilarlo con il solito:
# make menuconfig
Se vi si presenta un errore qui, la maggior parte delle volte è perché
vi mancano gli header delle ncurses o dei tool fondamentali. Rileggete la sezione
sul prepararsi a ricompilare e su come procurarsi i sorgenti.
Abilitate quindi tutto ciò che vi serve, con particolare attenzione però al menù
delle ``networking options''. Abilitate dunque, tenendo le feature sperimentali
disabilitate:
Packet socket
Packet socket: mmapped IO
Netlink device emulation
Network Packet filtering
Socket Filtering
Unix Domain Sockets
TCP/IP networking
IP: multicasting
IP: advanced router
e tutte le voci che appariranno
IP: Tunnelling
IP: GRE tunnels over IP
IP: Broadcast GRE over IP
IP: multicast routing
e tutte le voci che appariranno
IP: TCP syncookie support
(solo se avete un kernel relativamente recente, non ricordo
la versione corretta, ma ogni > 2.4.10 dovrebbe andare)
IP: Netifilter configuration
Connection Tracking
e tutte le voci che appariranno
IP Tables support
e tutte le voci che appariranno
802.1d Ethernet Bridging
E tutte le voci sotto 'QoS' and fair queuing
Attenzione che la maggior parte di queste opzioni non sono indispensabili (anzi, probabilmente
non le userete mai). Quando però mi capita di ricompilare un kernel per un firewall, mi piace
pensare che abbia tutto ciò che al momento è disponibile, e spesso torno indietro abilitando
anche le feature sperimentali, in modo da poter selezionare:
Ci sono quindi diverse cose che potreste considerare configurando il kernel del vostro firewall:
Ricordatevi poi che in un firewall non esiste solo il networking, e non dimenticatevi quindi di scegliere opportunamente il processore, le periferiche e...
Infine, dopo aver ricompilato ed incluso tutte le funzioni che più vi stanno a cuore, ricordatevi di verificare di aver ottenuto qualcosa di stabile ed utilizzabile, provando il vostro firewall prima di metterlo in produzione.
Per molti di voi sarà probabilmente superfluo dire di dare:
# make dep bzImage modules modules_install
Seguite poi la procedura della vostra distribuzione (o prevista dal vostro boot loader) per installare
il nuovo kernel (lilo piuttosto che grub).
Se ci dovessero essere errori, l'unica cosa che posso suggerirvi è di provare a correggere gli errori o eventualmente disabilitare una patch per volta (via menuconfig) fino a riottenere qualcosa di ricompilabile...
Date:
# apt-get install kernel-package
# make-kpkg binary modules
# cd ..; dpkg -i kernel-image-2.4.x....deb; dpkg -i kernel-headers*.deb