GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat a nakonfigurovat Postfix na Ubuntu 18.04

Postfix je bezplatný e-mailový server původně vyvinutý jako alternativa, jednodušší a bezpečnější odesílání pošty. Tento tutoriál vám ukáže, jak nastavit postfixový poštovní server na vašem serveru Ubuntu 18.04. Postfix vám umožňuje spravovat virtuální uživatele a za tím účelem vytváříme virtuální skupinu. Budeme snadno spravovat náš poštovní server pomocí postfixadmin pro virtuální uživatele a dovecot pro příchozí e-maily.

Co musíte pochopit

Předpokladem pro příjem pošty je mít pevnou IP, DNS server běžící buď na vašem vlastním serveru nebo na poskytovateli hostingu, na kterém můžete upravovat nahrávky. Pojďme definovat některé zkratky, které budou použity v této konfiguraci:

  • Postfix je Mail Transfer Agent (MTA ) slouží k odesílání a přijímání e-mailů
  • Holubník je místním doručovacím agentem (LDA ), které používají server Internet Messaging Application Protocol (IMAP) a Post Office Protocol (POP3).
  • SASL definováno Simple Authentication a Secure Layer, přidává autentizaci mezi uživatelem a serverem pro zabezpečení výměn.
  • Postfixadmin webové rozhraní, které vám umožňuje spravovat poštovní schránky, virtuální domény a aliasy
  • LEMP: webový server s Nginx a PHP pro přístup k postfixadmin a snadnou správu virtuálních uživatelů a domén, MySQL pro uložení všech informací.

V Postfixu jsou dva typy domén:

  • Místní domény používá se k doručování e-mailů uživatelům systému, kteří jsou uvedeni v /etc/passwd soubor.
  • Virtuální domény které nepotřebují systémový účet v /etc/passwd soubor. Poskytuje způsob, jak velmi snadno spravovat tisíce poštovních účtů v systému poštovního serveru pomocí MySQL, PostgreSQL nebo LDAP pro správu uživatelských účtů.

Krok 1) Nainstalujte a nakonfigurujte Postfixadmin

Postfixadmin je webový modul, který vám umožňuje snadno manipulovat s virtuálními doménami a uživateli v databázi.

a) Stáhněte si postfixadmin

Nejprve nainstalujeme požadované balíčky

# apt install php-imap php-mbstring php7.2-imap php7.2-mbstring
Reading package lists... Done
Building dependency tree 
Reading state information... Done
...
...

Normálně je postfixadmin přítomen na výchozích úložištích Ubuntu 18.04, ale pokusí se nainstalovat Apache a PostgreSQL místo Nginx a MySql. Abychom zachovali naši konfiguraci, stáhneme si aktuální nejnovější verzi 3.2 ze zdroje na projektu webu Github a uložte jej do /opt složka

# wget -P /opt https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
--2018-06-11 21:53:14--  https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
Resolving github.com (github.com)... 192.30.255.113, 192.30.255.112
Connecting to github.com (github.com)|192.30.255.113|:443... connected.
HTTP request sent, awaiting response... 302 Found

Nyní přejděte do této složky a rozbalte ji.

# cd /opt && tar xvf postfixadmin-3.2.tar.gz

Nyní bychom jej měli přejmenovat

# mv postfixadmin-postfixadmin-3.2/ postfixadmin

Postfixadmin používá skript nazvaný setup.php které použijeme prostřednictvím webového serveru při instalaci. V předchozí verzi postfixu (3.1 a nejstarší) je tento skript přímo v kořenové složce Postfixadmin, ale ve skutečné verzi (3.2) je obsažen v podadresáři public složky postfixadmin. Normálně bychom měli přesunout postfixadmin do kořenové složky našeho webového serveru Nginx, ale s touto novou verzí vytvoříme pouze symbolický odkaz na veřejnou složku, která obsahuje skript, a poté jej přejmenujeme pro určité zabezpečení

# ln -s /opt/postfixadmin/public/ /var/www/html/pfa
root@li1002-235:~# ls -l /var/www/html/
total 4
-rw-r--r-- 1 root root 612 Jun 10 04:51 index.nginx-debian.html
lrwxrwxrwx 1 root root  25 Jun 12 04:01 pfa -> /opt/postfixadmin/public/

b) Vytvořte databázi postfixů

Nyní bychom se měli připojit k databázi mysql pro některé konfigurace

# mysql -u root -p
Enter password:

Poté vytvořte databázi a uživatele

mysql> CREATE DATABASE postfix;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfix-db-password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

c) Nakonfigurujte postfixadmin

Nyní, když jsme nakonfigurovali databázi, měli bychom to oznámit postfixadminovi, aby věděl, kde získat informace. Chcete-li to provést, vytvořte /opt/postfixadmin/config.local.php soubor a přidejte obsah níže

# vim /opt/postfixadmin/config.local.php

<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfix-db-password';
$CONF['database_name'] = 'postfix';

$CONF['configured'] = true;
?>

postfixadmin vyžaduje oprávnění k podsložce s názvem templates_c to neexistuje. Aby se předešlo některým chybám během instalace, jako je uvedeno níže,

Měli bychom jej vytvořit ručně a zadat www-data vlastnictví pomocí příkazu chown.

# mkdir /opt/postfixadmin/templates_c && chmod 755 -R /opt/postfixadmin/templates_c
# chown -R www-data:www-data /opt/postfixadmin/templates_c

Pak to zkuste znovu, uvidíte, že to nyní funguje a zkontroluje veškerou konfiguraci, zobrazí verzi vašeho php a Ubuntu

Nyní bychom měli vytvořit heslo pro nastavení a vygenerovat jeho hash

Nyní vám umožní vytvořit účet superadmin a budete používat heslo pro nastavení které jste vytvořili. K tomu však musíte upravit /opt/postfixadmin/config.local.php soubor za účelem přidání hodnoty vygenerovaného hashe hesla. Poté pokračujte k vytvoření účtu superadmin

Nyní uvidíte, že účet byl přidán.

Nyní, jak vidíte, můžete se přihlásit do postfixadmin pomocí účtu pomocí odkazu http://vaše-ip-nebo-doména/pfa

Pokud se tato stránka nemůže zobrazit, zkontrolujte prosím soubor protokolu chyb nginx

# tail -n 20 -f /var/log/nginx/error.log

A ujistěte se, že máte správná oprávnění na /opt/postfixadmin/templates_c složka. Popis každého menu můžete vidět, když se přihlásíte.

d) Vytvořte virtuální domény, uživatele a alias

Nyní vytvoříme virtuální domény a poté uživatele. Doména je název domény, například mytuto.com . E-maily můžete mít ve své doméně pomocí stejného serveru. Když spustíte, nemáte žádnou doménu. Chcete-li přidat doménu, přejděte na Seznam domén -> Nová doména .

Poté zadejte informace o doméně. Můžete omezit počet aliasů a poštovních schránek. Nezapomeňte přidat záznam MX. Po dokončení výběru hodnot přidejte doménu.

Nyní, když je naše virtuální doména vytvořena, můžete vidět v seznamu domén

Nyní můžeme vytvářet naše virtuální uživatele. Chcete-li to provést, přejděte na Virtuální seznam -> Přidat poštovní schránku .

Můžeme také vytvářet aliasy. Toto jsou e-mailové adresy, které budou přesměrovávat e-maily na jiný účet. Normálně musí mít každý poštovní server e-mailovou adresu zneužití , abychom mohli například nahlásit spam z domény. Stačí tedy vytvořit zneužití aliasu z vaší domény pro vašeho uživatele, kterého jste právě vytvořili dříve. Chcete-li to provést, přejděte na Virtuální seznam -> Přidat alias .

Všechny tyto virtuální parametry můžete vytvořit na konci, ale pomůže nám to v dalším kroku konfigurace postfixu.

