CentOS-Italia.org - La Community degli Utenti Italiani di Linux CentOS Forum e Guide How To

Supporto Tecnico a Centos => Sicurezza => Topic aperto da: lossoth - 10 Ottobre 2011, 13:52:01

Titolo: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 10 Ottobre 2011, 13:52:01
Ciao a tutti!
Da 5 giorni mi sono accorto di essere sotto attacco SYN FLOOD.
web server: CentOS 5.5 - Apache 2.2.3 - kernel: 2.6.18-194.17.1.el5

Sintomi:
- load basso
- traffico rete normale (non un problema di connessione lenta)
- netstat mostra numerose requests syn in stato SYN_RECV
quindi il server li in attesa di una risposta ACK dal client che non arriver mai in quanto gli IP sono fasulli, quindi apache rallenta

Le soluzioni che ho trovato agiscono o sul firewall o sulle varibili TCP di sistema.

1- firewall: iptables
sono abbastanza sicuro che gli accessi syn siano fatti sulla porta 80 dove gira apache e non sulla 22 aperta per ssh
quindi mi sembra non sia inerente alla discussione: Aumento costante processi ssh (http://www.centos-italia.org/index.php?action=post;board=25.0)

2- variabili TCP /proc/sys/net/ipv4: due indicazioni teoriche
-- aumentare la coda delle connessioni SYN_RECV aperte
-- diminuire l'intervallo di tempo in cui una connessione rimane in stato SYN_RECV

Io ho:
- attivato tcp_syncookies (il kernel lo dovrebbe supportare)
- messo tcp_synack_retries e .tcp_syn_retries=1
per non vedo miglioramenti nella velocit del sito

Tra i mille dubbi ho le seguenti domande...

1- tcp_max_syn_backlog: vedo nella documentazione che per portarlo oltre 1024 (il mio valore attuale) c' il seguente warning (incollo che faccio prima):
[Warning! If you make it greater than 1024, it would be better to change TCP_SYNQ_HSIZE in include/net/tcp.h to keep TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog and to recompile kernel.]

2- qualcuno saprebbe indicarmi come "diminuire l'intervallo di tempo in cui una connessione rimane in stato SYN_RECV"? non riesco a trovare un parametro corretto
tcp_fin_timeout non fa al caso mio in quanto qui siamo gi avanti nello stack tcp

3- c' forse qualcos'altro da prendere in considerazione?

Grazie!
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: dankan77 - 10 Ottobre 2011, 15:25:41
Ciao,
sicuramente fare il tuning del kernel per il tuo web server cosa buona, ma per fare un buon lavoro si deve conoscere la banda disponibile verso il web, il numero di connessioni contemporanee che ti aspetti ed eventualmente i picchi di connessioni che potrebbero capitare oltre alla capacit di erogazione della tua macchina.
Detto questo passiamo al secondo problema quello del syn flooding che di fatto ti st portando un mezzo DOS( Denial Of Service)
Per capire se le connessioni arrivano verso la porta 22 basta guardare in /var/log/secure e capire se ci sono molti tentativi di accesso non autorizzato. In questo caso puoi risolvere usando Fail2ban che un' applicazione utile a bloccare per qualche minuto gli ip che fanno diversi tentativi di accesso alla tua macchina.
Per quanto riguarda invece un eventuale DOS alla porta 80 puoi solamente ottimizzare lo stack TCP utilizzando ad esempio questa guida:
http://www.cyberciti.biz/faq/linux-tcp-tuning/   anche se come ti dicevo all'inizio utile conoscere le metriche del tuo ambiente per andare di fino.
In seguito anche la risposta alle 3 domande:
3) Ho risposto sopra con le mie considerazioni:
1) La risposta nel link che ti ho postato sopra
2) net.netfilter.nf_conntrack_tcp_timeout_syn_recv = "secondi che vuoi indicare"
P.S.
Il tuning v poi esteso anche alla tua applicazione apache visto che di fatto il tuo sistema dopo il tuning potrebbe essere dimensionato per reggere il flooding ma non a livello applicativo:

http://beginlinux.com/blog/2008/11/performance-tuning-a-centos-web-server/


Ciao
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 10 Ottobre 2011, 16:51:45
Grazie mille per la risposta, ho molti spunti su cui lavorare.

Domanda:
/proc/sys/net non vedo netfilter. Lo installo con lo yum o intendi qualcos'altro?

Precisazione:
gli accessi ssh non autorizzati alle porte 22 e 80 sono bloccati da iptables:
-A INPUT -p tcp --dport 22 -m recent --set --name ssh --rsource
-A INPUT -p tcp --dport 22 -m recent ! --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT
-A INPUT -p tcp --dport 80 -m recent --set --name ssh --rsource
-A INPUT -p tcp --dport 80 -m recent ! --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT
in /var/log/secure non c' nulla di rilevante.

Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: dankan77 - 10 Ottobre 2011, 19:28:00
Se non trovi netfilter mi s tanto che iptables spento dato che quello stack li viene generato a runtime :-)
L'accesso ssh solo sulla porta 22 .
Inoltre penso che vi sia un errore logico, come regola dovresti creare una lista di ip source per ssh ed una per web quindi io modificherei in questo modo:

-A INPUT -p tcp --dport 22 -m recent --set --name ssh --rsource
-A INPUT -p tcp --dport 22 -m recent ! --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT
-A INPUT -p tcp --dport 80 -m recent --set --name web --rsource
-A INPUT -p tcp --dport 80 -m recent ! --rcheck --seconds 60 --hitcount 4 --name web --rsource -j ACCEPT

Detto questo mi s che se queste due liste (ssh e web) sono lunghe necessario effettuare il tuning del tcp e di netfilter con i fiocchi altrimenti la vedo dura a gestire un bel po' di connessioni con le due tabelle che traboccano

Ciao
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 11:37:45
Netfilter proprio non lo trovo e iptables sta girando, sicuro al 100%.
Cosa pu essere? Sembra che netfilter sia una specie di modulo di iptables, ma non resco a capire come abilitarlo...
 :'(
Aiuto!
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: mayers81 - 11 Ottobre 2011, 11:40:29
hai selinux abilitato?
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 11:43:31
bash: selinux: command not found

sembra di no
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: mayers81 - 11 Ottobre 2011, 11:44:27
il comando sestatus  ::)
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 11:45:24
ok, sorry, come capirai non sono molto ferrato sull'argomento...

SELinux status:                 disabled
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: mayers81 - 11 Ottobre 2011, 11:47:06
setenforce 1  ;D ;D ;D ;D

lo abiliti
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 11:55:49
#set enforce 1 ->
setenforce: SELinux is disabled

cambio /etc/selinux/config mettendo
SELINUX=enforcing ?
(adesso "disabled")

qui http://www.centos.org/docs/5/html/5.2/Deployment_Guide/sec-sel-enable-disable.html (http://www.centos.org/docs/5/html/5.2/Deployment_Guide/sec-sel-enable-disable.html)
dice che bisogna riavviare il sistema poi...
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: mayers81 - 11 Ottobre 2011, 12:04:40
aspetta non farlo se era in disable
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: mayers81 - 11 Ottobre 2011, 12:10:59
leggi qua come riabilitarlo occhio che se sbagli sputtani la macchina

http://wiki.centos.org/HowTos/SELinux#head-0f6390ddacfab39ee973ed8018a32212c2a02199
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 12:17:59
scusa la domanda da ignorante: ma una volta abilitato SELinux mi si attiva netfilter?
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: mayers81 - 11 Ottobre 2011, 12:24:12
se linux se leggi un sistema di protezione che copre da eventuali bachi di sistema quindi blinda la tua macchina
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 12:50:03
che trippone! ho trovato il parametro che cercavo! :
/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_recv

Posso tornare a considerare i tuning che mi suggerivi.
Non abiulito SELinux in quanto non posso rischiare di corrompere il filesystem...

