Avanti Indietro Indice

6. Problemi comuni

6.1 ipchains -L si pianta!

Probabilmente si stanno bloccando le ricerche DNS; alla fine andrà in timeout. Si provi a passare l'opzione `-n' a ipchains, che sopprime la risoluzione dei nomi.

6.2 Le opzioni negate non funzionano!

Si deve mettere l'opzione `!' da sola, con degli spazi da entrambi i lati. Un errore classico (segnalato dalla versione 1.3.10) è:

# ipchains -A input -i !eth0 -j DENY
#

Non esisterà mai un'interfaccia chiamata `!eth0', ma ipchains non sa questa cosa.

6.3 Masquerading/Forwarding non funziona!

Ci si assicuri che sia abilitato l'inoltro dei pacchetti (nei kernel recenti è disabilitato per default, il che significa che i pacchetti non proveranno mai ad attraversare la catena `forward'). Si può venirne a capo digitando (come root):

# echo 1 > /proc/sys/net/ipv4/ip_forward
#

Se funziona, lo si può mettere da qualche parte nei propri script di avvio così che sia abilitato ogni volta; ovviamente è meglio impostare il proprio firewall prima di lanciare questo comando, altrimenti c'è l'opportunità che scappino un po' di pacchetti.

6.4 -j REDIR non funziona!

Si devono permettere i pacchetti di inoltro (si veda sopra) affinché funzioni il dirottamento; diversamente il codice di instradamento scarterà i pacchetti. Quindi se si sta usando solamente il dirottamento e non si usa il forwarding, è bene essere consci di questa cosa.

Si noti che REDIR (sebbene sia nella catena input) non ha effetto sulle connessioni da un processo locale.

6.5 Non funzionano i caratteri jolly nelle interfacce!

C'è un bug nelle versioni 2.1.102 e 2.1.103 del kernel (e in alcune vecchie patch che ho prodotto) che faceva fallire i comandi ipchains che utilizzavano caratteri jolly per specificare interfacce (ad esempio -i ppp+).

Ciò è stato corretto nei kernel recenti e nella patch per il 2.0.34 presente sul sito web. Può essere pure corretto a mano nei sorgenti del kernel modificando la riga 63 (più o meno) di include/linux/ip_fw.h:

#define IP_FW_F_MASK    0x002F  /* All possible flag bits mask   */

Dovrebbe essere ``0x003F''. Lo si corregga e si ricompili il kernel.

6.6 TOS non funziona!

Questo è stato un mio errore: l'impostazione del campo Type of Service nei kernel dal 2.1.102 al 2.1.111 in realtà non faceva niente. Questo problema è stato corretto nel 2.1.112.

6.7 Non funzionano ipautofw e ipportfw!

Per i 2.0.x, è vero; non ho il tempo per creare e mantenere una patch enorme per ipchains e ipautofw/ipportfw.

Per i 2.1.x, si scarichi l'ipmasqadm di Juan Ciarlante da

<htmlurl url="http://juanjox.linuxhq.com/"
        name="http://juanjox.linuxhq.com/">
e lo si usi esattamente come si sarebbe usato ipautofw o ipportfw, tranne per il fatto che invece di ipportfw si usa ipmasqadm portfw, e invece di ipautofw si usa ipmasqadm autofw.

6.8 xosview si è rotto!

Si aggiorni alla versione 1.6.0 o superiore, che non richiede nessuna regola firewall per i kernel 2.1.x. Sembra che anche la release 1.6.1 abbia questo problema; lo si segnali all'autore (non è un mio errore!).

6.9 Segmentation Fault con `-j REDIRECT'!

Questo era un bug in ipchains versione 1.3.3. Si aggiorni.

6.10 Non riesco a impostare i timeout del masquerading!

Ciò è vero (per i kernel 2.1.x) fino al 2.1.123. Nel 2.1.124, il tentativo di impostare i timeout del masquerading provoca un blocco del kernel (si modifichi return in ret = nella riga 1328 di net/ipv4/ip_fw.c). Nel 2.1.125, funziona tutto.

6.11 Voglio dei firewall IPX!

E così molti altri, sembra. Il mio codice gestisce solo IP, sfortunatamente. D'altra parte c'è anche qualcosa di buono: le cose per scrivere un firewall IPX ci sono tutte! Basta semplicemente scrivere il codice; sarò felice di aiutare dove possibile.


Avanti Indietro Indice