Krok 2) Nainstalujte a nakonfigurujte postfix

a) Nainstalujte postfix

Nyní můžeme nainstalovat balíčky postfixů.

# apt install postfix postfix-mysql sasl2-bin
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  db-util db5.3-util libmysqlclient20 ssl-cert
Suggested packages:
  procmail postfix-pgsql postfix-ldap postfix-pcre postfix-lmdb
...
...

Budete muset odpovědět na dvě otázky týkající se typu pošty a názvu vašeho poštovního serveru. Nezapomeňte nahradit název hostitele a doména hodnoty s vašimi

  • typ konfigurace pošty:Internetové stránky
  • název systémové pošty:hostname.domain.com

Ujistěte se, že sasl běží při spuštění úpravou jeho konfiguračního souboru

# vim /etc/default/saslauthd

# Should saslauthd run automatically on startup? (default: no)
START=yes

Nyní restartujte službu

# systemctl restart saslauthd

Protože konfigurujeme poštovní server s virtuálními uživateli, potřebujeme vlastníka všech poštovních schránek, takže vytvoříme systémového uživatele, kterého budou používat všichni virtuální uživatelé pro přístup k poště na serveru. Nejprve vytvořte vlastníka skupiny a složku, ve které budou uloženy poštovní schránky.

# groupadd -g 5000 vmail && mkdir -p /var/mail/vmail

Nyní vytvořte vlastníka

# useradd -u 5000 vmail -g vmail -s /usr/sbin/nologin -d /var/mail/vmail

Ujistěte se, že jste vlastníkovi dali oprávnění k adresáři pošty, aby mohl ukládat e-maily do příslušných adresářů.

# chown -R vmail:vmail /var/mail/vmail

Pokud to neuděláte, dovecot nebude schopen vytvořit požadované složky pro ukládání e-mailů.

b) Vytvořte konfigurační soubory pro databázi

Nyní vytvořte složku, která bude obsahovat nějaké databázové soubory

# mkdir -p /etc/postfix/sql

Postfix potřebuje 03 databázové soubory, které mu umožní přístup k databázi, kterou jsme vytvořili dříve:

  • Domény obsahovat seznam názvů domén hostovaných na serveru. umožní postfixu určit, zda má náš server na starosti doménu (mytuto.com) když obdrží e-mail ([email protected]) na to. Pokud ano, bude to znamenat, že doména je v naší databázi.
# vim /etc/postfix/sql/mysql_virtual_domains_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'

Povolíme konfiguraci a automaticky ji přidáme do /etc/postfix/main.cf soubor a znovu načtěte konfiguraci postfixu, abyste to nemuseli dělat ručně. Takže soubor bude aktualizován pokaždé, když použijete tento příkaz, o nové hodnoty.

# postconf -e virtual_mailbox_domains=mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf

Nyní můžeme zkontrolovat konfiguraci. Spustíme příkaz, který provede dotaz obsažený v souboru za účelem vyhledání domény v naší databázi. Pokud doména není přítomna, musí být vrácen prvek (hledaná doména) nebo nic.

# postmap -q mytuto.com mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
mytuto.com

Jak můžete vidět, postfix je schopen načíst domény uložené v naší databázi

  • Poštovní schránka pro uložení všech virtuálních e-mailových adres. Použije se také k ověření, zda poštovní schránky existují
# vim /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'

Nyní aktualizujme konfigurační soubor

# postconf -e virtual_mailbox_maps=mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf

Spuštěním příkazu otestujte dotaz na databázi

# postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
mytuto.com/alain/
  • Alias obsahovat různé e-mailové aliasy.
# vim /etc/postfix/sql/mysql_virtual_alias_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Nyní přidejte konfiguraci

# postconf -e virtual_alias_maps=mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf

Nyní spusťte příkaz k otestování dotazu. Je to cílový uživatel ([email protected]) která by měla být zobrazena, nikoli adresa pro zneužití. Ukazuje, že postfix může provést shodu.

# postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf
[email protected]

