GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu 16.04でPostfixメールサーバーをセットアップする方法(Dovecot-MySQL)

通常、すべてのメールサーバーは、MTA、MDA、MUAの3つの主要コンポーネントで構成されています。各コンポーネントは、電子メールメッセージの移動と管理のプロセスで特定の役割を果たし、適切な電子メール配信を保証するために重要です。したがって、メールサーバーのセットアップは、これらのコンポーネントの適切な構成を伴う難しいプロセスです。最善の方法は、個々のコンポーネントを1つずつインストールして構成し、各コンポーネントが機能することを確認して、メールサーバーを徐々に構築することです。

この記事では、仮想ユーザーを管理するために外部データベース(MySQL)を使用して、Postix(MTA)とDovecot(MDA)を備えたUbuntu16.04サーバーでメールサーバーを構成する方法に関するガイドラインを提供します。まず、メールサーバーを構築するための前提条件から始めましょう。

前提条件

  • MySQLがインストールされたサーバー
  • 完全修飾ホスト名
  • サーバーへのドメイン解決

前提条件をすべて満たしたら、メールサーバーの構築を1つずつ開始できます。

パッケージのインストール

まず、APTリポジトリパッケージを更新し、必要なpostfixおよびdovecotパッケージのインストールから始める必要があります。

root@ubuntu:~# apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql

Postfixのインストール中に、初期設定用のセットアップウィンドウがポップアップ表示されます。インストール段階で、「インターネットサイト」を選択し、システムメール名としてFQDNを設定する必要があります。これにより、必要なパッケージのインストールが次のように進行します。

Postfix is now set up with a default configuration. If you need to make
changes, edit
/etc/postfix/main.cf (and others) as needed. To view Postfix configuration
values, see postconf(1).

After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.

Running newaliases
Setting up postfix-mysql (3.1.0-3) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ufw (0.35-0ubuntu2) ...
Processing triggers for dovecot-core (1:2.2.22-1ubuntu2) ..

メールユーザーを管理するためのデータベースを作成する

次のステップは、メールサーバー上のメールユーザーとドメインを管理するためのデータベースを作成することです。前に言ったように、私たちはこのMySQLデータベースでメールユーザーを管理しています。このコマンドapt-getinstall mysql-server-5.7 を実行して、MySQLがインストールされていない場合にインストールできます。 。

以下の3つのテーブルを持つ「lnmailserver」という名前のデータベースを作成します。

  • 仮想ドメイン:ドメインの管理用
  • 仮想ユーザー:メールユーザーの管理用
  • 仮想エイリアス:エイリアスの設定用

これらすべてのテーブルを使用してデータベースを作成しましょう。

  • lnmailserverという名前のデータベースを作成します。
mysql> CREATE DATABASE lnmailserver;
Query OK, 1 row affected (0.00 sec)
  • DBユーザーの作成lnmailuser パスワードを使用してこのデータベースへのアクセスを許可します。
mysql> GRANT SELECT ON lnmailserver.* TO 'lnmailuser'@'127.0.0.1' IDENTIFIED BY 'lnmail123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
  • データベースへの切り替えlnmailserver 3つのテーブル、つまり virtual_domains、virtual_users、virtual_aliasesを作成します 仕様と表の形式で。
mysql> USE lnmailserver;
Database changed
mysql> CREATE TABLE `virtual_domains` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `name` VARCHAR(50) NOT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE `virtual_users` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `password` VARCHAR(106) NOT NULL,
-> `email` VARCHAR(120) NOT NULL,
-> PRIMARY KEY (`id`),
-> UNIQUE KEY `email` (`email`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec)
mysql> CREATE TABLE `virtual_aliases` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `source` varchar(100) NOT NULL,
-> `destination` varchar(100) NOT NULL,
-> PRIMARY KEY (`id`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
  • 要件に応じて、これらの各テーブルにドメイン、ユーザー、エイリアスを追加します。
mysql> INSERT INTO `lnmailserver`.`virtual_domains`
-> (`id` ,`name`)
-> VALUES
-> ('1', 'linoxidemail.com'),
-> ('2', 'ubuntu.linoxidemail.com');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> INSERT INTO `lnmailserver`.`virtual_users`
-> (`id`, `domain_id`, `password` , `email`)
-> VALUES
-> ('1', '1', ENCRYPT('blogger123', CONCAT('$6
mysql> INSERT INTO `lnmailserver`.`virtual_aliases`
-> (`id`, `domain_id`, `source`, `destination`)
-> VALUES
-> ('1', '1', '[email protected]', '[email protected]');
Query OK, 1 row affected (0.00 sec)
  • 各テーブルの内容を確認する
mysql> select * from virtual_domains;
+----+-------------------------+
| id | name |
+----+-------------------------+
| 1 | linoxidemail.com |
| 2 | ubuntu.linoxidemail.com |
+----+-------------------------+
2 rows in set (0.00 sec)
mysql> select * from virtual_users;
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| id | domain_id | password | email |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| 1 | 1 | $6$da4aa6fc680940d4$jt1plE8Lvo4hcjdP3N0pNxSC/o1ZsN4mpJ4WCcwk2mSqyY7/2l4ayyI7GcipeTf0uwzk5HnWbjddvv/jGomh41 | [email protected] |
| 2 | 1 | $6$36d2dc2e68ab56f6$L2b/D44yuT7qXsw22kTFPfxTbEbUuRDhr0RDoBnRc/q/LGcRF3NsLQCyapXdYKyA2zkSE9MJIXL7nHAbbCmlO. | [email protected] |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
2 rows in set (0.00 sec)
mysql> select * from virtual_aliases;
+----+-----------+-----------------------+---------------------------+
| id | domain_id | source | destination |
+----+-----------+-----------------------+---------------------------+
| 1 | 1 | [email protected] | [email protected] |
+----+-----------+-----------------------+---------------------------+
1 row in set (0.00 sec)

mysql > exit

Postfixの設定

次のステップは、SMTP接続を受け入れる必要がある方法の構成計画に従ってPostfix構成を変更することです。構成を変更する前に、ファイルのバックアップを取ることを常にお勧めします。

root@ubuntu:~# cp -rp /etc/postfix/main.cf /etc/postfix/main.cf-bkp

これで、ファイルを開いて次の変更を加えることができます。

  • 次のエントリを変更して、ユーザーが接続するためのTLSサポートを有効にし、接続を保護するために使用されるSSL証明書を指定します。
This section is modified from:

#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

To :

smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.key
smtpd_use_tls = yes
smtpd_tls_auth_only = yes

ここで指定されている無料のDovecotSSL証明書を使用しています。以下のコマンドを使用して、dovecot自己署名SSL証明書を生成できます。ホスト名に有効なSSL証明書がある場合は、代わりにそれらを指定できます。

openssl req -new -x509 -days 1000 -nodes -out "/etc/ssl/certs/dovecot.pem" -keyout "/etc/ssl/private/dovecot.key"
  • これらのTLSパラメータをPostfix設定に追加して、Postfixが認証と接続の初期化にDovecotを使用できるようにする必要があります。
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
  • 「mydestination」のデフォルトエントリにコメントを付け、「localhost」のみを使用するように更新する必要があります。
mydestination = localhost
  • myhostnameの部分がFQDNホスト名として正しく設定されているかどうかを確認します。
root@ubuntu:~# grep myhostname /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
myhostname = ubuntu.linoxidemail.com
  • このパラメータを変更すると、Postfixは独自のLDAの代わりにDovecotのLMTPを使用してメールをローカルメールボックスに保存できるようになり、MySQLデータベースにリストされているすべてのドメインのローカルメール配信が可能になります。
    virtual_transport = lmtp:unix:private/dovecot-lmtp
  • 最後になりましたが、ドメイン、ユーザー、エイリアスを管理するために外部データベースを使用していることをPostfixに通知する必要があります。データベーステーブルからこれらの詳細をフェッチするには、構成パスを追加する必要があります。
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

次に、上記のファイルを1つずつ作成する必要があります。以下の私のファイルの詳細をご覧ください:

/etc/postfix/mysql-virtual-mailbox-domains.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-domains.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'
root@ubuntu:~#

/etc/postfix/mysql-virtual-mailbox-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'
root@ubuntu:~#

/etc/postfix/mysql-virtual-alias-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-alias-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

これらのファイルは、Postfixが外部データベースに接続する方法を説明しています。これらの変更を行った後、Postfixを再起動する必要があります。

root@ubuntu:~# service postfix restart

次のコマンドを実行して接続を確認し、Postfixがデータベースから必要な情報を取得できるかどうかを確認する必要があります。

  • Postfixがデータベースからドメインを検出するかどうかを確認するために、これを実行できます。試行が成功した場合、これは「1」を返すはずです。
root@ubuntu:/etc/ssl/certs# postmap -q linoxidemail.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
1
  • Postfixがデータベースから必要なメールアドレスを見つけるかどうかを確認するために、これを実行できます。成功した場合も、これは「1」を返すはずです。
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
1
  • Posfixがデータベースからメールフォワーダーを見つけるかどうかを確認するために、これを実行できます。これにより、試行が成功した場合にメールフォワーダーセットが返されます。
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf
[email protected]

注意:ポート587でPostfixを使用してメールクライアントに安全に接続できます。Postfixマスター設定の次の部分のコメントを外すことでポートを開くことができます:/etc/postfix/master.cf。

設定に変更を加えた後、Postfixを再起動する必要があります。 telnetコマンドを使用すると、ポートが開いているかどうかを確認できます。

Dovecotの構成

次のステップは、POP3またはIMAPプロトコルおよびその他の構成設定が外部データベースおよびPostfixに接続できるようにMDAを構成することです。主に以下のファイルを変更しています。

/etc/dovecot/dovecot.conf
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/auth-sql.conf.ext
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf

構成を変更する前に、これらのファイルのバックアップを取ることを常にお勧めします。各ファイルを1つずつ変更できます。

dovecotメイン構成ファイルの変更:/etc/dovecot/dovecot.conf

  • 次の設定はデフォルトでコメント解除されています。ただし、コメントがないことを確認する必要があります。
!include conf.d/*.conf
  • このディレクティブで必要なすべてのプロトコルを有効にできます。 POP3を有効にする必要がある場合は、この行にpop3を追加し、必要なdovecotパッケージ「dovecot-pop3d」をインストールして有効にすることもできます。
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp

Dovecot Mail構成ファイルの変更: /etc/dovecot/conf.d/10-mail.conf

  • 構成で次のパラメータ「mail_location」を見つけて、メールストレージパスで更新する必要があります。メールフォルダは「/var/ mail /vhosts/」フォルダ内にあります。したがって、ファイルパスを次のように変更しました。
mail_location = maildir:/var/mail/vhosts/%d/%n
  • ma​​il_privileged_group」を設定する必要があります "メールへのパラメータ "。
mail_privileged_group = mail

これが完了したら、メールフォルダに適切な所有権と権限を設定する必要があります。このフォルダ「/var/ mail / vhosts」内のMySQLテーブルに登録した各ドメインのメールフォルダを作成し、適切な所有権/権限を設定します。

root@ubuntu:~# ls -ld /var/mail
drwxrwsr-x 2 root mail 4096 Apr 21 16:56 /var/mail
root@ubuntu:~# mkdir -p /var/mail/vhosts/linoxidemail.com

Created a separate user/group named "vmail" with an id 5000 and changed the mail folders ownerships to that.
root@ubuntu:~# groupadd -g 5000 vmail
root@ubuntu:~# useradd -g vmail -u 5000 vmail -d /var/mail
root@ubuntu:~# chown -R vmail:vmail /var/mail

Dovecot認証ファイルの変更:/etc/dovecot/conf.d/10-auth.conf

  • 以下のパラメータを「yes」に変更してセキュリティを確保するために、プレーンテキスト認証を無効にします。
disable_plaintext_auth = yes
  • 「auth_mechanisms」パラメータを次のように変更します。
auth_mechanisms = plain login
  • 上記の行にコメントを付け、次のようにauth-sql.conf.ext行のコメントを解除してMySQL認証を有効にする必要があります。
#!include auth-system.conf.ext
!include auth-sql.conf.ext

認証SQLファイルの変更:/etc/dovecot/conf.d/auth-sql.conf.ext

MySQL認証ファイルが次のようになっていることを確認してください。

Dovecot + MySQL構成ファイルの変更:/etc/dovecot/dovecot-sql.conf.ext

  • 「driver」パラメータのコメントを解除し、次のようにMySQLに設定する必要があります。
driver = mysql
  • データベース名とユーザーに従って接続パラメータを変更および設定します。
connect = host=127.0.0.1 dbname=lnmailserver user=lnmailuser password=lnmail123
  • 次のようにdefault_pass_schemeをSHA-512およびpassword_query行に変更します。
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

注意:/ etc / dovecotディレクトリに権限を設定して、vmailユーザーが使用できるようにします。

chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot

Dovecotマスター構成ファイルの変更:/etc/dovecot/conf.d/10-master.conf

この構成ファイルの4つのセクションを変更しています。 IMAPセクション、ローカルメール転送セクション、認証セクション、および最後の認証ワーカープロセスセクション。変更を表示するには、以下の各セクションのスクリーンショットを参照してください。

SSL構成の変更:/etc/dovecot/conf.d/10-ssl.conf

このセクションを変更して、着信/発信接続でSSLを有効にします。この構成設定はオプションです。ただし、セキュリティを強化するためにこれらをお勧めします。

  • SSLパラメータを必須に変更します
ssl = required
  • 構成のSSL証明書とキーファイルの場所を指定します。詳細については、スクリーンショットをご覧ください。

これらすべての変更を行った後、Dovecotを再起動する必要があります。

これですべてです:)メールサーバーのセットアップが完了しました。やあ!任意の電子メールクライアントでユーザー名とパスワードを使用して電子メールアカウントにアクセスできます。以下の設定を使用して、メールアカウントに正常にアクセスできました:

この記事を楽しんでいただけたでしょうか。これに関する貴重な提案やコメントをお勧めします。
良い一日を!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'), -> ('2', '1', ENCRYPT('blogger321', CONCAT('$6
 
  • 各テーブルの内容を確認する
 
 
 

Postfixの設定

次のステップは、SMTP接続を受け入れる必要がある方法の構成計画に従ってPostfix構成を変更することです。構成を変更する前に、ファイルのバックアップを取ることを常にお勧めします。

 

これで、ファイルを開いて次の変更を加えることができます。

  • 次のエントリを変更して、ユーザーが接続するためのTLSサポートを有効にし、接続を保護するために使用されるSSL証明書を指定します。
 

ここで指定されている無料のDovecotSSL証明書を使用しています。以下のコマンドを使用して、dovecot自己署名SSL証明書を生成できます。ホスト名に有効なSSL証明書がある場合は、代わりにそれらを指定できます。

 
  • これらのTLSパラメータをPostfix設定に追加して、Postfixが認証と接続の初期化にDovecotを使用できるようにする必要があります。
 
  • 「mydestination」のデフォルトエントリにコメントを付け、「localhost」のみを使用するように更新する必要があります。
 
  • myhostnameの部分がFQDNホスト名として正しく設定されているかどうかを確認します。
 
  • このパラメータを変更すると、Postfixは独自のLDAの代わりにDovecotのLMTPを使用してメールをローカルメールボックスに保存できるようになり、MySQLデータベースにリストされているすべてのドメインのローカルメール配信が可能になります。
     
  • 最後になりましたが、ドメイン、ユーザー、エイリアスを管理するために外部データベースを使用していることをPostfixに通知する必要があります。データベーステーブルからこれらの詳細をフェッチするには、構成パスを追加する必要があります。
 

次に、上記のファイルを1つずつ作成する必要があります。以下の私のファイルの詳細をご覧ください:

/etc/postfix/mysql-virtual-mailbox-domains.cf

 

/etc/postfix/mysql-virtual-mailbox-maps.cf

 

/etc/postfix/mysql-virtual-alias-maps.cf

 

これらのファイルは、Postfixが外部データベースに接続する方法を説明しています。これらの変更を行った後、Postfixを再起動する必要があります。

 

次のコマンドを実行して接続を確認し、Postfixがデータベースから必要な情報を取得できるかどうかを確認する必要があります。

  • Postfixがデータベースからドメインを検出するかどうかを確認するために、これを実行できます。試行が成功した場合、これは「1」を返すはずです。
 
  • Postfixがデータベースから必要なメールアドレスを見つけるかどうかを確認するために、これを実行できます。成功した場合も、これは「1」を返すはずです。
 
  • Posfixがデータベースからメールフォワーダーを見つけるかどうかを確認するために、これを実行できます。これにより、試行が成功した場合にメールフォワーダーセットが返されます。
 

注意:ポート587でPostfixを使用してメールクライアントに安全に接続できます。Postfixマスター設定の次の部分のコメントを外すことでポートを開くことができます:/etc/postfix/master.cf。

設定に変更を加えた後、Postfixを再起動する必要があります。 telnetコマンドを使用すると、ポートが開いているかどうかを確認できます。

Dovecotの構成

次のステップは、POP3またはIMAPプロトコルおよびその他の構成設定が外部データベースおよびPostfixに接続できるようにMDAを構成することです。主に以下のファイルを変更しています。

 

構成を変更する前に、これらのファイルのバックアップを取ることを常にお勧めします。各ファイルを1つずつ変更できます。

dovecotメイン構成ファイルの変更:/etc/dovecot/dovecot.conf

  • 次の設定はデフォルトでコメント解除されています。ただし、コメントがないことを確認する必要があります。
 
  • このディレクティブで必要なすべてのプロトコルを有効にできます。 POP3を有効にする必要がある場合は、この行にpop3を追加し、必要なdovecotパッケージ「dovecot-pop3d」をインストールして有効にすることもできます。
 

Dovecot Mail構成ファイルの変更: /etc/dovecot/conf.d/10-mail.conf

  • 構成で次のパラメータ「mail_location」を見つけて、メールストレージパスで更新する必要があります。メールフォルダは「/var/ mail /vhosts/」フォルダ内にあります。したがって、ファイルパスを次のように変更しました。
 
  • ma​​il_privileged_group」を設定する必要があります "メールへのパラメータ "。
 

これが完了したら、メールフォルダに適切な所有権と権限を設定する必要があります。このフォルダ「/var/ mail / vhosts」内のMySQLテーブルに登録した各ドメインのメールフォルダを作成し、適切な所有権/権限を設定します。

 

Dovecot認証ファイルの変更:/etc/dovecot/conf.d/10-auth.conf

  • 以下のパラメータを「yes」に変更してセキュリティを確保するために、プレーンテキスト認証を無効にします。
 
  • 「auth_mechanisms」パラメータを次のように変更します。
 
  • 上記の行にコメントを付け、次のようにauth-sql.conf.ext行のコメントを解除してMySQL認証を有効にする必要があります。
 

認証SQLファイルの変更:/etc/dovecot/conf.d/auth-sql.conf.ext

MySQL認証ファイルが次のようになっていることを確認してください。

Dovecot + MySQL構成ファイルの変更:/etc/dovecot/dovecot-sql.conf.ext

  • 「driver」パラメータのコメントを解除し、次のようにMySQLに設定する必要があります。
 
  • データベース名とユーザーに従って接続パラメータを変更および設定します。
 
  • 次のようにdefault_pass_schemeをSHA-512およびpassword_query行に変更します。
 

注意:/ etc / dovecotディレクトリに権限を設定して、vmailユーザーが使用できるようにします。

 

Dovecotマスター構成ファイルの変更:/etc/dovecot/conf.d/10-master.conf

この構成ファイルの4つのセクションを変更しています。 IMAPセクション、ローカルメール転送セクション、認証セクション、および最後の認証ワーカープロセスセクション。変更を表示するには、以下の各セクションのスクリーンショットを参照してください。

SSL構成の変更:/etc/dovecot/conf.d/10-ssl.conf

このセクションを変更して、着信/発信接続でSSLを有効にします。この構成設定はオプションです。ただし、セキュリティを強化するためにこれらをお勧めします。

  • SSLパラメータを必須に変更します
 
  • 構成のSSL証明書とキーファイルの場所を指定します。詳細については、スクリーンショットをご覧ください。

これらすべての変更を行った後、Dovecotを再起動する必要があります。

これですべてです:)メールサーバーのセットアップが完了しました。やあ!任意の電子メールクライアントでユーザー名とパスワードを使用して電子メールアカウントにアクセスできます。以下の設定を使用して、メールアカウントに正常にアクセスできました:

この記事を楽しんでいただけたでしょうか。これに関する貴重な提案やコメントをお勧めします。
良い一日を!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'); Query OK, 2 rows affected, 2 warnings (0.01 sec) Records: 2 Duplicates: 0 Warnings: 2
 
  • 各テーブルの内容を確認する
 
 
 

Postfixの設定

次のステップは、SMTP接続を受け入れる必要がある方法の構成計画に従ってPostfix構成を変更することです。構成を変更する前に、ファイルのバックアップを取ることを常にお勧めします。

 

これで、ファイルを開いて次の変更を加えることができます。

  • 次のエントリを変更して、ユーザーが接続するためのTLSサポートを有効にし、接続を保護するために使用されるSSL証明書を指定します。
 

ここで指定されている無料のDovecotSSL証明書を使用しています。以下のコマンドを使用して、dovecot自己署名SSL証明書を生成できます。ホスト名に有効なSSL証明書がある場合は、代わりにそれらを指定できます。

 
  • これらのTLSパラメータをPostfix設定に追加して、Postfixが認証と接続の初期化にDovecotを使用できるようにする必要があります。
 
  • 「mydestination」のデフォルトエントリにコメントを付け、「localhost」のみを使用するように更新する必要があります。
 
  • myhostnameの部分がFQDNホスト名として正しく設定されているかどうかを確認します。
 
  • このパラメータを変更すると、Postfixは独自のLDAの代わりにDovecotのLMTPを使用してメールをローカルメールボックスに保存できるようになり、MySQLデータベースにリストされているすべてのドメインのローカルメール配信が可能になります。
     
  • 最後になりましたが、ドメイン、ユーザー、エイリアスを管理するために外部データベースを使用していることをPostfixに通知する必要があります。データベーステーブルからこれらの詳細をフェッチするには、構成パスを追加する必要があります。
 

次に、上記のファイルを1つずつ作成する必要があります。以下の私のファイルの詳細をご覧ください:

/etc/postfix/mysql-virtual-mailbox-domains.cf

 

/etc/postfix/mysql-virtual-mailbox-maps.cf

 

/etc/postfix/mysql-virtual-alias-maps.cf

 

これらのファイルは、Postfixが外部データベースに接続する方法を説明しています。これらの変更を行った後、Postfixを再起動する必要があります。

 

次のコマンドを実行して接続を確認し、Postfixがデータベースから必要な情報を取得できるかどうかを確認する必要があります。

  • Postfixがデータベースからドメインを検出するかどうかを確認するために、これを実行できます。試行が成功した場合、これは「1」を返すはずです。
 
  • Postfixがデータベースから必要なメールアドレスを見つけるかどうかを確認するために、これを実行できます。成功した場合も、これは「1」を返すはずです。
 
  • Posfixがデータベースからメールフォワーダーを見つけるかどうかを確認するために、これを実行できます。これにより、試行が成功した場合にメールフォワーダーセットが返されます。
 

注意:ポート587でPostfixを使用してメールクライアントに安全に接続できます。Postfixマスター設定の次の部分のコメントを外すことでポートを開くことができます:/etc/postfix/master.cf。

設定に変更を加えた後、Postfixを再起動する必要があります。 telnetコマンドを使用すると、ポートが開いているかどうかを確認できます。

Dovecotの構成

次のステップは、POP3またはIMAPプロトコルおよびその他の構成設定が外部データベースおよびPostfixに接続できるようにMDAを構成することです。主に以下のファイルを変更しています。

 

構成を変更する前に、これらのファイルのバックアップを取ることを常にお勧めします。各ファイルを1つずつ変更できます。

dovecotメイン構成ファイルの変更:/etc/dovecot/dovecot.conf

  • 次の設定はデフォルトでコメント解除されています。ただし、コメントがないことを確認する必要があります。
 
  • このディレクティブで必要なすべてのプロトコルを有効にできます。 POP3を有効にする必要がある場合は、この行にpop3を追加し、必要なdovecotパッケージ「dovecot-pop3d」をインストールして有効にすることもできます。
 

Dovecot Mail構成ファイルの変更: /etc/dovecot/conf.d/10-mail.conf

  • 構成で次のパラメータ「mail_location」を見つけて、メールストレージパスで更新する必要があります。メールフォルダは「/var/ mail /vhosts/」フォルダ内にあります。したがって、ファイルパスを次のように変更しました。
 
  • We need to set the "mail_privileged_group " parameter to "mail ".
 

Once this is done, we need to make we've set proper ownership and permissions for our mail folders. Create the mail folders for each domains which we've registered in the MySQL table inside this folder "/var/mail/vhosts" and set proper ownerships/permissions.

 

Modifying the Dovecot authentication file :/etc/dovecot/conf.d/10-auth.conf

  • Disable plain text authentication to ensure security by modifying the below parameter to "yes".
 
  • Modify the "auth_mechanisms" parameter as below:
 
  • We need to comment the mentioned line and enable the MySQL authentication by uncommenting the auth-sql.conf.ext line as below:
 

Modifying the authentication SQL file :/etc/dovecot/conf.d/auth-sql.conf.ext

Make sure your MySQL authentication file looks like this.

Modifying the Dovecot + MySQL configuration file :/etc/dovecot/dovecot-sql.conf.ext

  • We need to uncomment the "driver" parameter and set to MySQL as below:
 
  • Modify and set the connection parameters as per our database name and user.
 
  • Modify the default_pass_scheme to SHA-512 and password_query line as below:
 

Please note :Set permissions on the /etc/dovecot directory so the vmail user can use it.

 

Modifying Dovecot Master configuration file :/etc/dovecot/conf.d/10-master.conf

We are modifying four sections in this configuration file. IMAP section, local mail transfer section, authentication section and last authenticating worker process section. Please see the screenshots of each section below to view the modifications:

Modifying the SSL configuration :/etc/dovecot/conf.d/10-ssl.conf

We're modifying this section to enable SSL for the incoming/outgoing connections. This configuration settings are optional. But I'd recommend these for more security.

  • Change the SSL parameter to required
 
  • Specify the SSL cert and key file location for our configuration. You can view the screenshot for more details.

You need to restart Dovecot after all these modification.

That's all :) We've completed with our Mail server setup.やあ! You can access your email account using your username and password on any of your preferred email client. I could successfully access my email account using these settings below:

I hope you enjoyed reading this article. I would recommend your valuable suggestions and comments on this.
Have a Nice day!


Ubuntu
  1. UbuntuサーバーにDKIMをインストールする方法

  2. Ubuntu16でZimbraメールサーバーをセットアップする方法

  3. Ubuntu 20.04でRsyslogサーバーをセットアップする-その方法は?

  1. Ubuntu20.04でOpenVPNサーバーをセットアップする方法

  2. Ubuntu16.04にMySQLサーバーをインストールする方法

  3. Ubuntu17.04にMySQLサーバーをインストールする方法

  1. Ubuntu18.04にMySQLをインストールする方法

  2. Ubuntu18.04にMySQL8.0をインストールする方法

  3. UbuntuサーバーでOpenVPNをセットアップする方法