<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Linux IPCHAINS HOWTO: Problemi comuni</TITLE> <LINK HREF="IPCHAINS-HOWTO-7.html" REL=next> <LINK HREF="IPCHAINS-HOWTO-5.html" REL=previous> <LINK HREF="IPCHAINS-HOWTO.html#toc6" REL=contents> </HEAD> <BODY> <A HREF="IPCHAINS-HOWTO-7.html">Avanti</A> <A HREF="IPCHAINS-HOWTO-5.html">Indietro</A> <A HREF="IPCHAINS-HOWTO.html#toc6">Indice</A> <HR> <H2><A NAME="s6">6. Problemi comuni</A></H2> <P> <H2><A NAME="ss6.1">6.1 ipchains -L si pianta!</A> </H2> <P>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. <P> <P> <H2><A NAME="ss6.2">6.2 Le opzioni negate non funzionano!</A> </H2> <P>Si deve mettere l'opzione `!' da sola, con degli spazi da entrambi i lati. Un errore classico (segnalato dalla versione 1.3.10) è: <P> <BLOCKQUOTE><CODE> <PRE> # ipchains -A input -i !eth0 -j DENY # </PRE> </CODE></BLOCKQUOTE> <P>Non esisterà mai un'interfaccia chiamata `!eth0', ma ipchains non sa questa cosa. <P> <P> <H2><A NAME="ss6.3">6.3 Masquerading/Forwarding non funziona!</A> </H2> <P>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): <P> <BLOCKQUOTE><CODE> <PRE> # echo 1 > /proc/sys/net/ipv4/ip_forward # </PRE> </CODE></BLOCKQUOTE> <P> <P>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. <P> <P> <H2><A NAME="ss6.4">6.4 -j REDIR non funziona!</A> </H2> <P>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. <P> <P>Si noti che REDIR (sebbene sia nella catena input) non ha effetto sulle connessioni da un processo locale. <P> <H2><A NAME="ss6.5">6.5 Non funzionano i caratteri jolly nelle interfacce!</A> </H2> <P>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 <CODE>-i ppp+</CODE>). <P> <P>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: <P> <BLOCKQUOTE><CODE> <PRE> #define IP_FW_F_MASK 0x002F /* All possible flag bits mask */ </PRE> </CODE></BLOCKQUOTE> <P> <P>Dovrebbe essere ``0x003F''. Lo si corregga e si ricompili il kernel. <P> <H2><A NAME="ss6.6">6.6 TOS non funziona!</A> </H2> <P>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. <P> <H2><A NAME="ss6.7">6.7 Non funzionano ipautofw e ipportfw!</A> </H2> <P>Per i 2.0.x, è vero; non ho il tempo per creare e mantenere una patch enorme per ipchains e ipautofw/ipportfw. <P> <P>Per i 2.1.x, si scarichi l'ipmasqadm di Juan Ciarlante da <PRE> <htmlurl url="http://juanjox.linuxhq.com/" name="http://juanjox.linuxhq.com/"> </PRE> e lo si usi esattamente come si sarebbe usato <CODE>ipautofw</CODE> o <CODE>ipportfw</CODE>, tranne per il fatto che invece di <CODE>ipportfw</CODE> si usa <CODE>ipmasqadm portfw</CODE>, e invece di <CODE>ipautofw</CODE> si usa <CODE>ipmasqadm autofw</CODE>. <P> <H2><A NAME="ss6.8">6.8 xosview si è rotto!</A> </H2> <P>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!). <P> <H2><A NAME="ss6.9">6.9 Segmentation Fault con `-j REDIRECT'!</A> </H2> <P>Questo era un bug in ipchains versione 1.3.3. Si aggiorni. <P> <P> <H2><A NAME="no-timeout"></A> <A NAME="ss6.10">6.10 Non riesco a impostare i timeout del masquerading!</A> </H2> <P>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 <CODE>return</CODE> in <CODE>ret =</CODE> nella riga 1328 di net/ipv4/ip_fw.c). Nel 2.1.125, funziona tutto. <P> <H2><A NAME="ss6.11">6.11 Voglio dei firewall IPX!</A> </H2> <P>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. <P> <HR> <A HREF="IPCHAINS-HOWTO-7.html">Avanti</A> <A HREF="IPCHAINS-HOWTO-5.html">Indietro</A> <A HREF="IPCHAINS-HOWTO.html#toc6">Indice</A> </BODY> </HTML>