Newsgroup: it.comp.sicurezza.varie
Titolo: Tecniche di prevenzione e difesa dei DoS.

Ciao,
    recentemente mi sono trovato in difficolta per un domanda posta in
questi termini:" ma lei cosa usa per prevenire e difendersi dai Dos?"
Io sulle prime ho detto che riesco o meglio ho la presunzione di
difendermi da quelli fatti con il metodo che sfrutta gli ICMP e che
comuqneu evito di rispondere agli ICMP broadcast pe rnon essere a mia
volta utilizzato come ripetitore.
Ma il tizio, molto freddamente mi dice:" va bene, icmp no, ma  se io le
faccio un milione di richieste al sito ??? che fa non mi risponde??"
A quel punto ho dovuto cedere, in quanto non uso sistemi hw/sw tipo pix
o altri che, a dir suo, prevedono questo tipo di attacchi e li
difendono.
Nel discoros gli è sufggito in particolare che questi sistemi usano,
"anche" il QoS...mhhh
Ma non sarà l'uovo di colombo?? ho pensato fra me e me...
Cioè, questi sistemi non fanno altro che darsi dei limiti al numero di
richieste che possono accettare, e tutto cio che va oltre viene
bloccato???
Insomma, come (con linux) potrei fare  per non essere vittima di DoS al
servizio web, o in generale ad altre porte, senza dovermi sobbarcare i
soliti espertoni che ti propinano solo cose ultra standard ma con nomi
altisonanti??
Grazie per le possibili infomarzioni.

 writes:
Intervengo per non far cadere nel vuoto uno dei pochi messaggi
riguardanti prevenzione e difesa da DoS.
Michele> sistemi non fanno altro che darsi dei limiti al numero di
Michele> richieste che possono accettare, e tutto cio che va oltre
Michele> viene bloccato???  Insomma, come (con linux) potrei fare per
In modo dipendente dal servizio offerto si possono usare diverse
tipologie di difesa. Ad esempio una lunga serie di (tentativi)
connessioni che in breve satura i log del tuo server o che ti
"impalla" la macchina a causa di una non perfetta (leggi errata)
configurazione dei limiti che (NON) impone il sistema. Magari proprio
perché non si può limitare a priori...
Michele> non essere vittima di DoS al servizio web, o in generale ad
Michele> altre porte, senza dovermi sobbarcare i soliti espertoni che
Michele> ti propinano solo cose ultra standard ma con nomi
Michele> altisonanti??
Un primo approccio un po' semplicistico:
- A livello di protocollo si può agire sul QoS dei kernel >= 2.2
limitando il livello massimo di traffico che ogni protocollo può
avere. Meglio ancora con i kernel >= 2.4 si può sfruttare il codice di
ip_conntrack e limitare il numero di connessioni stabilite in una
certa unità di tempo con impostazioni sui picchi e altro (qui
ovviamente si rimanda alla documentazione). Ottimo per risolvere i
problemi di log troppo estesi e DoS affini: in pratica si impedisce
una larga fascia di DoS a quello che sta a valle di questa
macchina... supponendo che ci sia a valle qualcosa (=DNAT).
Mescolando a dovere iproute2 e netfilter si può IMHO avere qualcosa di
decente che è possibile ottenere AFAIK solo con router *molto*
costosi.
- A livello di programmi si può agire sul solito -con pam-
/etc/security/limits.conf (o simili) e sulle altre impostazioni che i
singoli programmi server hanno - se ce l'hanno (ma questa è una storia
vecchia).
Spero che altri aggiungano proprie impressioni e/o contributi
riferendosi anche e soprattutto a altri metodi sia hardware che
software.
Fw-up impostato: meglio continuare la cosa su un solo ng.
Ciao
Marco

Con il modulo `limit' di iptables (kernel linux 2.4) credo si possano 
risolvere parecchi problemi...
Intanto quello dei log. Si `limitano' le regole di log, cosi` per fare
un esempio:
iptables -A INPUT -p icmp -m limit --limit 20/minute -j LOG
iptables -A INPUT -p tcp -m limit --limit 15/minute --syn -j LOG 
E la stessa cosa direi che si puo` applicare anche all'accettazione dei
pacchetti:
iptables -P INPUT REJECT
iptables -A INPUT -p tcp \
-m limit --limit 30/minute --limit-burst 10 \
--syn --dport 22,25,21,80,443,119,110 -j ACCEPT
iptables -A INPUT -p tcp ! --syn --dport 22,25,21,80,443,119,110 -j ACCEPT
Con questa roba quando scatta il meccanismo del limit il sistema si isola da
solo, invece che continuare a rispondere fino a esaurire ogni risorsa 
disponibile. 
Il D.O.S. e` pur sempre fatto, ma almeno non c'e` da perdere tempo
per far ripartire il sistema quando l'attacco finisce...
--
    Pardo 
 
www.pardo.cjb.net

 iptables -A INPUT -p tcp -m limit --limit 15/minute --syn -j LOG 
Eh si, questo e' utile quando certi brutti ceffi ti mandano un boink con
source address il broadcast del tuo IP, nevvero? <G>
-- 
Pierluigi De Rosa (
tho...@durin.khazad-dum.net
).
<<      LINUX: the choice of a GNU generation     >>
<<   For my real address... ask the Balrog.       >>
* Sostenete la Lega per la Soppressione dei Troll *

iptables -A INPUT -p tcp -m limit --limit 15/minute --syn -j LOG 
Uora uora ti do la brutta notizia.
Se ti mando 15 portscan da indirizzi falsi, subito dopo posso farti
un brutale connect scan, e a quel punto il log te lo puoi fumare in
un apposito narghile'.
A meno che iptables non faccia un calcolo RANDOM (il meccanismo e',
per certi versi, identico a quello usato da "randline" usando pero'
uno sliding buffer... ci avevo gia' pensato per iplogd).
Leonardo
-- 
And where the black and corkscrew towers climb
Lost and athirst the ragged pack abides,
Old as the aeons, trapped in tombs of time,
Sailing the tortuous temporal tides...

, "Pardo"
<Pardo@fake_address.do_not_mail> wrote:

Dove si trovano tutte queste belle cosette su iptables?
Non la sola sintassi, ma anche dei begli esempi!
-- 
Roberto Tagliaferri<-> r.tagliaferri@(forse)
tosnet.it
	Povero Carlo.. E` l' unico a cui hanno rifilato 
	una Camilla scaduta senza neanche il coccio del
	Mulino Bianco!!!

Non la sola sintassi, ma anche dei begli esempi!
$ cat ~/.netscape/bookmarks.html | grep netfilter
    <DT><A 
HREF="
http://netfilter.filewatcher.org/unreliable-guides/packet-filtering-HOWTO.html#toc10
" 
ADD_DATE="972828997" LAST_VISIT="976376787" LAST_MODIFIED="974015969">
Linux 2.4 Packet Filtering HOWTO</A>
    <DT><A 
HREF="
http://antarctica.penguincomputing.com/~netfilter/unreliable-guides/NAT-HOWTO.html
"
ADD_DATE="974215390" LAST_VISIT="976295288" LAST_MODIFIED="976295288">
Linux 2.4 NAT HOWTO</A>
-- 
    Pardo 
 
www.pardo.cjb.net

 [....]
Thank's !!


 - rimuovi XXX  x  rispondere  ICQ	#8814554
 
Prima di offendere qualcuno contate fino a dieci: vi verranno in mente molti
piu' insulti.
		-- Laura Liotta

Scusate ma mi è sparito il NG dalla lista, quindi provo a mandare un mex
(bah)