Ujistěte se, že tyto soubory nejsou čitelné pro normální uživatele, protože hesla jsou uložena v režimu Clear.

# ls -l /etc/postfix/sql/
total 12
-rw-r--r-- 1 root root 138 Jun 13 06:53 mysql_virtual_alias_maps.cf
-rw-r--r-- 1 root root 140 Jun 13 05:18 mysql_virtual_domains_maps.cf
-rw-r--r-- 1 root root 144 Jun 13 07:04 mysql_virtual_mailbox_maps.cf

Aby mohl postfix číst tyto soubory, můžeme změnit vlastníka skupiny na postfix

# chgrp postfix /etc/postfix/sql/mysql_*.cf
# ls -l /etc/postfix/sql/
total 12
-rw-r--r-- 1 root postfix 138 Jun 13 06:53 mysql_virtual_alias_maps.cf
-rw-r--r-- 1 root postfix 140 Jun 13 05:18 mysql_virtual_domains_maps.cf
-rw-r--r-- 1 root postfix 144 Jun 13 07:04 mysql_virtual_mailbox_maps.cf

c) Nakonfigurujte postfix

Nyní ručně upravíme hlavní konfigurační soubor postfixu. Před úpravou si tedy vytvořte kopii

# cp /etc/postfix/main.cf /etc/postfix/main.cf.bak

Nyní aktivujeme SASL, abychom vynutili autentizaci pro odesílání e-mailů a předáme ověření společnosti Dovecot. Nezapomeňte přidat řádky níže

# vim /etc/postfix/main.cf

# Allow authenticated users to send email, and use Dovecot to authenticate them. Tells Postfix to use Dovecot for authentication
smtpd_sasl_type = dovecot
## Path to the Postfix auth socket
smtpd_sasl_path = private/auth
## Tells Postfix to let people send email if they've authenticated to the server.
## Otherwise they can only send if they're logged in (SSH)
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
# Enable authentication only for those with a TLS connection.
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
# Tells Postfix who can send email: SASL-authenticated users connecting from a network specified in 'mynetworks'
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

Nyní upravíme /etc/postfix/master.cf konfigurační soubor. Je to konfigurační soubor procesu. Povolíme zabezpečené porty SMTP přidáním nebo zrušením komentáře k řádkům níže a vytvoříme kopii dříve

# cp /etc/postfix/master.cf /etc/postfix/master.cf.bak
# vim /etc/postfix/master.cf
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_tls_auth_only=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       y       -       -       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=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Nyní můžete spustit postconf -n příkaz ke kontrole některých chyb

# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
...
...

Pokud nemáte žádné varovné zprávy, znamená to, že vaše soubory neobsahují chyby. Nyní můžete restartovat službu postfix

# systemctl restart postfix
# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
   Active: active (exited) since Wed 2018-06-13 10:16:02 UTC; 27s ago
  Process: 12225 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 12225 (code=exited, status=0/SUCCESS)

Krok 3) Nainstalujte a nakonfigurujte Dovecot

Nyní, když je Postfix nainstalován a nakonfigurován, musíme nainstalovat postfix pro správu protokolů pop a imap, které nám umožňují obnovit naše e-maily.

a) Instalace Dovecot

Balíčky Dovecot jsou přítomny ve výchozích úložištích Ubuntu 18.04. Nainstalujeme jej s podporou mysql. Nainstalujeme síto což je užitečné, protože automaticky umístí e-maily do odpovídajících složek. To znamená, že pro každou doménu vytvoří odpovídající složku obsahující odpovídající složku virtuálního uživatele pro ukládání jeho e-mailových souborů.

# apt install dovecot-imapd dovecot-mysql dovecot-managesieved
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  dovecot-core dovecot-sieve libexttextcat-2.0-0 libexttextcat-data
Suggested packages:
...
...

Pochopte to, pokud nechcete používat síto , pro každou doménu budete pravděpodobně muset ručně vytvořit odpovídající složky, abyste mohli ukládat její e-maily, a to není snadné, pokud máte mnoho domén.

b) Konfigurace holubníku

Konfigurace Dovecot je obsažena ve více souborech v /etc/dovecot/conf.d . Nejprve zkontrolujte obsah /etc/dovecot/dovecot.conf aby byly tyto řádky odkomentovány

!include_try /usr/share/dovecot/protocols.d/*.protocol
!include conf.d/*.conf

Nyní přejděte do složky obsahující konfigurační soubory

# cd /etc/dovecot/conf.d

Upravíme:

  • 10-auth.conf k úpravě mechanismu připojení přidáním nebo zrušením komentáře k řádkům. Dovecot standardně používá systémové uživatele, ale my používáme uživatele Mysql
# cp 10-auth.conf 10-auth.conf.bak
# vim 10-auth.conf

auth_mechanisms = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext
  • auth-sql.conf.ext soubor pro konfiguraci sql
# cp auth-sql.conf.ext auth-sql.conf.ext.bak
# vim auth-sql.conf.ext

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vmail/%d/%n
}
  • teď upravíme /etc/dovecot/dovecot-sql.conf.ext říci dovecotu, jak se připojit k databázi SQL
# cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.bak
# vim /etc/dovecot/dovecot-sql.conf.ext

driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=postfix-db-password
password_query = SELECT username,domain,password FROM mailbox WHERE username='%u';
default_pass_scheme = MD5-CRYPT
  • Nyní upravíme 10-mail.conf soubor pro konfiguraci adresáře umístění pošty
# cp 10-mail.conf 10-mail.conf.bak
# vim 10-mail.conf
mail_location = maildir:/var/mail/vmail/%d/%n/Maildir
mail_privileged_group = mail
  • Nyní upravíme 10-master.conf soubor pro připojení k soketu.
# cp 10-master.conf 10-master.conf.bak
# vim 10-master.conf

service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }

  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

  user = dovecot
}
  • Nyní musíme nakonfigurovat LDA 15-lda.conf soubor pro označení síta, aby se pošta automaticky organizovala do odpovídající složky
# cp 15-lda.conf 15-lda.conf.bak
# vim 15-lda.conf

protocol lda {
  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = $mail_plugins sieve
}

Pokud chceme, aby uživatel vmail mohl spustit dovecot

, měli bychom dát povolení
# chgrp vmail /etc/dovecot/dovecot.conf

Nyní můžete restartovat službu dovecot

# systemctl restart dovecot

Můžete zkontrolovat protokol pošty, zda neobsahuje nějakou chybu

# tail -n 20 -f /var/log/mail.log

c) Integrujte dovecot do postfixu

Nyní, když jsme nakonfigurovali dovecot, měli bychom označit postfix, aby pracoval s holubinkou. Upravte hlavní konfigurační soubor postfixu a přidejte řádky níže na konec souboru

# vim /etc/postfix/master.cf

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

Nyní upravte hlavní konfigurační soubor postfixu

 # vim /etc/postfix/main.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

Poté restartujte postfix

# systemctl restart postfix

Můžete zkontrolovat protokol pošty, zda neobsahuje nějakou chybu

# tail -n 20 -f /var/log/mail.log
Jun 14 08:10:00 myserver postfix/postfix-script[28361]: starting the Postfix mail system
Jun 14 08:10:00 myserver postfix/master[28363]: daemon started -- version 3.3.0, configuration /etc/postfix

Můžete vidět, že veškerá konfigurace je dobrá. teď musíme udělat nějaký test

Krok 4) Test poštovního serveru

Pro testy v příkazovém řádku musíme před odesláním e-mailu nainstalovat balíček mailutils

# apt install mailutils
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
 guile-2.0-libs libgc1c2 libgsasl7 libkyotocabinet16v5 libltdl7 libmailutils5 libntlm0 libpython2.7 libpython2.7-minimal libpython2.7-stdlib
 mailutils-common
...
...

Nyní musíme odeslat nějaký e-mail a zkontrolovat, zda jsou složky odpovídající doménám a uživatelům efektivně vytvořeny. Za tímto účelem nejprve odešleme e-mail našemu aktuálnímu uživateli vytvořenému v postfixadmin během jeho konfigurace

# echo "Hello Alain" | mail -s "test mail" [email protected]

Nejprve se podívejme do protokolu pošty

 # tail -n 20 -f /var/log/mail.log

Jun 14 08:17:04 myserver postfix/qmgr[28374]: 1715240BF9: from=<[email protected]>, size=384, nrcpt=1 (queue active)
Jun 14 08:17:04 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 08:17:04 myserver postfix/pipe[28406]: 1715240BF9: to=<[email protected]>, relay=dovecot, delay=0.05, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 08:17:04 myserver postfix/qmgr[28374]: 1715240BF9: removed

Vidíme, že pošta byla úspěšně odeslána. Nyní zkontrolujeme, zda byly vytvořeny odpovídající složky

# ls -R /var/mail/vmail/
/var/mail/vmail/:
mytuto.com

/var/mail/vmail/mytuto.com:
alain

/var/mail/vmail/mytuto.com/alain:
Maildir

/var/mail/vmail/mytuto.com/alain/Maildir:
cur  dovecot.index.cache  dovecot.index.log  dovecot-uidlist  dovecot-uidvalidity  dovecot-uidvalidity.5b222480  new  tmp

/var/mail/vmail/mytuto.com/alain/Maildir/cur:

/var/mail/vmail/mytuto.com/alain/Maildir/new:
'1528964224.M129536P28407.myserver,S=455,W=467'

/var/mail/vmail/mytuto.com/alain/Maildir/tmp:

Můžete vidět, že složky jsou automaticky přítomné. Pro lepší přehled zkusme se stromem příkazů. Nejprve jej nainstalujte

 apt install tree

Nyní se podívejme na složky pošty s lepším náhledem

# tree /var/mail/vmail/
/var/mail/vmail/
└── mytuto.com
    └── alain
        └── Maildir
            ├── cur
            ├── dovecot.index.cache
            ├── dovecot.index.log
            ├── dovecot-uidlist
            ├── dovecot-uidvalidity
            ├── dovecot-uidvalidity.5b222480
            ├── new
            │   └── 1528964224.M129536P28407.myserver,S=455,W=467
            └── tmp

6 directories, 6 files

Nyní můžete dokonale vidět. Můžeme udělat další test vytvořením nové virtuální domény a uživatele na postfixadmin. Vytvořme virtuální doménu example.com

a virtuální uživatel [email protected]

Nyní pošleme e-mail novému virtuálnímu uživateli

# echo "Hello Francois" | mail -s "test config" [email protected]

Nyní zkontrolujte protokol pošty

# tail -n 20 -f /var/log/mail.log

Jun 14 08:35:10 myserver postfix/qmgr[28374]: CE43F40C5E: from=<[email protected]>, size=393, nrcpt=1 (queue active)
Jun 14 08:35:10 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 08:35:10 myserver postfix/pipe[28481]: CE43F40C5E: to=<[email protected]>, relay=dovecot, delay=0.06, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 08:35:10 myserver postfix/qmgr[28374]: CE43F40C5E: removed

Nyní ověřte strom složek

# tree /var/mail/vmail/
/var/mail/vmail/
├── example.com
│   └── francois
│       └── Maildir
│           ├── cur
│           ├── dovecot.index.cache
│           ├── dovecot.index.log
│           ├── dovecot-uidlist
│           ├── dovecot-uidvalidity
│           ├── dovecot-uidvalidity.5b2228be
│           ├── new
│           │   └── 1528965310.M888145P28482.myserver,S=468,W=480
│           └── tmp
└── mytuto.com
    └── alain
        └── Maildir
            ├── cur
            ├── dovecot.index.cache
            ├── dovecot.index.log
            ├── dovecot-uidlist
            ├── dovecot-uidvalidity
            ├── dovecot-uidvalidity.5b222480
            ├── new
            │   └── 1528964224.M129536P28407.myserver,S=455,W=467
            └── tmp

Můžete vidět, že máme dva podadresáře s doménami mytuto.com a example.com což je soubor pro každého virtuálního uživatele z různých domén. Nyní udělejme poslední test, uživatelé virtuálů si budou vyměňovat e-maily

# echo "Hello Francois, it's Alain" | mail -s "Subject" -aFrom:alain\<[email protected]\> [email protected]

Zkontrolujte protokol pošty

# tail -n 20 -f /var/log/mail.log

Jun 14 23:15:01 myserver postfix/pickup[28373]: 8558240BDA: uid=0 from=<[email protected]>
Jun 14 23:15:01 myserver postfix/cleanup[28595]: 8558240BDA: message-id=<[email protected]>
Jun 14 23:15:01 myserver postfix/qmgr[28374]: 8558240BDA: from=<[email protected]>, size=398, nrcpt=1 (queue active)
Jun 14 23:15:01 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 23:15:01 myserver postfix/pipe[28597]: 8558240BDA: to=<[email protected]>, relay=dovecot, delay=0.05, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 23:15:01 myserver postfix/qmgr[28374]: 8558240BDA: removed

Nyní vidíme složku pošty

# tree /var/mail/vmail/
/var/mail/vmail/
├── example.com
│   └── francois
│       └── Maildir
│           ├── cur
│           ├── dovecot.index.cache
│           ├── dovecot.index.log
│           ├── dovecot-uidlist
│           ├── dovecot-uidvalidity
│           ├── dovecot-uidvalidity.5b2228be
│           ├── new
│           │   ├── 1528965310.M888145P28482.myserver,S=468,W=480
│           │   └── 1528966081.M582572P28598.myserver,S=455,W=467
...
...

můžete vidět, že složka new nyní obsahuje dva soubory. Můžeme otevřít soubor obsahující poštu

# cat /var/mail/vmail/example.com/francois/Maildir/new/1528966081.M582572P28598.hostname\,S\=455\,W\=467 
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: by myserver.domain.com (Postfix, from userid 0)
        id 8558240BDA; Thu, 14 Jun 2018 23:15:01 +0000 (UTC)
Subject: Subject
From: alain<[email protected]>
To: <[email protected]>
X-Mailer: mail (GNU Mailutils 3.4)
Message-Id: <[email protected]>
Date: Thu, 14 Jun 2018 23:15:01 +0000 (UTC)

Hello Francois, it's Alain

Můžete vidět obsah, který ukazuje, že to také funguje.

Závěr

Víte, jak nakonfigurovat plně funkční poštovní systém s Postfix, Dovecot a Postfixadmin s Nginx. Nejdůležitější je dát správné povolení k tomu, abyste nečelili problémům. Měli byste si všimnout, že místo LDA můžete použít dovecot s jinými protokoly. Příště si ukážeme, jak nainstalovat RoundCube, aby uživatelé virtuálů měli k dispozici webové rozhraní pro snadné čtení jejich e-mailů a integrujeme PhpMyAdmin pro snadnou manipulaci s databází. Neváhejte a pošlete nám své komentáře pro vylepšení tohoto návodu.

Přečtěte si také:

  • Jak nastavit poštovní server Postfix na Ubuntu 16.04 (Dovecot - MySQL)
  • How to Configure Postfix with Webmail on Ubuntu 18.04
  • How to Setup Greylisting Service on Postfix Mail Server
  • How to Setup Postfix Mail Server with DKIM
  • How to Setup Mail Server Using Postfix, MariaDB, Dovecot and Roundcube

Ubuntu
  1. Jak nainstalovat a nakonfigurovat Algo VPN Server na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat Postfix na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat server Redis v Ubuntu

  2. Jak nainstalovat a nakonfigurovat Squid Proxy na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat webový server Apache na Ubuntu 13.10

  1. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04