Grazie per la pazienza, spero di riuscire a limitare sto attacco...
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: mayers81 - 11 Ottobre 2011, 13:00:49
io l'ho tengo sempre abilitato perch protegge da eventuali bachi di sistema ;D ;D
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: LonelyWolf - 11 Ottobre 2011, 14:09:39
...
Non abiulito SELinux in quanto non posso rischiare di corrompere il filesystem...

...

?!?
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 15:20:33
per passare da "off" a "on" SELinux pu fare dei danni, c' scritto qui:
http://wiki.centos.org/HowTos/SELinux#head-867ca18a09f3103705cdb04b7d2581b69cd74c55 (http://wiki.centos.org/HowTos/SELinux#head-867ca18a09f3103705cdb04b7d2581b69cd74c55)

In questo momento non posso avere anche altre rogne:
sto syn flood da una settimana che mi distrugge...
praticamente sto rischiando il posto (non sto scherzando)

Quindi per favore, pu essere veramente ultile al mio scopo SELinux? da quello che vedo dalla documentazione no

Per adesso ho sistemato le variabili net.ipv4 secondo quanto indicato in varie guide,
ma non riscontro miglioramenti nella velocit del sito, adesso passo al tuning che mi consigliava dankan77 nella prima risposta
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: mayers81 - 11 Ottobre 2011, 15:30:15
il concetto questo!!! Selinux una protezione in pi che spesso puo essere utilie e coprire eventuali bachi di sistema.

Non a caso ci sono delle boolean vedi la mia guida personalizzare selinux

Un sistema sicuro ha sicuramente selinux attivato

Spesso pero trovi how to con disabilitiamo iptables e selinux cosi non abbiamo problemi!!!!!!!  ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ???

auditlog un valido srumento per la creazione di policy personalizzate

Mi gia successo di danneggiare una macchina selinux disable di defualt lo metti in enable riavvi centos non parte sulla guida anche spiegato il motivo.

Piuttosto di default mettetelo in permissive cosi esegue i log attivo ma non blocca nulla.
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: LonelyWolf - 11 Ottobre 2011, 16:45:28
Ho letto attentamente (e pi di una volta) ma non trovo scritto da nessuna parte di danneggiamenti al file system.
L'unico inconveniente che, non avendolo mai abilitato (per questo io lo imposto sempre in permissive) le policy di accesso ai file non sono "corrette" e quindi vanno reimpostate, come scritto nella pagina che mi hai elencato.

Ora, tornando al tuo problema, il sito che tecnologie usa (php, mysql, ecc.)?

Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 17:23:01
php, anche se adesso il php che gira nella macchina fermo
la macchina sotto attacco fa da proxy verso un'altra dove gira effettivamente php e postgres che servono al funzionamento minimo.
Adesso che sotto attacco apache soggetto al 50% del lavoro standard: praticamente fa solo il proxy verso l'altro server e delivera delle immagini piccole
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 17:25:01
per alleviare i sintomi dell'attacco ho fermato tutto il php e postgres che girano sulla macchina in questione
praticamente la parte pubblica (www) funziona bene ma manca met della roba...
non so se mi sono spiegato...
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: LonelyWolf - 11 Ottobre 2011, 17:42:44
Quindi, se ho capito bene, hai 2 macchina, 1 che è il server vero e proprio e 1 che fa da proxy ed è "sotto attacco".
Ma php sulla macchina proxy a cosa serve?
Su che porta gira il proxy?

Edit:
Il log di postgresql sull'altra macchina non riporta nulla di strano?
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 18:05:32
per semplicita chiamiamo:
00 - server principale che fa da proxy
01 - l'altro server

a regime la 00 deve soddisfare alcune richieste www (dipendenti da particolare url api inviati da ajax): queste vengono deliverate dalla 00 stessa tramite php e il suo db postgres e sono quelle che ho bloccato adesso e che mi fanno andare il sito "a met"

tutto ci che non "api" viene reindirizzato alla 01

il "proxy" nella 00 viene fatto con le regole mod rewrite di httpd.conf

