|
Dimensione: 4817
Commento:
|
Dimensione: 5050
Commento: da revisionare ancora
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 4: | Linea 4: |
| ||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]] [[TableOfContents(2)]]|| |
||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents]]|| |
| Linea 8: | Linea 7: |
| Il team di sviluppatori di Netfilter e i loro collaboratori hanno realizzato numerose patch che allargano in modo considerevole le funzionalità del codice base, normalmente incluso nel kernel. Esiste la possibilità di inserirle in un proprio kernel custom usando lo strumento Patch'O'Matic (POM). | |
| Linea 10: | Linea 8: |
| = Requisiti = | È possibile applicare numerose ''patch'' a '''netfileter''', utili ad amplicare in modo considerevole le funzionalità di base offerte con il kernel. ||<tablestyle="text-align: justify; width:65%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/warning.png,,center)]] ||<style="padding:0.5em; border:none;">'''Molte di queste modifiche sono attualmente in fase di sviluppo, è sconsigliate applicarle sul proprio kernel predefinito.''' || = Preparativi = |
| Linea 13: | Linea 16: |
| * I sorgenti del kernel (normalmente scompattati nella directory /usr/src/linux o /usr/src/kernel-versione o simili) su cui verranno applicate * I sorgenti di iptables, scaricabili dal sito ufficiale http://www.netfilter.org/ che vanno ricompilati (http://www.netfilter.org/projects/iptables/downloads.html) * I sorgenti di patch'o'matic, di non facilissima reperibilità sul sito ufficiale a causa della documentazione non più aggiornata. Fortunatamente però i sorgenti di P-O-M si possono recueprare da un mirror italiano (ftp://ftp.lt.netfilter.org/pub/netfilter/patch-o-matic-ng/) |
* i sorgenti del kernel, normalmente presenti nella cartella `/usr/src/linux`; * i sorgenti di '''iptables''', scaricabili dal [http://www.netfilter.org/ sito ufficiale], che vanno ricompilati con le [http://www.netfilter.org/projects/iptables/downloads.html patch]; * i sorgenti di '''patch'o'matic''', di non facilissima reperibilità sul sito ufficiale a causa della documentazione non più aggiornata, ma fortunatamente si possono recuperare da un mirror italiano (ftp://ftp.lt.netfilter.org/pub/netfilter/patch-o-matic-ng/). |
| Linea 20: | Linea 21: |
Scaricare '''patch'o'matic''' nella propria '''Home''' con i seguenti comandi: |
|
| Linea 21: | Linea 24: |
| cd | |
| Linea 26: | Linea 30: |
| A questo punto si può procedere con la procedura standard di POM: | 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 }}} |
| Linea 28: | Linea 37: |
| * 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 |
| Linea 32: | Linea 39: |
| Con queste opzioni applichiamo le patch base, mentre usando {{{./runme base}}} o {{{./runme extra}}} applicheremo le patch degli altri gruppi. 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. |
{{{ ./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. |
| Linea 39: | Linea 54: |
| * --connlimit-above (determina il numero massimo di connessioni ammissibli) | * --connlimit-above (determina il numero massimo di connessioni ammissibili) |
| Linea 44: | Linea 59: |
| Per limitare l'accesso SSH a due sole connessioni per IP sorgente: | Per limitare l'accesso SSH a due sole connessioni per IP sorgente: |
| Linea 52: | Linea 66: |
| Linea 58: | Linea 71: |
| Linea 61: | Linea 73: |
| Linea 66: | Linea 77: |
| E' possibile identificare dei Port Scan tramite il match psd con le seguenti opzioni: | E' possibile identificare dei Port Scan tramite il match psd con le seguenti opzioni: |
| Linea 72: | Linea 82: |
| * --psd-hi-ports-weight Peso dei pacchetti destinati a porte non privilegiate. | * --psd-hi-ports-weight Peso dei pacchetti destinati a porte non privilegiate. |
| Linea 76: | Linea 85: |
| Linea 79: | Linea 89: |
| Voce nel kernel .config: CONFIG_IP_NF_MATCH_PSD Nome modulo: ipt_psd | |
| Linea 80: | Linea 91: |
| Voce nel kernel .config: CONFIG_IP_NF_MATCH_PSD Nome modulo: ipt_psd | |
| Linea 83: | Linea 93: |
| * [:CompilazioneKernel:Compilare il kernel]: guida alla compilazione del kernel | * [:AmministrazioneSistema/CompilazioneKernel:Compilare il kernel]: guida alla compilazione del kernel |
| Linea 87: | Linea 97: |
| CategoryNuoviDocumenti | CategoryDaRevisionare CategorySicurezza |
IndiceBRTableOfContents |
Introduzione
È possibile applicare numerose patch a netfileter, utili ad amplicare in modo considerevole le funzionalità di base offerte con il kernel.
Molte di queste modifiche sono attualmente in fase di sviluppo, è sconsigliate applicarle sul proprio kernel predefinito. |
Preparativi
Per applicare le patch al proprio kernel sono necessari:
i sorgenti del kernel, normalmente presenti nella cartella /usr/src/linux;
i sorgenti di iptables, scaricabili dal [http://www.netfilter.org/ sito ufficiale], che vanno ricompilati con le [http://www.netfilter.org/projects/iptables/downloads.html patch];
i sorgenti di patch'o'matic, di non facilissima reperibilità sul sito ufficiale a causa della documentazione non più aggiornata, ma fortunatamente si possono recuperare da un mirror italiano (ftp://ftp.lt.netfilter.org/pub/netfilter/patch-o-matic-ng/).
Installazione
Scaricare patch'o'matic nella propria Home con i seguenti comandi:
cd 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]
[:AmministrazioneSistema/CompilazioneKernel:Compilare il kernel]: guida alla compilazione del kernel
