Tales from the Machine Room |
Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | Set language to:en it | Login/Register
E' un (quasi) tranquillo giovedi' quando una iconcina rossa lampeggiante attira la mia attenzione. Hummm... pare che il server di $noivogliamopagarepocoanziniente abbia qualche problemino. Vediamo un po'... ed infatti e' lento come la fame. Che accidenti ha sto' coso? E vedo subito quale e' il problema: 6000 SYN contemporanei. Ahi ahi ahi signora Ghemboli, mi e' caduta proprio sul DOS!
Yup, un bel DDOS niente meno, in un paio di minuti becco un migliaio di IP diversi, russia, cina, korea, c'e' di tutto e di piu'.
E dato che $noivogliamopagarepocoanziniente vuole pagare poco (anzi niente), il foxxuto sito e' ospitato su una macchina condivisa insieme ad altri siti che adesso stanno soffrendo come dei bassotti sulla neve. Vado a riportare a Da Boss.
DB - Che possiamo fare?
IO - Bloccare l'IP a livello di firewall.
DB - Tutti gli ip che arrivano? Ma sono tanti...
IO - No, io intendo bloccare l'IP del server, metterlo off-line.
DB - ??? Come off-line??
IO - Allora, lo scopo di questa gente (gesticolando verso lo
schermo del computer), intendo chi sta' facendo l'attacco, e'
di rompere i marroni e far spendere dei soldi per cercare di
respingerlo, lo scopo di quell'altra gente, intendo $noivogliamo, e'
di pagare il meno possibile (anzi di meno). Quindi qualsiasi
cosa noi facciamo andra' contro il principale volere dei nostri
clienti. Percui la cosa piu' semplice da fare e' mettere il sito
fuori linea ed aspettare un paio di giorni, tra un paio di giorni vedremo
se si sono stufati oppure no.
Ovviamente DB ha cominciato ad ullullare riguardo ai livelli di servizio e roba cosi'...
IO - In tal caso la cosa migliore da fare e' spostare il sito su un server dedicato in un diverso range di rete in modo che almeno non rompa i marroni agli altri siti che sono su quella macchina, ovviamente $noivogliamo dovra' pagare il setup ed il mantenimento, e poi cominciare ad aggiungere ratelimiting et similia. Ma ovviamente questo costera' tempo (e quindi soldi) e se non vuoi regalarlo a $noivogliamo qualcuno dovra' anche pagare.
Alla fine siamo rimasti che io avrei iniziato l'installazione del nuovo server fisico e dedicato per $noivogliamo mentre DaBoss avrebbe gestito la discussione monetaria con $noivogliamo. L'installazione mi prende circa un'oretta, mentre sono li' che cerco un indirizzo IP libero ed arrangio con Bart un routing su uno degli switch al centro arriva DB.
DB - Ho parlato con UL di $noivogliamo ed abbiamo l'ok per lo spostamento,
il server e' pronto?
IO - Installato e' installato, ma ancora non ho aggiunto niente di
firewalling e ratelimiting. Quindi direi che c'e' ancora da lavorarci...
DB - Ma lo possiamo fare dopo che e' installato al datacenter! Mettetelo
su' subito...
Qualche cosa mi fa' pensare che i vari clienti che sono sul server condiviso (che anche loro sono nella stessa lega dal braccino corto di $noivogliamo) hanno cominciato a lamentarsi per la lentezza dei loro siti... Comunquesia, ci manca poco che DB spinga me e Bart fuori dalla porta col server in mano per andare ad installarlo. Il che significa che un'oretta dopo il server e' Up & Running ma senza uno straccio di firewall, ed io sono li' che stramaledico DB per la sua foxxuta fretta mentre cerco di mettere insieme un paio di regole di iptables per bloccare sta' schifezza.
E subito scopro un bel problema: CentOS ha un bel bug in iptables percui al massimo posso avere 100 indirizzi nella tabella di rate limiting.
Dopo un paio di smadonnamenti in direzione generica di CentOS e di chi dubita della superiorita' di distribuzioni che non masturbano i sorgenti dei software che distribuiscono (tipo Slackware per intenderci), metto insieme un paio di script da mettere in pipe al log di Varnish in modo che se lo stesso IP mi appare piu' di 20 volte in 30 secondi finisce nel firewall in una bella chain "blacklist".
Rimango a guardare la chain che parte da zero e raggiunge i 5000 elementi nel giro di una ventina di minuti... Wow... Ok, e' ora di andarsene a casa. Quella sera mi collego verso le nove per dare un'occhiata e vedo che la chain ha raggiunto i 7000 elementi, nel frattempo il numero di pacchetti per secondo sullo switch e' fisso a 12 mila. Mi sa che $noivogliamo ricevera' una bella fatturina per uso di banda... poi mi viene un dubbio e guardo questo cappero di sito di $noivogliamo... hummm... non vedo niente di strano, niente che possa attrarre un DDOS, qualche cosa mi fa' pensare che qualcuno abbia cannato l'indirizzo ip del ricevente, ma che ci vogliamo fare?
Comunque sia, il sito rimane relativamente lento ma funzionale per i giorni a seguire, mentre il numero di connessioni varia da 6000 a circa 200 durante il fine settimana per poi risalire fino ad 8000 al martedi' successivo. DB persiste nel domandare updates della situazione e "miglioramenti", io gli faccio presente che continuare a masturbare un firewall non porta nessun miglioramento ma semplicemente aumenta la fattura che dovremmo spedire a $noivogliamo alla fine del mese.
Dopo un'altra settimana, siamo sempre li' sulle 5~6000 connessioni contemporanee ed oltre 8000 indirizzi IP nel firewall. Non so chi e' che questa gente abbia fatto incazzare ma paiono ben determinati. Ovviamente bisogna anche considerare che a loro (quelli del DDOS) non costa niente. Ma io mi aspetto di sentire altri ullullati quando $noivogliamo ricevera' la fattura per il tempo speso a stare dietro al loro sito del menga.
Davide
09/05/2011 08:00
Comments are added when and more important if I have the time to review them and after removing Spam, Crap, Phishing and the like. So don't hold your breath. And if your comment doesn't appear, is probably becuase it wasn't worth it.
By Alberto posted 09/05/2011 08:56
Forse qualcuno si sarà incazzato con $noivogliamo perchè non è stato pagato per qualche servizio
-- Alberto
By z f k posted 09/05/2011 09:09
Beh, costa niente... Le botnet si affittano, costano poco, ma costano; e tenere su un attacco per due settimane di fila comincia a far salire il totale.
Per curiosità, che porte/servizi hanno attaccato?
CYA
-- z f k
@ z f k By Davide Bianchi posted 09/05/2011 09:29
Per curiosità, che porte/servizi hanno attaccato?
Solo http. D'altra parte non c'e' altro aperto sul firewall per quel server.
-- Davide Bianchi
By WM posted 09/05/2011 09:18
>> non vedo niente di strano, niente che possa attrarre un DDOS
giusto per curiosita': cosa ti saresti aspettato?
WM
-- WM
@ WM By Davide Bianchi posted 09/05/2011 09:30
giusto per curiosita': cosa ti saresti aspettato?
Bho! Con tutti i siti che ospitiamo che sono collegati a parti del governo o servizi piu' o meno pubblici mi sarei aspettato qualche cosa del genere.
-- Davide Bianchi
By Kim Allamandola posted 09/05/2011 09:19
Io suggerirei al $cliente tanto per fargli digerire il conto: "ad ogni
modo lei deve pagare per colpa di terzi; può sporgere denuncia e
valutare se ha una qualche copertura assicurativa..."
Cosa che lo terrà impegnato a trovare un'"assicurazione" per moooolto
tempo
#ifdef vagamente_OT
Da ex {Open,}Solarista, orfano di SUN, che non si sente troppo cullato
sotto IllumOS, debbo dire che Ubuntu non se la cava male: ha un po'
di bug, non ultimo della 11.04, l'install btrfs+luks+lvm dove
grub non riconosce il nuovo btrfs --- ZFS, DOVE ***** SEI --- e devi
lavorare un minimo a mano (o a script), ma fa il suo lavoro sia sui
desktop che sui server... La slack l'è un po' scomoda da mantenere
IMO...
#endif // vagamente_OT
-- Kim Allamandola
@ Kim Allamandola By Anonymous coward posted 10/05/2011 20:38
di bug, non ultimo della 11.04, l'install btrfs+luks+lvm dove grub non riconosce il nuovo btrfs --- ZFS, DOVE ***** SEI --- e devi
Dove e' ZFS? sicuramente NON in ubuntu, visto che linux e zfs hanno licenze che si escludono a vicenda. quindi ninete ZFS in "kernel space" linux.
Prova a cercarlo in Debian GNU/kFreebsd
By Manuel Ravasio posted 09/05/2011 09:24
E una volta di piu' Slackware vince a mani basse!!!
-- Manuel Ravasio
By Anonymous coward posted 09/05/2011 10:58
> E subito scopro un bel problema: CentOS ha un bel bug in iptables percui al massimo posso avere 100 indirizzi nella tabella di rate limiting.
Cos'è... i commerciali si son messi a smanettare nel codice?
Un limite "serio", messo da un programmatore, sarebbe... che so... 64, 128... 256... ma 100 che numero è?!??
-- Anonymous coward
By Verzasoft posted 09/05/2011 14:22
Un limite "serio", messo da un programmatore, sarebbe... che so... 64, 128... 256... ma 100 che numero è?!??
E' un numero tondo...
-- http://www.verzasoft.tk
@ Verzasoft By BlackKatMike posted 09/05/2011 17:14
Un limite "serio", messo da un programmatore, sarebbe... che so... 64, 128... 256... ma 100 che numero è?!??
E' un numero tondo...
Tondo in base 10, sì, ma si parlava di limiti tondi in base 2...
-- BlackKatMike
By Anonymous coward posted 09/05/2011 18:50
>DB - Che possiamo fare?
come mi stanno sulle balle quelli che parlano al plurale qnado poi il lavoro lo devi fare tu: "Contattiamo gli utenti", "sistemiamo quei 12 pc entro oggi", "redisgiamo le specifiche"... etc etc
>DB - Ho parlato con UL di $noivogliamo ed abbiamo l'ok per lo spostamento,il server e' pronto?
ma sicuramente $noivogliamo non sono stati informati dei costi....
>Ma io mi aspetto di sentire altri ullullati quando $noivogliamo ricevera' la fattura per il tempo speso a stare dietro al loro sito del menga.
ah ecco. Mi raccomando la storia quando $noisiamopezzenti piangera' strappandosi le vesti e fara' di tutto per non pagare.
PS: ma perche' "ullulare" con 3 "l"? non me bastano due?
PS2: ma come si fa a "ddos"sare qualcuno? come si contattano i padroni della botnet? Accettano paypal? no, perche' c'e' un certo sito italiano che mi sta sulle balle, quanto costa tirarlo giu' qualche giorno?
@ Anonymous coward By Davide Bianchi posted 09/05/2011 18:59
ma perche' "ullulare" con 3 "l"?
Se sei una persona normale "ululi", se sei un UL... ULluli...
-- Davide Bianchi
@ Davide Bianchi By Anonymous coward posted 09/05/2011 22:20
ma perche' "ullulare" con 3 "l"?
Se sei una persona normale "ululi", se sei un UL... ULluli...
Castello ululì, lupo ululà, UL ullulà!
-- Anonymous coward
By Dotnette posted 11/05/2011 09:40
Mettere un sito down per giorni mi sembra troppo estremo.
Soluzione mia: bloccare TUTTI gli IP cinesi e coreani...e se il sito è a carattere locale magari anche russi, turchi e brasiliani...e soprattutto quelli INDIANI
Se qualche cinese si lamenta gli si dica che è colpa della censura del suo governo.
-- Dotnette
@ Dotnette By Davide Bianchi posted 11/05/2011 10:04
bloccare TUTTI gli IP cinesi e coreani
che e' fattibile SE il sito in questione e' l'unico sul server e non su un server condiviso e gli altri non hanno problemi...
-- Davide Bianchi
This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.
This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.
This site isn't optimized for vision with any specific browser, nor
it requires special fonts or resolution.
You're free to see it as you wish.