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.