Mailservere og deres skalerbarhed

Personlige noter fra et foredrag cirka 2005.

Mailservere og deres skalerbarhed
Noter fra foredrag med Phil Regnault (@catpipe.?)

IDE-diske performer dårligt, når mange samtidige read/writes.
Brug gerne raid1 disk setup
Brug fsync() ofte :)

Brug postfix. Eksempel på hvordan sikker software skrives.
Dokumentationen er god.

Man kan "rydde ud" i indkommende mails med RBL (realtime black lists).

master svarer lidt til inetd, som starter processer on demand.
qmanager er en sceduler

Postfix laver throttling/tar-pitting mod klienter og programmer, der laver "høj"/underlig trafik.
Er meget defensive og forsigtig. Tjekker return codes, giver god log osv..
Gør brug af inter process comm via sockets. (ja det er nok sundt at læse lidt om...)
Gør brug af chroot for mange processer og daemons.
Bruger ikke setuid :)

spawn control gennem master.cf
hvor mange proc må køre, max antal af meget

main.cf er "resten" af configgen

læs man-siden postconf(5) og postconf(1)
postconf er også et værktøj, til at configge.

kommandoen mailqueue viser aktuelle kø

Man kan lade mails indefra blive tjekket mindre, hvis man stoler på brugerne.
se smtpd_restriction_classes

Man kan benytte egress ip filtrering på mails også.
(så man kun kan sætte sin egen src på mails)


MX-prioritet (10, 20 osv) går fra 0 til 255, med 0 som højeste
Først prøves mx-recorden, dernæst a-records

Til dns-troubleshooting:
brug dig, og ikke nslookup. nslookup opfører sig ikke som en "rigtig" klient.

(mtr? i stedet for ping/traceroute?)


Forskellige regler kan tilføjes på forskellige levels:
client level 		smtpd_client_restrictions
helo (initial smtp greet)	smtpd_helo_restrictions
sender domain		smtpd_sender_restrictions
recipient domain	smtpd_recipient_restrictions
data level		smtpd_data_restrictions

tar-pitting kan slåes fra med:
smtpd_error_sleep_time = 0

Når man tester, kan man stille denne, så alt går igennem, men reject-warnings logges godt.
warn_if_reject

værd at læse:
http://postfix.org/TUNING_README.html

gode tools for performance analyse
sockstat, lsof, dnstop, gstat, netstat, tcpdump, vmstat, ps, systat, top

gode tools for MAIL (postfix) performance analyse
qshape, queuegraph, mailgraph

Per default er "unknown domain" en temp error. Så næste gang mail fra samme domain, tjekkes igen.
Men ændr error code fra 450 til 550, så der er permanent deny.

Filtrer tidligt, og med stigende proces requirements:
check_client_access
reject_unknown_sender_domain
HELO requirement (mange spammere sender ikke HELO (dårlige klienter gør måske heller ikke))
RBLs
relay_recipient_maps
greylisting (hvis samme prøver flere gange, er det nok ikke en spammer)
header_checks / body_checks (kosteligt, da det bruger reg.exp.)
content filtering


relay_recipient_maps beskytter mod dict. attacks
husk at bruge den FØR content filtering

læs man-siden access(5), for at se filtre og maps


Hardware:
RAM og hurtige diske, er vigtigere end CPU (med mindre man laver meget content filtering)
Med meget filtering, er CPU og RAM vigtigt.
soft updates er godt med postfix


content filtering med amavisd-new.
content filter library kan fint ligge på mem.fs.

hvis man laver unpacking af vedhæftede, så brug mem.fs. til det.



Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *