Bekijk Volledige Versie : Email bom
dennis1309
20/06/08, 22:55
Beste Whters,
Van de week heb ik last gehad van een emailbom die door een klant is verstuurd. Helaas veroorzaakte de emailbom een hoop schade op de server en wat downtime.
Hoe kan ik mijn server tegen dit soort praktijken beschermen.
Aub advies?
Alvast bedankt!
Ik wil dit graag een tweede keer voorkomen.
Mvg,
Dennis
Triloxigen
20/06/08, 23:01
Een server die plat gaat door het versturen van (veel) emails?
Meestal loopt de queue gewoon vol.
Zet een controle op je mailserver, als die niet meer werkt gewoon even kijken dan heb je het zo door.
dennis1309
20/06/08, 23:41
doordat een user een mailbom.php script gebruikte en extern naar een gmail account ging mailen raakte de server zo overbelast dat we een harde reboot moesten doen.
De load was gigantisch hoog.
Door de harde reboot gingen er dingen mis.
Dus hoe kan je nou de server beschermen dat een user heel veel emails gaat sturen met een script?
Ik hoop dat dit wat duidelijker is.
Alvast bedankt
Mvg,
Dennis
SMTP per user limiteren? Prima te doen hoor. Wat gebruik je als MTA, Exim/Sendmail (standaard DA-setup?).
Vanzelfsprekend ga je de schade verhalen of stuur je de klant naar de /dev/null.
Je mailque leeg je trouwens vrij simpel met 1 regeltje in de shell en wat bashwerk:
empty_exim_que.sh
#!/bin/sh
if [ $1 ]; then
echo "`exim -bpru | tr '\n' + | sed -e "s/++/=/g" | tr -d + | tr = '\n' | grep "$1" | awk {'print $3'} | xargs exim -Mrm | wc -l` E-Mails deleted"
else
echo "If you want to delete ALL the `exim -bpc` E-Mails on mail queue, give this command:"
echo "exim -bpru | awk {'print $3'} | xargs exim -Mrm"
echo ""
echo "If you want to delete only mails with an specific sender/recipient, use:"
echo "$0 [sender/recipient]"
fi
[root@sv68 ~]# ./empty_exim_que.sh
If you want to delete ALL the 0 E-Mails on mail queue, give this command:
exim -bpru | awk {'print '} | xargs exim -Mrm
If you want to delete only mails with an specific sender/recipient, use:
./empty_exim_que.sh [sender/recipient]
^^ In dit geval is de que gewoon netjes leeg.
dennis1309
21/06/08, 09:44
Randy,
Heel erg bedankt. Hier heb ik wat aan.
Met vriendelijke groet,
Dennis Fransen
SMTP per user limiteren? Prima te doen hoor. Wat gebruik je als MTA, Exim/Sendmail (standaard DA-setup?).
Vanzelfsprekend ga je de schade verhalen of stuur je de klant naar de /dev/null.
Je mailque leeg je trouwens vrij simpel met 1 regeltje in de shell en wat bashwerk:
empty_exim_que.sh
#!/bin/sh
if [ $1 ]; then
echo "`exim -bpru | tr '\n' + | sed -e "s/++/=/g" | tr -d + | tr = '\n' | grep "$1" | awk {'print $3'} | xargs exim -Mrm | wc -l` E-Mails deleted"
else
echo "If you want to delete ALL the `exim -bpc` E-Mails on mail queue, give this command:"
echo "exim -bpru | awk {'print $3'} | xargs exim -Mrm"
echo ""
echo "If you want to delete only mails with an specific sender/recipient, use:"
echo "$0 [sender/recipient]"
fi
[root@sv68 ~]# ./empty_exim_que.sh
If you want to delete ALL the 0 E-Mails on mail queue, give this command:
exim -bpru | awk {'print '} | xargs exim -Mrm
If you want to delete only mails with an specific sender/recipient, use:
./empty_exim_que.sh [sender/recipient]
^^ In dit geval is de que gewoon netjes leeg.
dreamhost_nl
21/06/08, 15:36
En verder voor het geval er een e-mailbom wordt verstuurd naar je server, zorgen dat er een "rate limiter" in je mail server is ingesteld. Deze zorgt voor een (tijdelijke) blokkade van een IP-adres indien er tegelijkertijd teveel connecties naar je mail server worden gemaakt v.a. een IP-adres.
hostlogic.nl
23/06/08, 11:09
En verder voor het geval er een e-mailbom wordt verstuurd naar je server, zorgen dat er een "rate limiter" in je mail server is ingesteld. Deze zorgt voor een (tijdelijke) blokkade van een IP-adres indien er tegelijkertijd teveel connecties naar je mail server worden gemaakt v.a. een IP-adres.
Dit werkt natuurlijk alleen bij inkomende, niet voor uitgaande mails.
Het verzenden van mails via b.v. php scripts is volgens mij moeilijk te beperken, er wordt namelijk geen gebruik gemaakt van de lokale mailserver, maar het script maakt zelf direct verbinding met de mailservers van de ontvangers. Ik denk dan aan aan oplossing die sommige kabel of ADSL providers gebruiken, waarbij alle uitgaande verbindingen naar poort 25 (ongeacht het doeladres) omgeleid worden naar een relay host, waar je vervolgens limieten en/of spam filtering kunt instellen.
dreamhost_nl
23/06/08, 11:38
En verder voor het geval er een e-mailbom wordt verstuurd naar je server...
Dit werkt natuurlijk alleen bij inkomende, niet voor uitgaande mails.
Dat stond er toch ook... ;)