i log di postgres sulla 01 non hanno nulla di strano, perch dovrebbero?
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: LonelyWolf - 11 Ottobre 2011, 18:21:57
Non è che "dovrebbero", però php+postgresql = lento (rispetto a mysql o python+postgresql) quindi pensavo magari a connessioni al db scadute che rallentano l'esecuzione di tutto e potrebbero lasciare delle richieste di apache in sospeso.

Se adesso riattivi postgresql, è immediatamente lento tutto il sistema?

Se il rallentamento avviene dopo del tempo io indagherei anche sulle connessioni al db e i rewrite delle url (che non è proxy).
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 19:17:28
Ho fatto veri test nei giorni passati per essere sicuro di escludere quanto dici.
Infatti con postgres spento sulla 00 comunque lento, cosa che prima del syn flood non succedeva.
E' colpa di sto attacco...
La cosa strana che ho fatto tutte le modifiche ai parametri tcp che ho trovato (in parte indicatemi da dankan77 nella prima risposta), ma non rieco a vedere miglioramenti

 :-[

riporto il mio sysctl.conf

Codice: [Seleziona]
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 1

# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296

#custom: 20111007: prevent syn flood:
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 1
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.netfilter.ip_conntrack_max = 131072
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 208000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 80
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 20
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 40
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 20
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 11 Ottobre 2011, 19:23:10
altra precisazione:
la 01 non lenta, cio la parte del sito generata dalla 01 ok
il problema appunto sulla parte servita dalla 00
quindi per il problemna possimo escludere la 01, il "proxy", php e postrgres della 00 in quanto adesso sono spenti
adesso apache della 00 non fa altro che servire delle immagini, il "RewriteRule" che punta alla 01 veloce
alcune immagini impiegano pi di tre secondi a caricarsi, mentre prima del syn flood era tutto nell'ordine dei millisecs
il problema prima di apache, netstat mostra un casino di SYN_RECV che non riesco a diminuire neanche abbassando il timeout ip_conntrack_tcp_timeout_syn_recv a 1
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: LonelyWolf - 11 Ottobre 2011, 22:16:18
OK, controllo dei log di apache x vedere se c' qualche cosa d istrano, dns e host che non s iinstradino male e controllo delle schede di rete prova a "buttarle gi" e rialzarle.
Come sono collegati i 2 server tra loro e alla rete?
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 12 Ottobre 2011, 10:08:57
non mi pare di vedere nulla di strano nei log apache
i server sono a noleggio, non li ho sotto mano
ho chiesto all'assistenza di verificare la scheda rete della 00 e mi hanno detto che non c' nulla di strano
presumo che i server siano collegati a interne tramite un qualche router e non ci sono collegameti tra di loro, parlano appunto via internet
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: dankan77 - 12 Ottobre 2011, 11:03:59
Ciao,
riesci a girarci uno schema architetturale della tua struttura applicativa?
Riesci a raccogliere statisticamente i Syn  (mediante script oppure mediante monitoraggio statistico)?
Magari sarebbe gi interessante valutare un SAR completo delle macchine del tuo ambiente per capire se ci sono ulteriori colli di bottiglia senza staccare spegnere o fare prove con una mano sola.
Se riesci a produrre queste info avremmo tutti un quadro della situazione e potremmo sicuramente offrirti una mano oltre a farti crescere apprendendo magari un approccio pi di di tipo enterprise fac-simile :-)

Ciao
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: LonelyWolf - 12 Ottobre 2011, 11:12:41
Pensavo potessi controllarli direttamente.
A me era successa una cosa simile con un vecchio pc che faceva da firewall con una distro apposita ed il problema era proprio una scheda di rete, appena cambiata tutto è tronato a posto.

Comunque, prova con queste:
Codice: [Seleziona]
iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit-upto 50/min --hashlimit-burst 600 --hashlimit-mode srcip --hashlimit-name http -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP

Se hai editato /etc/sysctl.conf ti sei ricordato di riavviare il servizio?
idem per iptables.

