Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 6 del 08/06/2007 11.55.46

Nascondi questo messaggio

BR||<tablebgcolor="#f1f1ed" tablewidth="40%" tablestyle="margin: 0pt 0pt 1em 1em; float: right; font-size: 0.9em;"style="padding: 0.5em;">IndiceBR TableOfContents(2) ||

Introduzione

Il team di sviluppatori di Netfilter con i suoi collaboratori ha realizzato numerose patch che allargano in modo considerevole le funzionalità del codice base, normalmente incluso nel kernel. Queste modifiche possono essere inserite in un proprio kernel custom usando lo strumento Patch'O'Matic (P-O-M).

ATTENZIONE: Molte patch sono in fase di sviluppo o unstable, quindi applicatele su un kernel di TEST e non su un kernel con cui lavorate abitualmente

Difficoltà

Difficoltà di esecuzione: media Tempo esecuzione: 30 minuti (esclusi download e ricompilazioni) Livello di skill minimo: intermedio (capacità di compilazione Kernel necessaria)

Requisiti

Per applicare le patch al proprio kernel sono necessari:

Installazione

wget ftp://ftp.lt.netfilter.org/pub/netfilter/patch-o-matic-ng/patch-o-matic-ng-20040621.tar.bz2  
tar -jxvf patch-o-matic-ng-20040621.tar.bz2
cd patch-o-matic-ng-20040621

A questo punto si può procedere con la procedura standard di P-O-M:

export KERNEL_DIR=/usr/src/kerneldir (Indicare la directory dove si trovano i sorgenti del kernel da patchare)
export IPTABLES_DIR=/usr/src/iptablesdir (dove sono stati scompattati i sorgenti di iptables)
./runme pending 

Con queste opzioni applichiamo le patch base, mentre usando

./runme base

o

./runme extra

applicheremo le patch degli altri due gruppi principali. Per ognuna della patch viene fornita una breve spiegazione e chiesto se si vuole aggiungerla nel kernel. Le opzioni disponibili più importanti, una volta che siamo nella procedura di configurazione di P-O-M, sono T e F; T serve per fare un test per verificare che la patch sia applicabile, F serve per forzarne l'applicazione anche se il test fallisce. Una volta completata questa operazione è possibile procedere alla compilazione del kernel secondo le solite procedure. Nel menu di configurazione del kernel tutte le patch aggiuntive sono include nella voce "NetFilter Configuration" del menu Networking options.

Patch più interessanti

match: connlimit

Patch sperimentale che serve per impostare un numero massimo di connessioni tcp da un singolo host IP o da una intera rete. Introduce il match connlimit con le opzioni:

  • --connlimit-above (determina il numero massimo di connessioni ammissibili)
  • --connlimit-mask (imposta il limite allargandolo ad una intera rete, che viene definita tramite i subnet bit, ad esempio 24. Di default si limita al singolo host: 32)

Esempi:

Per limitare l'accesso SSH a due sole connessioni per IP sorgente:

-I INPUT -p tcp --dport 22 --syn -m connlimit --connlimit-above 2 -j DROP

Per impostare massimo 16 connessioni per rete di 256 indirizzi ad un server web dietro il firewall Linux:

-A FORWARD -d 213.215.144.242 -p tcp -m tcp --dport 80 --syn -m connlimit --connlimit-above 16 --connlimit-mask 32 -j DROP

Per impostare a 250 il numero massimo di connessioni contemporanee che possono essere fatte ad un server SMTP:

-A FORWARD -d 213.215.144.242 -p tcp -m tcp --dport 25 --syn -m connlimit --connlimit-above 250 --connlimit-mask 0 -j DROP

Voce nel kernel .config: CONFIG_IP_NF_MATCH_CONNLIMIT Nome modulo: ipt_connlimit

match: psd

E' possibile identificare dei Port Scan tramite il match psd con le seguenti opzioni:

  • --psd-weight-threshold Peso degli ultimi pacchetti TCP/UDP a porte di destinazione diverse proveniente dallo stesso host.
  • --psd-delay-threshold Ritardo, in centesimi di secondi, per considerare pacchetti a porte diverse come dovuti ad un port scan
  • --psd-lo-ports-weight Peso dei pacchetti destinate a porte privilegiate (<=1024)

  • --psd-hi-ports-weight Peso dei pacchetti destinati a porte non privilegiate.

Un esempio essenziale per aggiungere un log, che può essere verboso, di tutti gli scan (Consigliabile aggiungerlo alla fine della catena di INPUT, con un default DROP finale):

iptables -A INPUT -m psd -j LOG --log-prefix "PORTSCAN: "

Voce nel kernel .config: CONFIG_IP_NF_MATCH_PSD Nome modulo: ipt_psd

Ulteriori risorse

  • [http://www.netfilter.org Sito ufficiale Netfilter/IPTables]

  • [:CompilazioneKernel:Compilare il kernel]: guida alla compilazione del kernel