GNU/Linux >> Znalost Linux >  >> Debian

Nainstalujte poštovní server Postfix a Dovecot na Ubuntu nebo Debian

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.

Nakonfigurujte soket LMTP v main.cf

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

# Handing off local delivery to Dovecot's LMTP
virtual_transport = lmtp:unix:private/dovecot-lmtp

Cesta "private/dovecot-lmtp" je relativní k "/var/spool/postfix/". Vlastní unixový socket bude nakonfigurován později v sekci Konfigurace Dovecot.

Nakonfigurujte SASL v main.cf

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.

#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

Chcete-li zkontrolovat, jaké různé pluginy smtpd_sasl_type vaše instalace Postfixu podporuje, spusťte následující příkaz.

# postconf -a
cyrus
dovecot

Přidejte domény poštovních schránek do main.cf

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.

#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

Zadejte domény, jednu v řadě

example.com OK
mysite.com OK

Poté spusťte postmap na souboru. Vytvoří soubor s názvem virtual_mailbox_domains.db, který bude používat Postfix

# postmap /etc/postfix/virtual_mailbox_domains

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.

However this is not necessary, since the SASL authentication via Dovecot would be doing the verification.

Povolte SMTPS a MSA - master.cf

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

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

Řá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.

Due to historic specifications, technically port 25, 465, 587 do almost the same thing. However as things are evolving they are being redefined.

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

Thunderbird (MUA) -> your server smtp(MSA/MTA) -> gmail (MTA) -> Inbox

Restartujte Postfix

Dokončili jsme konfiguraci Postfixu. Nyní stačí restartovat.

$ sudo service postfix restart

Instalovat a konfigurovat Dovecot

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.

Co byste měli vědět

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.

Nainstalovat Dovecot

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.

# sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd

Zkontrolujte verzi

# dovecot --version
2.1.7

Nakonfigurujte Dovecot

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

# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol

Nainstalované protokoly mohou být uvedeny takto

# 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

Ří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ě.

Mails for [email protected] would be stored in /var/mail/vhosts/example.com/someone/

Upravte soubor 10-mail.conf

#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:/var/mail/vhosts/%d/%n

Vytvořte adresář /var/mail/vhosts

# mkdir /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.

# mkdir /var/mail/vhosts/example.com

Vytvořte uživatele pro čtení e-mailů

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

$ groupadd -g 5000 vmail
$ useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"

Dejte vmailu plná oprávnění ke čtení/zápisu na /var/mail/vhosts

$ chown -R vmail:vmail /var/mail/vhosts/

Povolte služby IMAPS a POP3S – 10-master.conf

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

service imap-login {
  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }

Pro POP3S – Secure POP3

service pop3-login {
  inet_listener pop3 {
    #port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}

Konfigurovat lmtp socket – 10-master.conf

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

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
        user = postfix
        group = postfix

  }
.....

Soket musí mít oprávnění user:group postfix, aby jej proces Postfix mohl používat.

Konfigurace ověřovacího soketu SASL

Najděte sekci "servisní ověření" a do ní přidejte následující. Pokud již existuje, stačí jej upravit.

service auth {
.....
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
user=postfix
group=postfix
  }
.....

Nakonfigurujte ověřování

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.

disable_plaintext_auth = yes

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.

auth_mechanisms = plain login

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

#!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

Dále upravte soubor auth-passwdfile.conf.ext

/etc/dovecot/conf.d# nano auth-passwdfile.conf.ext

Ať to vypadá nějak takto.

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
}

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 -

/var/mail/vhosts/example.com/someone/

Vytvoření uživatelské poštovní schránky nebo účtů

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

# cat dovecot-users 
[email protected]:{plain}abc123
[email protected]:{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1

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.

# doveadm pw -s MD5-CRYPT
Enter new password:
Retype new password:
{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
#

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.

Povolte SSL v dovecotu – 10-ssl.conf

Otevřete soubor /etc/dovecot/conf.d/10-ssl.conf a odkomentujte řádek ssl a nastavte jej na požadované

# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = required

Také se ujistěte, že ssl_cert a ssl_key odkazují na správné soubory (toto je ve výchozím nastavení)

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
&#91;/pre&#93;

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 =

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.

$ nano /etc/logrotate.d/dovecot

A vyplňte následující

/var/log/dovecot*.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate
    doveadm log reopen
  endscript
}

Další informace naleznete na wiki stránce dovecot o protokolování.

Restartujte Dovecot

Dobrá práce. Všechny konfigurace jsou hotové. Nyní restartujte dovecot

$ sudo service dovecot restart

Test

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

# 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

Ve výše uvedeném výstupu můžeme vidět, že holubník drží porty 993, 995, 110 a 143
Zatímco Postfix (master) drží porty 587, 465 a 25

Odstraňování problémů

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ů

# ls -l /var/log/mail.log
-rw-r----- 1 messagebus adm 0 Apr 26  2013 /var/log/mail.log

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

$ sudo chown syslog.adm /var/log/mail.log
$ sudo chmod 640 /var/log/mail.log

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 -

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=<&#91;192.168.1.2&#93;>

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.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

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í -

Dec 02 18:32:12 lmtp(4412): Fatal: Error reading configuration: Invalid settings: postmaster_address setting not given

Stačí upravit /etc/dovecot/conf.d/15-lda.conf a přidat hodnotu pro postmaster_address

# 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

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=spf1 mx a -all"

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 -

$ dig -t TXT example.com

Poznámky

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.

Co dál

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.

Zdroje

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
https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql

Dokumentace konfiguračních parametrů Postfixu k použití v main.cf
http://www.postfix.org/postconf.5.html

Vysvětlení různých druhů domén, které Postfix podporuje a používá
https://workaround.org/ispmail/squeeze/postfix-domain-types

Podrobnosti o tom, jak Postfix pracuje s různými druhy virtuálních domén
http://www.postfix.org/VIRTUAL_README.html

Úplná dokumentace Postfixu
http://www.postfix.org/documentation.html


Debian
  1. Nainstalujte a zabezpečte Redis Server na Debian 10

  2. Jak nainstalovat Puppet 6.x na Ubuntu 18.04 / Ubuntu 16.04 a Debian 9

  3. Nainstalujte Node.js v Ubuntu a Debianu

  1. Jak nainstalovat a nakonfigurovat Postfix na Ubuntu 20.04

  2. Jak nainstalovat Spamassassin s Postfixem a Dovecotem na Ubuntu/Debian Server

  3. Nastavte přeposílání pošty v postfixu na Ubuntu nebo Debianu

  1. Jak nainstalovat a nakonfigurovat VNC na Debian 9

  2. Jak nainstalovat a nakonfigurovat Nginx na Ubuntu 18.04 / Debian 9

  3. Jak nainstalovat a nakonfigurovat Postfix Mail Server na CentOS 8