Avanti Indietro Indice

4.3 Preparare il kernel

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 ...).

Configurarlo

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: Attenzione che il vostro kernel non influenzerà soltanto il comportamento del firewall in rete, ma sarà un componente indispensabile per la sicurezza e la stabilità del vostro sistema. Assicuratevi quindi di comprendere pienamente tutto ciò che selezionate (comprese le cose che vi ho indicato), e fatte le dovute considerazioni, non sentitevi in colpa a fare diversamente da quanto suggerito. Nella peggiore delle ipotesi, dovrete ricompilare il kernel...

Ci sono quindi diverse cose che potreste considerare configurando il kernel del vostro firewall:

Questi sono soltanto spunti o suggerimenti, sta al vostro estro produrre un kernel il più utile e funzionale possibile.

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.

Ricompilarlo

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...

In Debian

Date:

        # apt-get install kernel-package
        # make-kpkg binary modules
        # cd ..; dpkg -i kernel-image-2.4.x....deb; dpkg -i kernel-headers*.deb


Avanti Indietro Indice