Postfix a greylisting …

Postfix a greylisting …

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ů.

3 thoughts on “Postfix a greylisting …

  1. Pingback: Postfix a amavis. Jak nainstalovat a nakonfigurovat. - Lomítkáři

  2. Al

    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

    1. Lomítkář Merlin Post author

      Souhlas, už to nějaký pátek tak je. Nicméně nechme to na invenci adminů 😉

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *