Stavba nového mailserveru, část druhá

29. února 2008 v 17:45 | PaulMan |  Počítadla
Dokončení stručné dokumentace. Zádrhely, greylisting.

V první části tohoto článku jsem popsal úkol, před který jsem byl postaven, dále svou volbu stavebních částí mailserveru i návodu, kterého jsem se hodlal při skládání držet. Dostal jsem se do fáze, kdy jsem měl stroj s hromadou nainstalovaných a nenastavených programů.

Na čem všem jsem narážel

Nebudu tady popisovat, jak jsem v jednotlivých krocích následoval návod, stačí si přečíst ten. Připojuju jen pár poznámek, co mi nefungovalo a proč (vynechávám záseky typu "po hodině jsem zjistil, že jsou prohozena pole user a password"):
  • v návodu chybí pokyn k vytvoření postfixového konfiguračního souboru mysql-trash.cf - stačí zkopírovat jeden z okolních souborů a upravit hodnoty polí:
                             table = postfix_trash
select_field = destination
where_field = email
  • taktéž pokyn ke kompilaci Maildropu s podporou pro MySQL už je zastaralý, jak se uvádí přímo v návodu. Dnes stačí nainstalovat balík courier-maildrop a je vymalováno
  • s Maildropem jsem si užil trochu toho bolení hlavy, když se odmítal po přijetí mailu startovat. Chyba byla zalezlá v master.cf v nastavení postfixu, ve flags je třeba nastavit správného (virtuálního) uživatele
  • se SASL démonem jsem měl dva problémy. První spočíval ve špatných právech - Postfix spouští (pokud neřeknete v master.cf jinak) smpts v chrootovaném prostředí. Návod na to myslí a nastavuje mj. cestu k PID souboru a potřebné symlinky. V mém konkrétním případě byl ale problém s právy. Řešení spočívá v kontrole práv podél celé cesty k chrootovaným souborům, SASL démon musí být schopen se k nim dostat. Druhý problém pak byl vysloveně pitomý, chyběl mi balík PAM modulu pro MySQL autentizaci :)

Jeden Postgrey do party

Mailserver postavený dle návodu jsem se rozhodl obohatit o greylisting, který se mi už dříve na Sendmailu velice osvědčil. Z více možností aplikace greylistingu pro Postfix jsem si vybral program Postgrey. Jeho instalace je triviální a návodů na ni je celá řada; vybral jsem si jeden námatkou a pustil se do práce.
Samozřejmě jsem narazil na chybu: Postfix Postgreye s klidem ignoroval a všechny pokusné maily rovnou doručoval. Po dlouhém a marném hledání mi poradil člověk z webového fóra: u jednotlivých direktiv smtpd_recipient_restrictions v souboru main.cf záleží na pořadí. Pokyn ke kontrole greylistingem tedy musí být zařazen za kontrolu odesilatele (aby se negreylistovaly odchozí maily) a před kontrolu přijímaných domén - pokud bude až za ní, dojde k vyhodnocení "mail je určen pro tuto doménu, tudíž je tu správně" a na kontrolu greylistingem nedojde, což byl přesně můj případ. Mimochodem, tento dokument mi velice pomohl proniknout hloběji do tajů celého konfiguráku main.cf. Po jeho prostudování jsem nastavení obohatil ještě o pár voleb, které se mi zalíbily.

A máme to

Na závěr jsem si trochu pohrál se správou a udělal si pár skriptů pro přidávání domén, uživatelů a aliasů. Hlavně se mi nechtělo lézt ručně do MySQL databáze. Skripty jsem napsal tak, aby se ovládaly podobně jako systémové adduser a newaliases. Chtěl jsem ještě nacvakat nějakou utilitku na změny uživatelových vlastností (změna hesla, whistelisting, kontrola Spamassassinem), aby se tyto daly provádět z jednoho místa namísto zapisování do různých souborů, ale musel jsem to prozatím odložit, až bude víc času.
Voilá, a nový mailserver byl na světě :)


Komentáře

1 PaulMan PaulMan | 27. března 2008 v 14:30 | Reagovat

Poznámka pro sebe sama: až se budu příště divit, proč Maildrop odmítá doručovat maily z expandovaného hromadného aliasu, kdy jsou všichni jeho účastníci na stejné virtuální doméně, přestanu se divit a vrazím do main.cf:

maildrop_destination_recipient_limit = 1

Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.