Edit:
Potresti anche aumentare temporaneamente la direttiva ListenBackLog di apache mentre l'attacco è in corso, anche se serve solo a tamponare i sintomi.
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 12 Ottobre 2011, 12:23:50
E' un po' presto per cantare vittoria ma MI SEMBRA DI AVERE RISOLTO
o meglio, di avare limitato in maniera accettabile i rallentamenti dovuti al syn flood.
Questo grazie alle ultime modifiche ai parametri tcp (vedi post di ieri)
Ho riavviato tutta l'applicazione al 100% e sembra reggano sia attivit di frontend che backend.
Ci sono dei rallentamenti ma da un'ora sembra reggere... vediamo nel pomeriggio che ho il picco di utenze

RINGRAZIO IMMENSAMENTE TUTTI PER L'AIUTO E LA PAZIENZA
come avrete notato non sono un sistemista scaltro: principalmente programmo, solo che avendo da gestire una webapp distribuita su 10 server e NON essendoci un sistemista vero e proprio, mi devo arrangiare. Fino adesso non ero mai sceso a livello tcp me l'ero sempre cavata con cose a "pi alto livello". Purtroppo l'attacco avvenuto alla macchina principale del sistema e guarda caso in questi giorni il mio capo (che ne capisce pi di me a livello sistemistico) in giro per il mondo e non mi pu aiutare.

COMUNQUE Il discorso non chiuso perch voglio capire meglio alcune cose e propagare le modifiche agli altri server.
Soprattutto: veramente impossibile risalire all'autore dell'attacco se questo usa IP cammuffati, o c' qualche trucchetto alla "film americano"?

@LoneyWolf
- Il supporto tecnico dei server mi ha assicurato che l'hardware ok
- Ho gi messo una cosa molto simile in iptables anche per la porta 22
- Certo che riavvio sysctl e iptables [fin li ci arrivo :)]
- ListenBackLog = 10000

@dankan77
- lo schema architetturale della mia webapp abbastanza complesso: 10 server come dicevo prima. Posso certo fornirlo ma penso che per la questione del syn flood facciamo prima a simulare che sia su una macchina unica e pari. Ho gi fatto tutti i test con "prova del 9" per assicurarmi che non sia il mio sistema stesso che mi causa questo overload di syn requests. Della cosa ne sono abbastanza sicuro: quello il mio pane php quotidiano...
- fino adesso per lavorare sui syn ho usato netstat e vari grep per evdenziare gli ip...
ma immagino che tu intenda qualcosa di pi strutturato... puoi darmi qualche indicazione ulteriore magari che valori monitorare e se c' qualche tool?
- non so cosa sia un "SAR", indago...
- sempre pronto a crescere, cosa intendi per "approccio pi di di tipo enterprise fac-simile" :)
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: smeserver - 12 Ottobre 2011, 12:24:44
consiglierei all'OP anche di porre la domanda, con quanti pi dettagli possibili (i.e. un riassunto di quanto descritto qui per imp0ostazioni macchina/e e architettura) sul ng it.comp.os.linux.sys, dove leggono eminenze grigie degli isp nostrani (anche MOLTO grossi e noti).. certamente potr avere qualche suggerimento in pi
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: dankan77 - 12 Ottobre 2011, 14:57:35
Per quanto riguarda lo schema architetturale sempre bene disegnarlo magari con DIA e scrivere documentazione sui vari processi e customizzazioni dei sistemi in modo da sapere bene cosa f ogni server.
Molte aziende creano una knowledge base interna come repository ufficiale di progetto.
Il sar f parte del pacchetto sysstat che presente in qualsiasi distro linux/unix tu possa conoscere o avere conosciuto :-) installalo(ma penso che sia gi presente) sui sistemi centos con yum install sysstat e studiati come funziona.
Come tools statistico io utilizzo munin, ad esempio con le statistiche di netstat potresti vedere non solo le statistiche dei syn/fyn ma anche dei pacchetti di reset e tutta la parte networking e netfilter (iptables) in maniera molto dettagliata.
La parte di tuning di un sistema Unix/Linux la parte pi interessante per un sistemista. :-)
Quando mi sono avvicinato a Linux lo spot era chiaro:
Vuoi far rivivere il tuo vecchio 386 in cantina?
Usa Linux e spremi fino all'ultimo bit dal tuo HW a costo zero. :)

Oggi che l'HW costa niente sempre pi difficile trovare tuning fatti bene perch si tende a scalare sia orizzontalmente che verticalmente senza far uso di un processo di capacity management e verificare quanto si pu spremere da un server sia fisico che virtuale :-)
E' il sistemista che f la differenza non solo il ferro/budget!
Buon studio.
Ciao
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 12 Ottobre 2011, 16:50:50
Sto studiando alla grande...

Ma che ci sia una maniera di risalire all'IP effettivo che compie l'attacco? O meglio che lascio perdere e mi concentro su come difendermi...?
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: dankan77 - 12 Ottobre 2011, 17:19:33
Dal manuale di nmap:

-S <IP_Address> (Spoof source address)

    In some circumstances, Nmap may not be able to determine your source address (Nmap will tell you if this is the case). In this situation, use -S with the IP address of the interface you wish to send packets through.

    Another possible use of this flag is to spoof the scan to make the targets think that someone else is scanning them. Imagine a company being repeatedly port scanned by a competitor! The -e option and -Pn are generally required for this sort of usage. Note that you usually won't receive reply packets back (they will be addressed to the IP you are spoofing), so Nmap won't produce useful reports.

A questo punto se chi attacca non riceve nessun report statistico perch di fatto gli ip spoof"ati" procedono a ritroso verso il falso source come potresti fare tu a risalire al tuo aggressore?
Prima o poi si stancher :-)

Ciao
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: lossoth - 14 Ottobre 2011, 10:46:11
Ciao, rieccomi ancora con altri problemi.
 :'(
Da quando ho riacceso tutto ho dei problemi con postges: alcune volte ha dei rallentamenti improvvisi e le query fatte dall'interfaccia web sono troppo lente.
Postgres gira sulla stessa macchina sotto attacco e viene lanciato dal php sempre sulla stessa macchina per eseguire delle query da visualizzare nella parte pubblica web.
Ieri ho fatto un po' di tuning di postgresql.conf alzando i seguenti valori da -> a:
- max_connections 200->400
- shared_buffers 32Mb->64Mb
- effective_cache_size 128Mb -> 4096Mb
(il server ha 8Gb RAM)

C' una cosa strana che non capisto:
analizzando i log delle query fatte da php via apache queste sono nell'ordine dei 5 secondi! mentre la stessa query lanciata con explain analyze in psql sul medesimo db (via shell) da un tempo nell'ordine dei 0.05 millisecondi!
Quindi non il db in se ad andare piano, ma quando una query viene lanciata da php.

Qualche idea?

PS:
riguardo la documentazione e gli schemi della mia applicazione: non posso girarvi pari pari la documentazione ufficiale (gi parlato con i capi...), dovrei riscriverla ad hoc e non ho tempo...
Per per questo problema possiamo supporre di avere a che fare con un unico server sotto attacco dove gira Apache, php e postgres.
Titolo: Re: attacco "SYN FLOOD" con spoofed IP
Inserito da: LonelyWolf - 14 Ottobre 2011, 12:07:31
Come ti ho scritto qualche post indietro, postgres è molto lento con php rispetto a qualsiasi altro strumento usi per connetterti (a.e. python).
Qua ha fatto dei test (xò è il 2008) dove è proprio la coppia php+postgres ad essere lenta:
http://blog.charcoalphile.com/2008/02/22/php-is-slow-really-slow/

Qua potresti trovare qualche soluzione:
http://wiki.postgresql.org/wiki/FAQ#Why_are_my_queries_slow.3F_Why_don.27t_they_use_my_indexes.3F
http://wiki.postgresql.org/wiki/SlowQueryQuestions

Comunque se vogliamo passare a quest'altro argomento è meglio aprire un nuovo topic.