← Back to team overview

sslug-teknik team mailing list archive

Re: Downloadmanager, hvordan stoppes

 

On Tue, 2002-01-29 at 11:44, Kim Hermansen wrote:

> Må tilstå at jeg trode at der var en ganske enkel måde til at filtrere på.
> Filtrere efter følgende princip:
> 
> Mere end 3 "get" inden for 1 sec. fra samme ip ; så drop alle forbindelser til ip. Hvis du bare droper forbindelser, vil enhver klient forsøge at genetablere 
forbindelse og så har du hele nettet imod dig. :( 
Der er ingen grund til at hjælpe dem der muligvis angriber dit site. 
Det er bedre at beholde de eksisterende forbindelser og afvise
yderligere forbindelser med "server busy" eller lign. 

> Mere end 6 "get" for samme fil fra samme ip 3 sec. ; så drop alle forbindelser til ip.
>     # Mere end 6 for at tillade "opdater" 3 gange inden for 3 sec
> Vent 10 sec. før der tillades ny forbindelse fra ip.

Det er det for såvidt netværkslaget angår - dvs TCP laget. 
Men problemet er her at, http protokollen ligger ovenpå tcp 
laget. Mao. Der er ingen mulighed for i netfilter at filtrere 
på get. 

Til gengæld kan du måske lave regler i netfilter der sætter en 
øvre grænse for hvor mange forbindelser kan accepteres fra 
et enkelt IP nr. 
Jeg tror ikke det er nemt, men det må kunne lade sig gøre. 
En prototype på sådan en regel ville være: 

#!/bin/sh 
... 
iptables -N from-ip-192-168-0-1
...
DIRECTION="FORWARD"
iptables -A $DIRECTION -s 192.168.0.1 -j from-ip-192-168-0-1
... 

#Begrænsning for eet enkelt ip nr. 
DIRECTION="from-ip-192-168-0-1"
iptables -A $DIRECTION -m limit --limit 1/s --limit-burst 60 -j RETURN
iptables -A $DIRECTION -m limit --limit 1/minute --limit-burst 10 \
  -j LOG --log-level warning --log-prefix "fraadser " 
iptables -A $DIRECTION -m limit --limit 3/s --limit-burst 100 -j RETURN
iptables -A $DIRECTION -j DROP
#*********************************

IP adressen er desværre hardkodet ind i skriptet. 
Det smarte ved disse regler er, at hver pakke undersøges for at 
se om den kommer fra en "frådser".  Dernæst undersøges om 
frådseriet er under en grænse på een pr sek. hvis det er, sendes 
pakken til bage til FORWARD kæden for almindelig behandling. 

Hvis forbruget er over det tilladte (1/s) bliver pakken sendt til 
loggen og der logges kun med eet minuts mellemrum. Så bliver loggen 
ikke fyldt op. 

Hvis denne ip adresse sender op til 3 pakker pr sek., sendes de 
direkte til den næst-nederste regel. Hvis trafikken er over 3 
pakker pr sek, bliver de droppet uden yderligere varsel af den 
nederste regel. 
Klienten hænger og venter på respons fra dit site. 

Jeg har disse regler i min firewall men der er andre navne i 
stedet for from-ip-192-168-0-1 og de bruges til et andet formål. 
Derfor ved jeg at selve strukturen i reglerne virker. 

-- 
med venlig hilsen, Anna Jonna Armannsdottir       
Find my key: http://www.keyserver.net: GnuPG key ID: 0x6349D8FB 
fingerprint: E44F A8B9 5088 0036 C0C6  DD2C 9575 7DFE 6349 D8FB
                       ...ooO0Ooo...
   One key-ring to rule them all, One ID to find them,
   One Certificate to bring them all and in the ID-card bind them. 

Attachment: signature.asc
Description: This is a digitally signed message part


Follow ups

References