Nastavit Postfix Smtp Server na Ubuntu/Debian
Máte svůj vlastní název domény a svůj vlastní vps/dedikovaný server a chcete název domény používat pro e-maily. Musíte tedy nastavit poštovní server pomocí serveru smtp a serveru imap/pop.
Tento tutoriál vám ukáže, jak nastavit Postfix (server smtp) a Dovecot (server imap/pop). Úkolem smtp serveru je přijímat příchozí e-maily a předávat odchozí e-maily od autorizovaných uživatelů v systému.
Zatímco Dovecot umožňuje oprávněným uživatelům přístup k jejich doručené poště a čtení jakýchkoli e-mailů.
Jednoduchá konfigurace – to neděláme
V nejjednodušší konfiguraci pro Postfix stačí zadat název vaší domény "xyz.com" v konfiguračním parametru "mydestination", pak budete moci přijímat e-maily napří[email protected], pokud existuje (linux) uživatel jménem silver na systému.
Tato technika je jednoduchá, ale má značné nevýhody. Nejprve musíte vytvořit nový unixový uživatelský účet pro každou novou e-mailovou adresu, kterou potřebujeme.
Za druhé se uživatelé musí přihlásit pomocí svých systémových hesel. Toto tedy není příliš flexibilní strategie pro nastavení poštovních účtů.
Samostatně můžete nakonfigurovat Dovecot tak, aby četl příchozí poštu z adresáře, kde je Postfix ukládá (/var/mail ve výchozím nastavení). Existuje článek na DigitalOcean, který ukazuje, jak nastavit postfix pomocí dovecotu.
Nastavíme věci tak, abyste mohli rychle vytvářet e-mailové adresy pouhým zapsáním do souboru spolu s heslem.
Přidáme tolik domén, kolik chceme, a vytvoříme tolik e-mailů a vše bude zašifrováno a ověřeno.
Since the email accounts we shall be creating are not related to any system users or system domains, they are called "virtual users" and "virtual domains". Virtual means, that not related to any system specific thing.
Jak to bude fungovat? - Technický žargon
1. Všechny příchozí e-maily směřující na váš server budou přijímány Postfixem (SMTP) a poté předány společnosti Dovecot (LMTP) k uložení do Inboxu.
To je lepší, protože vestavěná služba lmtp společnosti dovecot nabízí více funkcí, jako jsou kvóty, oprávnění, flexibilní adresářové struktury pro poštovní schránky atd.
Incoming mail (From somewhere) -> Postfix (SMTP) -> Dovecot (LMTP) -> MailBox/Inbox
And due to this Postfix is reduced to just a "tranmission agent" that just moves mails in and out, and nothing else.
2. Všechny odchozí e-maily budou odesílány Postfixem. Ale pouze z ověřených účtů.
Outgoing mail (Thunderbird) -> Postfix (SMTP) -> Destination (SMTP) like gmail
3. Společnost Dovecot poskytne služby IMAP/POP, které umožní poštovním klientům číst doručenou poštu.
Thunderbird <==> Dovecot (IMAP) <==> Inbox
4. Dovecot poskytne Postfixu výhradně ověřovací mechanismus prostřednictvím SASL.
E-mailové účty – uživatelské jméno + hesla budou uloženy v souboru.
Pokud si přejete nastavit domény a e-mailové účty v databázi (místo souboru), postupujte podle tohoto návodu na linode.com
Nastavení záznamů MX pro doménu
Než budete pokračovat, ujistěte se, že jsou správně nastaveny záznamy MX pro vaše domény, které budete používat se svým poštovním serverem. Většina poskytovatelů serverů, jako je Linode, poskytuje snadné rozhraní pro nastavení záznamů zón pro záznamy mx.
Pokud je vaše doména example.com, vaše mx může být například mail.example.com. Pro ověření použijte příkaz dig -
# Find the MX (mail exchange) server $ dig MX amazon.com +short 5 amazon-smtp.amazon.com. # Find the ip address of the mx server $ dig amazon-smtp.amazon.com +short 207.171.184.25
Ujistěte se, že IP adresa vašeho MX (mailového serveru) je toho serveru, na kterém se chystáte nastavit postfix a dovecot.
Konfigurace poštovního serveru Postfix v ubuntu krok za krokem
První věc, kterou je třeba nastavit, je Postfix. Nezapomeňte, že v našem nastavení bude Postfix přenášet všechny odchozí e-maily, ale všechny příchozí e-maily je předá společnosti Dovecot k uložení a pozdějšímu přístupu prostřednictvím e-mailových klientů.
Nejdříve věci, které byste měli vědět
1. Postfix zaznamenává všechny své akce do souboru s názvem /var/log/mail.log. Podívejte se na užitečné informace a ušetříte čas při diagnostikování problémů.
2. Příkaz postconf je nástroj pro nahlédnutí do konfigurací Postfixu. Vypisuje vše ve formátu name=value po řádcích. Takže pomocí příkazu grep vyhledejte, co potřebujete.
3. Všechny konfigurační parametry Postfixu leží v souboru /etc/postfix/main.cf
Parametry jsou vysvětleny v manuálových stránkách na adrese - "man 5 postconf"
Nainstalujte a nakonfigurujte Postfix
Dobře, takže pokud jste tak ještě neučinili, nainstalujte Postfix. Je přímo v repozitářích, takže byste neměli hledat jinde, pokud nechcete něco novějšího.
$ sudo aptitude install postfix
Nebojte se, zbytek nebude tak snadný. Po instalaci Postfixu možná budete chtít zkontrolovat verzi. Zde je příkaz, jak to udělat.
$ postconf mail_version mail_version = 2.10.2 $ postconf | grep mail_version mail_version = 2.10.2
Nakonfigurujte main.cf
V této sekci nakonfigurujeme několik věcí v hlavním konfiguračním souboru Postfixu umístěném na /etc/postfix/main.cf .
Patří mezi ně názvy hostitelů, parametry pro autentizaci SASL, unixové sokety pro autentizační službu dovecot lmtp a dovecot sasl a seznam našich domén virtual_mailbox_domains, za které bude Postfix zodpovědný za příjem příchozí pošty.
Záludné parametry !!!
Následující parametry jsou 3 super matoucí parametry, kterým musíte porozumět a správně je nakonfigurovat, abyste se vyhnuli neočekávaným problémům.
myhostname mydomain myorigin
Na svém serveru můžete hostovat více domén, řekněme abc.com + efg.com + xyz.com. Jednu z nich musíte použít jako primární doménu a použít ji pro „myorigin“. Pole myorigin je pole, které se automaticky nakonfiguruje při instalaci postfixu a požádá vás o doménu serveru.
Ve výchozím nastavení je myorigin nakonfigurován tak, aby ukazoval na /etc/mailname, takže můžete buď vyplnit svou výchozí doménu v /etc/mailname, nebo přímo zadat v konfiguračním souboru.
The domain specified with myorigin is used for mails generated by Postfix. For example when it fails to deliver a mail, it would reply with a from address of "Mail Delivery System<[email protected]>".
Parametr myhostname by měl obsahovat váš "název poštovního serveru", jak je uvedeno ve vašem záznamu mx. Toto je jméno, které Postfix používá v komunikaci smtp k identifikaci. Například "HELO myhostname".
If you set myhostname to a certain domain, then you should be able to setup the SPF records for that domain later. This is dictated by the SPF specifications.
Můžete také nechat myhostname pouze "localhost" a věci by stále fungovaly dobře. V takovém případě by však váš server použil zprávu jako "HELO localhost" při připojování k jiným poštovním serverům, jako je gmail, a gmail by rozzlobeně odmítl e-mail, který by jej označil za nevyžádaný.
Proto se doporučuje nakonfigurovat myhostname na správný název domény s platnými záznamy A a TXT (SPF). Nezapomeňte také nastavit myorigin.
Příklad konfigurace -
myhostname = mail.yoursite.com myorigin = yoursite.com
Technicky vzato, na jediném serveru můžete pro myhostname použít stejnou hodnotu myorigin. Nicméně v různých nastaveních zahrnujících více samostatných serverů je třeba hodnoty těchto polí nastavit pečlivěji.
Chcete-li se dozvědět více, přečtěte si příručku základní konfigurace Postfixu.
Parametr virtual_transport říká postfixu, aby přeposílal/transportoval e-maily do dovecotu pro ty domény, které jsou uvedeny v "virtual_mailbox_domains".
Cesta "private/dovecot-lmtp" je relativní k "/var/spool/postfix/". Vlastní unixový socket bude nakonfigurován později v sekci Konfigurace Dovecot.
Zde nastavíme parametry pro nastavení autentizace založené na SASL pro Postfix. Postfix interně dokáže komunikovat se „službou Dovecot's SASL“ přes unixový socket.
Chcete-li zkontrolovat, jaké různé pluginy smtpd_sasl_type vaše instalace Postfixu podporuje, spusťte následující příkaz.
Zde specifikujeme domény, pro které bude Postfix "přijímat" příchozí poštu. Zde tedy zadejte všechny své interní domény. Domény vložíme do souboru s názvem virtual_mailbox_domains.
Zadejte domény, jednu v řadě
Poté spusťte postmap na souboru. Vytvoří soubor s názvem virtual_mailbox_domains.db, který bude používat Postfix
Tabulku virtual_mailbox_maps lze použít k zadání platných e-mailových adres pro domény uvedené v doméně virtual_mailbox_domains.
Kromě služby smtp na portu 25 musíme povolit další služby. SMTPS bude fungovat na portu 465 a MSA (Mail Sending Agent) bude fungovat na portu 587. SMTP používá typ ověřování SSL/TLS a MSA používá STARTTLS.
Najděte sekci "submission" a "smtps" v souboru s názvem /etc/postfix/master.cf a odkomentujte první řádky. ANO POUZE PRVNÍ ŘÁDEK
Řádek "submission" aktivuje službu MSA na portu 587 a "smtps" spustí službu SMTP s povoleným SSL na portu 465.
Možná budete chtít povolit pouze službu odesílání, protože protokol SMTPS je nyní zastaralý a je udržován pouze z důvodu kompatibility s aplikacemi společnosti Microsoft, které nepodporují STARTTLS.
Port 25 - je pro MTA (Agent přenosu pošty). Služba MTA umožňuje ostatním MTA a MSA připojit se a doručovat e-maily.
Port 465/587 – je pro MSA (Agent pro odesílání pošty). Služba MSA je určena pro MUA (e-mailové uživatelské agenty, jako je thunderbird), aby se připojovali a ukládali e-maily k doručení.
Dokončili jsme konfiguraci Postfixu. Nyní stačí restartovat.
S instalací a konfigurací Postfixu jsme hotovi. Zůstává Dovecot, server IMAP/POP. Ale Dovecot dělá mnohem víc než to, jak právě teď uvidíme.
1. Dovecot dostane místo pro uložení příchozí pošty předané Postfixem.
2. Vytvoří se samostatný systémový uživatelský účet a předá ho dovecot, aby holubník mohl číst/zapisovat adresář pro ukládání pošty. V našem příkladu se uživatel nazývá "vmail".
3. Dovecot bude hostovat zabezpečené služby IMAP a POP, které umožní e-mailovým klientům číst doručenou poštu.
4. Dovecot poskytne Postfixu službu ověřování SASL prostřednictvím unixového soketu. Stejné uživatelské jméno/heslo bude fungovat s Postfixem (SMTP server) i Dovecotem (IMAP/POP server)
5. Jako uživatelské jméno použijeme celou e-mailovou adresu ([email protected]) a nastavíme také šifrované heslo.
Nejprve nainstalujte dovecot a některé potřebné balíčky. Nainstalujte balíček jádra dovecot a balíčky pro podporu imap, pop a lmtp.
Zkontrolujte verzi
Nyní je čas nakonfigurovat Dovecot pro nastavení uživatelských účtů a také SASL soketů, aby Postfix mohl provádět autentizaci. Všechny konfigurační soubory leží v /etc/dovecot/conf.d/ adresář.
Podívejte se na /etc/dovecot/dovecot.conf a ujistěte se, že je zahrnut soubor protokolů. Obsahuje konfigurační soubory pro různé protokoly, které je umožňují.
Nainstalované protokoly mohou být uvedeny takto
Říkáme dovecotu, aby ukládal e-maily do adresáře /var/mail/vhosts a dále je vkládal do podadresářů pro každou doménu a uživatele v této doméně.
Upravte soubor 10-mail.conf
Vytvořte adresář /var/mail/vhosts
Nyní vytvořte uvnitř tohoto adresáře a vytvořte adresář pro každou doménu, na které chcete přijímat poštu na tomto serveru.
Nyní vytvořte uživatele se jménem a skupinou vmail a uid a gid 5000. Ačkoli uid může být libovolné číslo, volíme 5000, abychom naznačili, že se nejedná o běžného uživatele. Volba "-r" dále určuje, že tento uživatel je uživatel na systémové úrovni a nemá žádné přihlášení.
Dejte vmailu plná oprávnění ke čtení/zápisu na /var/mail/vhosts
Nyní řekněte dovecotu, aby spustil služby imaps a pops. Upravte soubor 10-master.conf a povolte porty pro služby a zadejte ssl na yes.
Nechte porty pro imap a pop okomentované, protože nechceme hostovat nezabezpečené služby.
Pro IMAPS – Secure IMAP
Pro POP3S – Secure POP3
Wiki stránka dovecot na LMTP ukazuje jednoduchý příklad, jak nastavit lmtp socket v /etc/dovecot/conf.d/10-master.conf soubor.
Najděte sekci s názvem "service lmtp" a vyplňte cestu k souboru, kde by byl vytvořen unixový socket. Stejnou cestu používá postfix pro nastavení "virtual_transport".
Soket musí mít oprávnění user:group postfix, aby jej proces Postfix mohl používat.
Najděte sekci "servisní ověření" a do ní přidejte následující. Pokud již existuje, stačí jej upravit.
Otevřete soubor conf.d/10-auth.conf a odkomentujte řádek disable_plaintext_auth a ujistěte se, že je nastaven na yes. Tím je zajištěno, že pro účely ověřování je vždy použito šifrování TLS/SSL.
Najděte nastavení s názvem auth_mechanism a zrušte jeho komentář. Toto nastavení určuje formát, ve kterém bude heslo poskytnuto dovecotu.
Zadejte ověřovací soubory
Poslední věcí, kterou je třeba v souboru 10-auth.conf nakonfigurovat, je databáze hesel. Ve výchozím nastavení je dovecot nakonfigurován pro ověřování pomocí "systémových uživatelů" (uživatelů linuxu z /etc/passwd).
Řekneme mu, aby se ověřil pomocí samostatného souboru obsahujícího uživatelská jména a hesla
Najděte a zakomentujte řádek auth-system.conf.ext a odkomentujte řádek auth-passwdfile. Mělo by to vypadat nějak takto
Dále upravte soubor auth-passwdfile.conf.ext
Ať to vypadá nějak takto.
Sekce passdb říká dovecotu, kde hledat uživatelské jméno a hesla za účelem ověření. Soubor je /etc/dovecot/dovecot-users.
Username_format "%u" říká, že celá e-mailová adresa bude použita jako uživatelské jméno. To znamená, že při přihlašování z e-mailového klienta byste použili e-mailovou adresu jako uživatelské jméno pro smtp i imap/pop.
Uživatelské jméno a hesla jsou uložena v souboru s názvem /etc/dovecot/dovecot-users, který vytvoříme v dalším kroku
Sekce userdb říká dovecotu, kde má číst/zapisovat e-maily pro daného uživatele. Používáme pevnou adresářovou strukturu /var/mail/vhosts/%d/%n
Takže e-maily pro uživatele [email protected] by byly čteny z následujícího adresáře -
Vytvořte jednoduchý textový soubor v /etc/dovecot/ a vyplňte jej uživatelským jménem a hesly ve formátu uživatel:heslo. Zde je příklad
Takto vygenerujte hesla pomocí příkazu doveadm. Hash hesla vrácený výše uvedeným příkazem by měl být zkopírován tak, jak je, do souboru dovecot-users.
Soubor s hesly může také obsahovat informace o adresáři poštovní schránky jednotlivých uživatelů a oprávněních. Podívejte se na wiki článek o formátu passwdfile.
Otevřete soubor /etc/dovecot/conf.d/10-ssl.conf a odkomentujte řádek ssl a nastavte jej na požadované
Také se ujistěte, že ssl_cert a ssl_key odkazují na správné soubory (toto je ve výchozím nastavení)
Nastavit logrotate
Pokud změníme soubory protokolu Dovecotu, pak je nutné nakonfigurovat logrotate, aby bylo zajištěno, že soubory protokolu budou vytvářeny po částech namísto jednoho velkého souboru.
A vyplňte následující
Další informace naleznete na wiki stránce dovecot o protokolování.
Dobrá práce. Všechny konfigurace jsou hotové. Nyní restartujte dovecot
Nyní, když jste dokončili konfiguraci všeho, je čas otestovat. Použijte poštovního klienta, jako je Thunderbird, a nakonfigurujte připojení SMTP a IMAP.
Pak zkuste poslat e-mail na nějaký jiný účet, jako je gmail. Pokud e-mail dostanete na gmail, zkuste odpovědět. Pokud se pošta objeví ve vašem poštovním klientovi, jste hotovi. Blahopřejeme!
Kontrola otevřených portů pomocí netstat
Pomocí příkazu netstat zkontrolujte, zda jsou služby v provozu
Ve výše uvedeném výstupu můžeme vidět, že holubník drží porty 993, 995, 110 a 143
1. mail.log prázdný
Na serverech Ubuntu může být soubor /var/log/mail.log zcela prázdný. To se děje kvůli problémům s oprávněním a lze to opravit pomocí následujících příkazů
Správným vlastníkem souboru by měl být syslog. Nastavte správné oprávnění k vlastnictví pomocí následujících příkazů -
Nyní by měl být soubor mail.log naplněn správnými zprávami, aby bylo možné sledovat, co se děje na serveru Postfix.
2. Přístup k přenosu odepřen
Při odesílání e-mailů, pokud protokol postfixu (/var/log/mail.log) zobrazuje takovou chybovou zprávu -
Ujistěte se, že pole smtpd_relay_restrictions (/etc/postfix/main.cf) má uvedeno "permit_sasl_authenticated", aby uživatelé ověření přes SASL mohli odesílat e-maily pomocí postfixu jako serveru smtp.
3. Chyba při přijímání pošty
Pokud protokoly holubníku při přijímání e-mailů zobrazují takové chybové hlášení -
Stačí upravit /etc/dovecot/conf.d/15-lda.conf a přidat hodnotu pro postmaster_address
Zkuste poslat e-mail na nějakou gmailovou adresu prostřednictvím poštovního klienta, jako je thunderbird a přes postfixový smtp server, a pošta se dostane do složky se spamem na gmailu nebo může být zcela odmítnuta.
K vyřešení tohoto problému je třeba nastavit SPF záznamy pro doménu odesílatele. Pokud postfixový server rozesílá e-maily s "adresou z" [email protected], pak TXT DNS záznamy example.com musí obsahovat informace o ověření SPF, aby bylo zřejmé, že toto server je oprávněn odesílat e-maily jménem example.com
Vše, co je třeba udělat, je upravit položky zóny vašeho nameserveru a přidat záznam TXT obsahující následující
Většina poskytovatelů vps, jako je Linode, poskytuje elegantní rozhraní pro úpravu nastavení DNS, jako jsou tato. Podívejte se na webové stránky projektu OpenSPF, kde se o něm dozvíte více.
Zkontrolujte SPF záznamy vaší domény pomocí tohoto jednoduchého příkazu -
Výše uvedený příklad používá soubor k ukládání e-mailových účtů a hesel. To je praktické, když potřebujete na svém osobním serveru několik e-mailových účtů a nebudete je příliš často upravovat.
Ve velkém měřítku při poskytování e-mailů velkému počtu uživatelů a častém vytváření/mazání účtů se však doporučuje uložit domény virtual_mailbox_domains a virtual_mailbox_maps do databáze a poté pomocí některého databázového klienta rychle a snadno upravit záznamy.
Postfix i Dovecot podporují Mysql/MariaDB.
Podívejte se na zdroje ve spodní části, kde najdete odkazy na užitečné články o tom, jak nakonfigurovat Postfix a Dovecot jinými způsoby pomocí databáze.
1. Můžete si nainstalovat webového poštovního klienta, jako je Roundcube, abyste se mohli přihlásit k vašemu serveru z prohlížeče a číst/odesílat e-maily.
2. Někteří uživatelé (samozřejmě jako já) dávají přednost používání gmailu Google jako poštovního klienta přidáním informací o účtu smtp a pop. Google by vám rychle umožnil odesílat e-maily pomocí tohoto zbrusu nového nastavení serveru smtp výše.
Ale gmail nebude číst e-maily z IMAP/POP serveru vytvořeného výše, dokud nepoužijeme skutečný certifikát od certifikační autority (CA) v Dovecot.
Certifikáty SSL od certifikačních autorit stojí peníze, ale můžete získat bezplatný certifikát od StartCom StartSSL PKI a používat jej s Dovecotem a pak vám gmail umožní číst e-maily z tohoto serveru.
3. Dále byste také měli nastavit DKIM (Domainkeys Identified Mail) pro vaši doménu, abyste zajistili autenticitu e-mailů a aby s nimi hlavní poštovní služby, jako je gmail, zacházely jako s legitimními.
Zde jsou některé další užitečné zdroje o tom, jak různými způsoby nastavit a nakonfigurovat Postfix a Dovecot, abyste získali přesný druh poštovního serveru, jaký chcete.
Výukový program Linode o nastavení Postfixu a Dovecotu pomocí Mysql
Dokumentace konfiguračních parametrů Postfixu k použití v main.cf
Vysvětlení různých druhů domén, které Postfix podporuje a používá
Podrobnosti o tom, jak Postfix pracuje s různými druhy virtuálních domén
Úplná dokumentace Postfixu# Handing off local delivery to Dovecot's LMTP
virtual_transport = lmtp:unix:private/dovecot-lmtp
Nakonfigurujte SASL v main.cf
#Enabling SMTP for authenticated users, and handing off authentication to Dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_auth_only = yes
# postconf -a
cyrus
dovecot
Přidejte domény poštovních schránek do main.cf
#Virtual domains, users, and aliases
virtual_mailbox_domains = /etc/postfix/virtual_mailbox_domains
# virtual_mailbox_maps = /etc/postfix/virtual_mailbox_maps
# nano /etc/postfix/virtual_mailbox_domains
example.com OK
mysite.com OK
# postmap /etc/postfix/virtual_mailbox_domains
However this is not necessary, since the SASL authentication via Dovecot would be doing the verification.
Povolte SMTPS a MSA - master.cf
...
submission inet n - - - - smtpd
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
# -o syslog_name=postfix/smtps
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
...
Due to historic specifications, technically port 25, 465, 587 do almost the same thing. However as things are evolving they are being redefined.
Thunderbird (MUA) -> your server smtp(MSA/MTA) -> gmail (MTA) -> Inbox
Restartujte Postfix
$ sudo service postfix restart
Instalovat a konfigurovat Dovecot
Co byste měli vědět
Nainstalovat Dovecot
# sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd
# dovecot --version
2.1.7
Nakonfigurujte Dovecot
# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
# ls -l /usr/share/dovecot/protocols.d
total 12
-rw-r--r-- 1 root root 28 Nov 30 15:44 imapd.protocol
-rw-r--r-- 1 root root 28 Nov 30 15:44 lmtpd.protocol
-rw-r--r-- 1 root root 28 Nov 30 15:44 pop3d.protocol
#
Konfigurace umístění doručené pošty – 10-mail.conf
Mails for [email protected] would be stored in /var/mail/vhosts/example.com/someone/
#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:/var/mail/vhosts/%d/%n
# mkdir /var/mail/vhosts/
# mkdir /var/mail/vhosts/example.com
Vytvořte uživatele pro čtení e-mailů
$ groupadd -g 5000 vmail
$ useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"
$ chown -R vmail:vmail /var/mail/vhosts/
Povolte služby IMAPS a POP3S – 10-master.conf
service imap-login {
inet_listener imap {
#port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
service pop3-login {
inet_listener pop3 {
#port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
Konfigurovat lmtp socket – 10-master.conf
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
.....
Konfigurace ověřovacího soketu SASL
service auth {
.....
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user=postfix
group=postfix
}
.....
Nakonfigurujte ověřování
disable_plaintext_auth = yes
auth_mechanisms = plain login
#!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
/etc/dovecot/conf.d# nano auth-passwdfile.conf.ext
passdb {
driver = passwd-file
args = scheme=PLAIN username_format=%u /etc/dovecot/dovecot-users
}
userdb {
driver = static
# args = username_format=%u /etc/dovecot/dovecot-users
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
# Default fields that can be overridden by passwd-file
#default_fields = quota_rule=*:storage=1G
# Override fields from passwd-file
#override_fields = home=/home/virtual/%u
}
/var/mail/vhosts/example.com/someone/
Vytvoření uživatelské poštovní schránky nebo účtů
# cat dovecot-users
[email protected]:{plain}abc123
[email protected]:{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
# doveadm pw -s MD5-CRYPT
Enter new password:
Retype new password:
{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
#
Povolte SSL v dovecotu – 10-ssl.conf
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = required
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
[/pre]
If you have your own certificates from a certificate authority then use them here.
<h3>Setup dovecot log files</h3>
Dovecot by default logs to /var/log/syslog which is already a giant warehouse of logs and would make it difficult to search in there. A neater way is to make dovecot log to a separate file that is easier to track. The configuration lies in the file /etc/dovecot/conf.d/10-logging.conf
Open the file and edit the log_path variable and set it to /var/log/dovecot.log
Also note that info_log_path and debug_log_path would use the same to log information and debugging messages respectively. If you want to separate them further then set a log file for each.
[pre]
# Log file to use for error messages. "syslog" logs to syslog,
# /dev/stderr logs to stderr.
log_path = /var/log/dovecot.log
# Log file to use for informational messages. Defaults to log_path.
#info_log_path =
# Log file to use for debug messages. Defaults to info_log_path.
#debug_log_path =
$ nano /etc/logrotate.d/dovecot
/var/log/dovecot*.log {
missingok
notifempty
delaycompress
sharedscripts
postrotate
doveadm log reopen
endscript
}
Restartujte Dovecot
$ sudo service dovecot restart
Test
# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3315/mysqld
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 16218/master
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3337/nginx
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 16218/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3252/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 16218/master
Zatímco Postfix (master) drží porty 587, 465 a 25Odstraňování problémů
# ls -l /var/log/mail.log
-rw-r----- 1 messagebus adm 0 Apr 26 2013 /var/log/mail.log
$ sudo chown syslog.adm /var/log/mail.log
$ sudo chmod 640 /var/log/mail.log
Dec 1 09:57:12 li240-5 postfix/smtpd[25795]: NOQUEUE: reject: RCPT from unknown[122.163.8.12]: 454 4.7.1 <...>: Relay access denied; from=<...> to=<...> proto=ESMTP helo=<[192.168.1.2]>
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
Dec 02 18:32:12 lmtp(4412): Fatal: Error reading configuration: Invalid settings: postmaster_address setting not given
# Address to use when sending rejection mails.
# Default is [email protected]<your domain>. %d expands to recipient domain.
postmaster_address = [email protected]
Vytvořte záznamy DNS SPF, abyste umožnili ověření a zabránili spamu
"v=spf1 mx a -all"
$ dig -t TXT example.com
Poznámky
Co dál
Zdroje
https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql
http://www.postfix.org/postconf.5.html
https://workaround.org/ispmail/squeeze/postfix-domain-types
http://www.postfix.org/VIRTUAL_README.html
http://www.postfix.org/documentation.html