Pf e Netfilter,analisi dei firewall  Open Source  “Giovanni Bechis” <g.bechis@snb.it>
I principali firewall Open Source sono:Netfilter, il firewall di Linux ePf, il firewall dei sistemi *BSD.Le differenze più...
La configurazione di Netfilter viene fattautilizzando il comando iptables, quella di Pfmodificando il file /etc/pf.conf.Se...
Per poter utilizzare le caratteristiche piùavanzate dei due firewall occorre scriverela configurazione senza basarsi suint...
Patch-O-Matic è una serie di patch per ilkernel Linux e per il comando iptables cheaggiungono funzionalità al firewall.Le ...
iplim it (limita il numero di connessioni su unadeterminata porta da un determinato host)iptables -A IN PUT -p tcp --syn -...
m port (Permette di fare il match di piùporte in una sola regola)iptables -A IN PUT -p tcp -m m port --ports 20:23,80 -j D...
quota (Permette di bloccare i pacchetti unavolta raggiunta una determinata quantità ditraffico)iptables -A IN PUT -p tcp -...
random (Per bloccare un numero dipacchetti a caso)iptables -A IN PUT -p icm p --icm p-type echo-request -m random --averag...
re c e nt (Limita il numero di connessioni da undeterminato host)iptables -A FORWARD -m recent --nam e badhost --rcheck --...
s tring (per bloccare i pacchetti checontengono una determinata stringa)iptables -A INPUT -m string --stringcmd.exe -j DRO...
tim e (Per accettare un pacchetto in baseallorario)iptables -A IN PUT -m tim e --tim estart 8:00 --tim estop 18:00 --daysM...
tc p-m s s (limita la dimensione massima delpacchetto, utile se si hanno problemi conrouter/firewall che bloccano alcuni p...
ttl (per modificare il valore del ttl (in base altime-to-live si può risalire al sistemaoperativo di un computer))iptables...
Per gestire protocolli complessi come ftp eh323 dietro un firewall, Pf utilizza degliapplicativi esterni come ftp-proxy o ...
Dec 18 14:30:59 fw kernel: FW - TCPRejected IN= eth1 OUT=MAC= 00:10:a7:08:9c:65:00:00:0c:3e:36:47:08:00 SRC= 192.168.0.1 D...
Per semplificare lanalisi dei log Iptablespermette attraverso Ulogd il salvataggio deilog in un database, ciò permette la ...
Tramite Nulog e Ulogd è possibile controllareda una semplice interfaccia web i log del firewa
Symon permette un controllo generale del firew
Con Pfstat si realizzano grafici per analizzarequanti pacchetti sono stati bloccati dal firewa
Per un controllo in tempo reale del firewall *Bsi può utilizzare pftop, se si utilizza Linux si puanalizzare il file /proc...
Un attacco Syn-Flood letteralmente significa"inondazione di pacchetti di tipo Syn".Tutte le volte che un utente fa click s...
Se si programma opportunamente un semplice Pè possibile richiedere lapertura di diverse miglidi connessioni al secondo, ch...
N etfilter utilizza il sistema dei syncookies,rispondendo con dei pacchetti validi agli attaccdi tipo syn flood (DoS ), in...
Pf utilizza invece il synproxy;ogni volta che avviene una connessione fraun host esterno alla lan e un client è il firewal...
Alcune particolatità del firewall Pf che non sonpresenti nel firewall GNU/Linux sono lanormalizzazione del traffico tcp e ...
La direttiva scrub serve per normalizzareil traffico tcp da e verso la lan protetta dal firewalcuni utili parametri della ...
random -id   ->       sostituisce il numero                    identificativonellintestazione                    del pacch...
reassem ble tcp   ->       normalizza il trafficotcp                       attraverso questeoperazioni:  ttl : non permett...
tim estam p m odulation: viene sostituito il              timestamp dellintestazione delpacchetto           tcp con un num...
Unaltra interessante caratteristica di Pf è ilfingerprinting; allinterno delle regole del firewallè possibile infatti spec...
Sia con N etfilter che con Pf è possibilelimitare il traffico peer-to-peer tramitelanalisi del traffico tcp.Loperazione è ...
Tramite questi moduli è possibile creare nelfirewall regole come:iptables -A FORWARD -m ipp2p --kazaa -jDROPper eliminare ...
Uno dei più noti IDS è S nort, questo softwareanalizza il traffico tcp a livello 7 (livelloapplicazione nella pila ISO/OSI...
Una semplice e comoda configurazione deltraffic s hape r è quella dellaumento dellapriorità dei pacchetti ACK.In presenza ...
Per sopperire a questo problema è possibiledare maggiore priorità al download.In questo caso viene considerata una bandare...
altq on $ext_if priq bandwidth 100Kb queue { q_pri, q_def }queue q_pri priority 7queue q_def priority 1 priq(default)pass ...
Aumentando la priorità dei pacchetti con il flagsi velocizza il download
Le principali regole da seguire nella scelta del fpiù adatto alle esigenze della lan da proteggere●Utilizzare un sistema o...
Riferimenti & risorse“Giovanni Bechis” <g.bechis@snb.it>    http://www.snb.it/smau2006   http://www.benzedrine.cx/pf.html ...
Pf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open source
Upcoming SlideShare
Loading in …5
×

Pf e netfilter, analisi dei firewall open source

854 views

Published on

Features of the best open source firewalls available.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
854
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Pf e netfilter, analisi dei firewall open source

  1. 1. Pf e Netfilter,analisi dei firewall Open Source “Giovanni Bechis” <g.bechis@snb.it>
  2. 2. I principali firewall Open Source sono:Netfilter, il firewall di Linux ePf, il firewall dei sistemi *BSD.Le differenze più evidenti fra i due firewallsono:✔configurazione✔comportamento con protocolli complessi✔gestione dei log✔limitazione della banda
  3. 3. La configurazione di Netfilter viene fattautilizzando il comando iptables, quella di Pfmodificando il file /etc/pf.conf.Se non si necessita di caratteristicheavanzate si possono utilizzare anche delleinterfaccie grafiche per la configurazione.
  4. 4. Per poter utilizzare le caratteristiche piùavanzate dei due firewall occorre scriverela configurazione senza basarsi suinterfaccie grafiche più semplici malimitative.In Pf anche le caratteristiche più avanzatesono già incluse, per quanto riguardaNetfilter/Iptables occorre talvolta affidarsia Patch-O-Matic.
  5. 5. Patch-O-Matic è una serie di patch per ilkernel Linux e per il comando iptables cheaggiungono funzionalità al firewall.Le funzionalità che vengono aggiuntevanno da un filtraggio dei pacchettimaggiormente granulare alla possibilità disalvare i log in un database e a tanto altroancora.Molte di queste funzionalità sono giàintegrate nel firewall Pf.
  6. 6. iplim it (limita il numero di connessioni su unadeterminata porta da un determinato host)iptables -A IN PUT -p tcp --syn --dport ssh-m iplim it --iplim it-above 10 -j REJECTblock quick inet proto tcp from <badhost>port sshpass in inet proto tcp from <badhost> portssh flags S /S A keep state (m ax-src-conn 10, overload <badhost>flush)
  7. 7. m port (Permette di fare il match di piùporte in una sola regola)iptables -A IN PUT -p tcp -m m port --ports 20:23,80 -j DROPblock quick inet proto tcp from any port { 20:23, 80 }
  8. 8. quota (Permette di bloccare i pacchetti unavolta raggiunta una determinata quantità ditraffico)iptables -A IN PUT -p tcp --dport 80 -mquota --quota 52428800 -j ACCEPTiptables -A IN PUT -p tcp --dport 80 -j DROPnon è possibile in Pf se non utilizzando leapposite regole per limitare la banda
  9. 9. random (Per bloccare un numero dipacchetti a caso)iptables -A IN PUT -p icm p --icm p-type echo-request -m random --average 50 -jDROPblock in inet proto icm p all icm p-type { echoreq } probability 50%
  10. 10. re c e nt (Limita il numero di connessioni da undeterminato host)iptables -A FORWARD -m recent --nam e badhost --rcheck --seconds 60 --hitcount 100 -j DROPiptables -A FORWARD -p tcp -i eth0 --dport 139 -m recent --nam e badhost --set -j DROPblock quick inet proto tcp from <badhost> port 139pass in inet proto tcp from <badhost> port 139 flags S /S A k eep state (m ax-src-conn-rate 60/100,overload <badhost> flush global)
  11. 11. s tring (per bloccare i pacchetti checontengono una determinata stringa)iptables -A INPUT -m string --stringcmd.exe -j DROPNon esiste un equivalente in Pf; lutilizzo diun Ids al posto di questo tipo di regole evitamolti falsi positivi.
  12. 12. tim e (Per accettare un pacchetto in baseallorario)iptables -A IN PUT -m tim e --tim estart 8:00 --tim estop 18:00 --daysMon,Tue,Wed,Thu,Fri -j ACCEPTCon Pf occorre utilizzare due configurazionidifferenti del firewall o utilizzare un proxyquando possibile.
  13. 13. tc p-m s s (limita la dimensione massima delpacchetto, utile se si hanno problemi conrouter/firewall che bloccano alcuni pacchettiframmentati)iptables -A FORWARD -p tcp --tcp-flags S YN ,RS T S YN -j TCPMS S --set-m ss 1460scrub in on $ext_if m ax-m ss 1460
  14. 14. ttl (per modificare il valore del ttl (in base altime-to-live si può risalire al sistemaoperativo di un computer))iptables -t m angle -A OUTPUT -j TTL --ttl-set126scrub in on $ext_if m in-ttl 126
  15. 15. Per gestire protocolli complessi come ftp eh323 dietro un firewall, Pf utilizza degliapplicativi esterni come ftp-proxy o siproxd.Grazie a P-o-m con N etfilter si possonogestire semplicemente protocolli come ftp,h323, snmp e pptp.
  16. 16. Dec 18 14:30:59 fw kernel: FW - TCPRejected IN= eth1 OUT=MAC= 00:10:a7:08:9c:65:00:00:0c:3e:36:47:08:00 SRC= 192.168.0.1 DST= 192.168.1.10LEN= 48 TOS= 0x00 PREC= 0x00 TTL= 124ID= 11585 DF PROTO= TCP SPT= 1803DPT= 80 WINDOW= 32768 RES= 0x00 SYNURGP= 0Aug 10 12:21:17.976796 rule 1/(match) [uid0, pid 18979] block out on rl0:192.168.0.1.26562 > 192.168.1.10.80: S1230309818:1230309818(0) win 16384
  17. 17. Per semplificare lanalisi dei log Iptablespermette attraverso Ulogd il salvataggio deilog in un database, ciò permette la creazionedi grafici in maniera semplice.Anche se Pf salva le informazioni in formatobinario esistono comunque dei software peranalizzare i log.
  18. 18. Tramite Nulog e Ulogd è possibile controllareda una semplice interfaccia web i log del firewa
  19. 19. Symon permette un controllo generale del firew
  20. 20. Con Pfstat si realizzano grafici per analizzarequanti pacchetti sono stati bloccati dal firewa
  21. 21. Per un controllo in tempo reale del firewall *Bsi può utilizzare pftop, se si utilizza Linux si puanalizzare il file /proc/net/ip_conntrack .
  22. 22. Un attacco Syn-Flood letteralmente significa"inondazione di pacchetti di tipo Syn".Tutte le volte che un utente fa click su di un linkdi una pagina web richiede lapertura di unaconnessione (di tipo TCP) verso quel sito;questo avviene seguendo una serie di passi,il primo dei quali consiste nellinvio di un pacchTCP che richiede lapertura di una connessione.Le regole di funzionamento del protocollo TCPesigono che il sistema risponda allocandoalcune risorse per la connessione.
  23. 23. Se si programma opportunamente un semplice Pè possibile richiedere lapertura di diverse miglidi connessioni al secondo, che "inondando" il sene consumano rapidamente tutta la memoria,bloccandolo o mandandolo in crash.GNU/Linux e OpenBSD “affrontano” questoproblema in maniera del tutto differente utilizzauno i syncookies e laltro il synproxy.
  24. 24. N etfilter utilizza il sistema dei syncookies,rispondendo con dei pacchetti validi agli attaccdi tipo syn flood (DoS ), in questo modola connessione non viene interrotta e la codadei pacchetti che bloccherebbero il serverviene svuotata più velocemente e senza provocil blocco del sistema.
  25. 25. Pf utilizza invece il synproxy;ogni volta che avviene una connessione fraun host esterno alla lan e un client è il firewallche stabilisce la connessione;una volta che il collegamento tcp è avvenutolo scambio dei pacchetti avviene fra cliente host esterno.In questo modo si previene qualsiasi tipodi problema derivante da attacchi di questo geanche se diretti ad un server protetto dal firewe non al firewall stesso.
  26. 26. Alcune particolatità del firewall Pf che non sonpresenti nel firewall GNU/Linux sono lanormalizzazione del traffico tcp e il fingerprint
  27. 27. La direttiva scrub serve per normalizzareil traffico tcp da e verso la lan protetta dal firewalcuni utili parametri della direttiva scrub sonono-df -> vengono scartati dei pacchetti non corretti, in particolare i pacchetti frammentati con il bit "dont fragme settato (alcune implementazioni di N generano questi tipi di pacchetti scorretti)
  28. 28. random -id -> sostituisce il numero identificativonellintestazione del pacchetto ip con unnumero casuale rendendo piùdifficile lidentificazione delsistema operativo che sta
  29. 29. reassem ble tcp -> normalizza il trafficotcp attraverso questeoperazioni: ttl : non permette a nessuna delle 2parti della comunicazione tcp di diminuire il valore del ttlper prevenire attacchi di tipoDoS al firewall stesso.
  30. 30. tim estam p m odulation: viene sostituito il timestamp dellintestazione delpacchetto tcp con un numero casuale; dal timestamp si può risalire aquando è stato acceso il computerche sta generando il trafficotcp e può essere utilizzato perinserire pacchetticontraffatti allinterno della comunicazione tcp in atto.
  31. 31. Unaltra interessante caratteristica di Pf è ilfingerprinting; allinterno delle regole del firewallè possibile infatti specificare anche il sistemaoperativo dellhost.Il fingerprinting si basa sul fatto che ogni sistemaoperativo ha unimplementazione diversa dellostack tcp/ip, analizzando quindi il tr affico di retesi può stabilire quali sono i sistemi operativi che logenerano.block in proto tcp from any port 25 os "Window s95"
  32. 32. Sia con N etfilter che con Pf è possibilelimitare il traffico peer-to-peer tramitelanalisi del traffico tcp.Loperazione è dispendiosa a livello di cpu inquanto va scomposto tutto il traffico tcp,analizzato e poi ricomposto.Per fare questa operazione vengono utilizzatistrumenti come gli IDS; esistono delle patcha iptables/netfilter (ipp2p, l7filter) chepermettono lanalisi del traffico p2p.
  33. 33. Tramite questi moduli è possibile creare nelfirewall regole come:iptables -A FORWARD -m ipp2p --kazaa -jDROPper eliminare il traffico prodotto da Kazaa.Esistono parametri appositi anche peredonkey, winmx e altri.Un approccio con minor rischio di falsipositivi e implementabile sia su Linux che suOpenBSD è quello dellintegrazione del
  34. 34. Uno dei più noti IDS è S nort, questo softwareanalizza il traffico tcp a livello 7 (livelloapplicazione nella pila ISO/OSI) e esegue deicomandi in occasione di determinati eventi.E possibile integrare questo Intrusion DetectionSystem con il firewall mediante luso di S nortsamche permette a S nort di bloccare gli hostattaccanti interagendo con il firewall.S nortsam supporta vari firewall fra i qualiiptables,Pf, Check point Firew all-1, Cisco Pix e MicrosoftIsa server.
  35. 35. Una semplice e comoda configurazione deltraffic s hape r è quella dellaumento dellapriorità dei pacchetti ACK.In presenza di una connessione adsl(asincrona quindi) quando si genera moltotraffico in upload cala anche la velocità didownload.Questo avviene perchè il traffico che vienegenerato è sempre nei due sensi e quindi seviene saturata la banda in upstream si riduceanche la velocità del traffico in downstream.
  36. 36. Per sopperire a questo problema è possibiledare maggiore priorità al download.In questo caso viene considerata una bandareale in upstream di 100kb (128kb m enoloverhead del pppoe)tc qdisc add dev ppp0 root tbf rate 100kbit latency 50ms burst 1540
  37. 37. altq on $ext_if priq bandwidth 100Kb queue { q_pri, q_def }queue q_pri priority 7queue q_def priority 1 priq(default)pass out on $ext_if proto tcp from $ext_if toany flags S/SA keep state queue (q_def,q_pri)pass in on $ext_if proto tcp from any to$ext_if flags S/SA keep state queue (q_def,
  38. 38. Aumentando la priorità dei pacchetti con il flagsi velocizza il download
  39. 39. Le principali regole da seguire nella scelta del fpiù adatto alle esigenze della lan da proteggere●Utilizzare un sistema operativo e un firewall chconosce.●Analizzare bene tutte le esigenze della lan cheandrà a proteggere e le applicazioni che verrannutilizzate dai computer della lan.●Valutare bene le caratteristiche e le potenzialitdel firewall che si intende utilizzare.●Tener presente che per proteggere una rete noun buon firewall, occorre anche un antivirus insnei computer e, possibilmente, un proxy.
  40. 40. Riferimenti & risorse“Giovanni Bechis” <g.bechis@snb.it> http://www.snb.it/smau2006 http://www.benzedrine.cx/pf.html http://www.undeadly.org http://www.netfilter.org

×