Někdy taky graylisting. Docela jednoduchá a účinná metoda jak snížit množství spamu, které se vůbec dostane do systému k identifikaci. Díky tomu taky docela hezky – obzvláště na vytížených smtp serverech – poklesne vytížení stroje.
Funguje to tak trochu divoce, vzpomínám si, když se tato metoda začala implementovat, že jsem se divil, proč najednou zůstávají zprávy ve frontě a okolní servery se tváří jako přetížené, nemocné a tak vůbec. Věc se má totiž tak, že při prvním kontaktu serveru proběhne klasická sekvence „očuchávání“ až do místa „rcpt to“ – tehdy graylist server vyhodnotí, zda protistrana (jak server, odesílatel, tak i příjemce) spolu již někdy komunikovali (resp. zda skrze něj už někdy protekl mail ze serveru odesílatele na adresáta) a pokud nikoliv, odpoví chybovým kódem SMTP 450 + DSN textem zpravidla ve znění
450 4.2.0 <kdosi@lomitkari.cz>: Recipient address rejected: Greylisted
V tuto chvíli si regulérní poštovní server zprávu odloží do deferred queue a na nějáký čas na ni zapomene. Po určitém – definovaném – čase regulérní poštovní server zprávu pokusí se odeslat znovu, protože chyba DSN 450 znamená vlastně jen „Sorry, teď jsem nějak vytížen, zkus to za čas zase“ a pokud je prodleva větší než nastavená, server už zprávu přijme a zpracuje. Neregulérní poštovní server (čti zavirovaný PC) oproti tomu rozesílá co nejvíce zpráv na co nejvíce adres a protože se většinou jedná o maličkatý tupý kus software, nestará se za nehet o návratové kódy a prostě další pokus o doručení neuskuteční.
Nevýhodou je, že první zpráva v komunikaci má jistou latenci – zpravidla kolem 5 minut. Řekl bych ale, že to je rozumná daň. Implementace je až trapně jednoduchá – po instalaci balíku postgrey upravíte /etc/postfix/main.cf
smtpd_recipient_restrictions = ... check_policy_service inet:127.0.0.1:60000
Případně upravíte port, prodlevu a hlášku v /etc/default/postgrey a po restartu obou daemonů už zpravidla vše funguje jak má.
Za 3 minuty práce ušetřeno mraky výpočetního času, místa a nervů.
Pingback: Postfix a amavis. Jak nainstalovat a nakonfigurovat. - Lomítkáři
Nově běží postgrey na portu 10023, takže zápis v /etc/postfix/main.cf bude:
check_policy_service inet:127.0.0.1:10023
Jinak budou ve /var/log/mail.log chyby:
warning: problem talking to server 127.0.0.1:60000: Connection refused
warning: connect to 127.0.0.1:60000: Connection refused
Souhlas, už to nějaký pátek tak je. Nicméně nechme to na invenci adminů 😉