Více doménový Mail Server

Synology nám poskytl v rámci Synology NAS aplikaci MailServer. Jedná se o jednoduchý a šikovný poštovní server pro příjem a odesílání pošty, třídění pošty uživatelům do jejich schránek a kontroly odesílané pošty. Součástí je i základní antispemový filtr. Celý MailServer běží na aplikaci postfix s grafickou nástavbou pro DSM.

Co nám nabízí:

  • Příjem a odesílání pošty z vlastní domény example.com
  • Příjem pošty z více domén example.com, example1.com…
  • Nastavení limitu velikosti zprávy
  • Nastavení Alias poštovní schránky bez nutnosti vytvářet dalšího uživatele NAS
  • Antispemový filtr SpamAssassin
  • Log neboli traffic pošty příchozí, odchozí, nesplněné (chybné)

Co nám zde chybí a čím se budeme zabývat je kromě příjmu pošty i odesílání pošty s více domén. Což nám grafická nástavba Synology MailServer nenabízí. Návodu a postupů na googlu najdeme dost, ale ne všechny fungují na DSM 5.0, nebo nejsou úplné a nebo popisují postup na složitější variantu. Já zde popisuji variantu jednodušší a to příjem pošty z více domén danému uživateli a odesílání z určité domény, kterou si nastavíme.

V první řadě musíme zapnout uživatele Admin, povolit port 22 a povolit službu SSH. Dále se vybavíme programem PuTTY a WinSCP. Pro pochopení základu MailServer na vysvětlenou. Grafická nadtavba pouze provádí konfiguraci konfiguračních souborů programu postfix. Na to, abychom mohli nastavit více než nám grafická nadstavba povolí se musím dostat k daným konfiguračním souborům postfixu sami.

Nastavení programu WinSCP je jednoduché. Vytvoříme profil, kde přenosový protokol bude SCP, port 22 a IP adresu na které běží vaše NAS. Uživatel je root a heslo je stejné jaké jste nastavili u uživatele admin. PuTTY se nastavuje stejně. Port 22, IP adresa vašeho serveru. Přihlásit se pomoci root a heslo jako admin.

Pomocí WinSCP se dostaneme do adresáře MailServeru, kde najdeme konfigurační soubory. Cesta je:

/volume1/@appstore/MailServer/etc/

Začneme hlavním konfiguračním souborem main.cf. Jeho struktura vypadá následně. Veškeré nastavení je až na konci tohoto konfiguračního souboru. Červeně označuji editaci řádku a zeleně přidané řádky.

1 virtual_alias_domains = example.com example1.com example2.com
2 virtual_alias_maps = hash:/var/packages/MailServer/target/etc/virtual
3 alias_maps = hash:/var/packages/MailServer/target/etc/aliases
4 myhostname = example.com
5 mydestination = $myhostname, localhost.$mydomain, localhost
6 smtpd_sender_login_maps = hash:/var/packages/MailServer/target/etc/tmp/login_map
7 smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch, reject_unknown_sender_domain

Řádek 1. vytvoříme seznam všech domén se kterými chceme pracovat.

Řádek 2. se odkazujeme na databázi, kde máme definováno, kteří uživatelé NAS patří pod kterou doménu. Přiřazení mail adresy konkretnímu uživateli a nastavení alias emilových adres pro konkrétní domény a uživatele.

Řádek 3. obsahuje databázi aliasů, které jsme si mohli doposud vytvářet v grafické nádstavbě v DSM. V tomto případě, ale přestane korektně fungovat, protože nebere v potaz doménu mailu. Nepoužívat a alias si korektně nastavit v souboru virtual.

Řádek 4. obsahuje doménu, kterou bere MailServer jako vlastník.

Řádek 5. nesmí obsahovat název žádné domény, které máme v seznamu virtual_alias_domains, kromě te co je určena v myhostname.

Řádkem 6. měníme cestu k databázi, u které postfix kontroluje zda-li souhlasí odchozí email s uživatelem. Tady je třeba se pozastavit nad tím, že jakákoli změna hesla, vytvoření nebo odebrání uživatele NAS vždy provede aktualizaci této databáze. Tedy pokud změníme strukturu tohoto souboru (což bude nutné) a poté kdykoli nějakého uživatele přidáte, smažete, nebo změníte jen heslo, MailServer tento soubor vrátí na původní hodnoty. Proto si vytvoříme podsložku např. tmp do které uděláme kopii souboru login_map. S touto kopii budeme pracovat my a zároveň postfix nezávisle na původním souboru login_map se kterým pracuje DSM. Je třeba si uvědomit, že v této chvíli se v této duplicitní databázi nebudou automaticky projevovat nově vytvoření, a nebo smazaní uživatelé. Ty musíme pokaždé ručně aktualizovat.

Řádek 1. a 2. můžeme zapsat do vzorového souboru main.template, kterým MailServer nahrazuje původní main.cf. Tím si ušetříme dva řádky, které nemusíme při restartu neustale znovu vypisovat. Zapíšeme je na konec souboru. Řádek 6. nelze do tohoto souboru zapsat předem, protože se generuje automaticky.

Nyní si vytvoříme soubor virtual, kde vytvoříme seznam uživatelů a rozdělení do domén. Pomocí aplikace PuTTY zadejte příkaz:

touch /volume1/@appstore/MailServer/etc/virtual

Pomocí WinSCP tento soubor editujeme. Struktura souboru vypadá následovně:

1 #Domena example.com
2 example.com example.com-domains
3 adam@example.com adam
4 david@example.com david
5 #alias example.com
6 prodej@example.com adam
7
8 #Domena example1.com
9 example1.com example1.com-domains
10 cyril@example1.com cyril
11 eva@example1.com eva
12 #alias example1.com
13 reditel@example1.com eva
14
15 #Domena example2.com
16 example2.com example2.com-domains
17 guru@example2.com guru
18 #alias example2.com
19 eva@example2.com eva1

Takto vytvořený soubor musíme nyní zkompilovat do databáze se kterou pracuje postfix. Nyní příkazem přes PuTTY provedeme kompilaci. Příkaz zní takto:

/volume1/@appstore/MailServer/sbin/postmap /volume1/@appstore/MailServer/etc/virtual

Nyní se vytvořil soubor virtual.db se kterým postfix pracuje.

Poslední zmíněnou úpravou projde soubor login_map, který jsme si zkopírovali do vytvořeného podadresáře tmp. Tento soubor opět editujeme a nastavíme domény u emailových účtu podle našich požadavků. Poté soubor uložíme a musíme i tady provést kompilaci databáze. Tady je příkaz pro PuTTY:

/volume1/@appstore/MailServer/sbin/postmap /volume1/@appstore/MailServer/etc/tmp/login_map

Po těchto úpravách je třeba postfix restartovat, aby databáze a hlavně konfigurační soubor načetl znovu. Zde je příkaz:

/volume1/@appstore/MailServer/sbin/postfix reload

Nyní při správném nastavení RoundCube a poštovních klientů musí vše fungovat jak jsme si přáli. Je třeba brát na vědomí, že při restartu MailServeru nebo jeho aktualizaci provede úpravu souboru main.cf a tedy bude nutné provést jeho ruční konfiguraci.