このチュートリアルでは、Ubuntu 20.04 VPSでPostfix、Dovecot、Postfixadmin、MariaDBを使用してメールサーバーを設定するプロセスについて説明します。しかし、最初に、PostfixAdminとは何ですか?
PostfixAdminは、PHPで記述されたオープンソースのウェブベースのアプリケーションであり、Postfixメールサーバーの仮想ドメインとメールアカウントを作成するために使用されます。 PostfixAdminを使用すると、メールボックスとエイリアスの管理、割り当ての設定、休暇/不在メッセージの構成などを行うことができます。さらに、Webベースのインターフェイスにより、UIを備えたブラウザウィンドウの使いやすさが向上します。
PostfixAdminを使用すると、仮想電子メールアドレスと仮想メールボックスを使用できるため、電子メールアドレスごとに新しいシステムユーザーアカウントを作成する必要はありません。これらすべての詳細を考慮すると、PostfixAdminは用途の広いツールであり、ほとんどすべての郵送ニーズに使用できます。このチュートリアルは非常に詳細であり、すべてを適切に構成するには時間がかかる場合があります。インストール手順を始めましょう。
ハードウェア/ソフトウェア要件
- ルートアクセスが有効になっているUbuntu20.04サーバーまたはVPS、またはsudo権限を持つユーザー。すべてのユーザーにVPSへのフルルートアクセスを提供します。
- Postfixメール転送エージェント(MTA)とDovecot IMAP/POP3メール配信エージェントをインストールする必要があります。
- データベースサーバー(MySQL / MariaDB、PostgreSQL、またはSQLite)をインストールする必要があります。
- ApacheWebサーバーは
mod_rewrite
とともにインストールする必要があります モジュールが有効になっています。 - PHP 7.1以降は、
imap
とともにインストールする必要があります 、mbstring
およびmysql
拡張機能はすべて有効になっています。
ステップ1.はじめに
まず、SSHを使用してサーバーにログインする必要があります。これを行うには、次のコマンドを入力します:
ssh root@IP_Address -p Port_Number
rootユーザーを使用していない場合は、「root」をユーザー名に置き換えることを忘れないでください。サーバーのIPアドレスとSSHポート番号に応じて赤の値を変更します(デフォルトの番号は22なので、サーバーがカスタムポート番号を使用しない限り、最初にそれを試してください)。
ログインしたら、すべてのパッケージを最新の利用可能なバージョンに更新する必要があります。
apt-get update -y apt-get upgrade -y
すべてのパッケージが最新になったら、サーバーを再起動して構成の変更を適用し、すべてのソフトウェアが最新バージョンで実行されていることを確認します。
ステップ2.システムユーザーアカウントを作成する
PostfixAdminには、複数の仮想ドメイン、ユーザー、およびエイリアスを作成する機能があります。これにより、新しい電子メールアカウントを追加する必要があるときに、新しいシステムユーザーを作成する手間が省けます。セキュリティ上の理由から、メールを/var/vmail
に保存する権限を持つ「vmail」という名前の新しいユーザーを作成します ディレクトリ:
useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mail User" vmail mkdir -p /var/vmail chmod -R 770 /var/vmail chown -R vmail:mail /var/vmail
ステップ3.PHP、Apache、および必要な拡張機能をインストールします
PHP 7.4とApache2は、20.04のデフォルトのUbuntuリポジトリに含まれています。次のコマンドを使用して、Apache 2、PHP 7.4、および必要なPHP拡張機能をインストールできます。コマンドには、必要なPHPモジュールとApacheモジュールも含まれています。
apt-get install apache libapache2-mod-php php php-common php-mbstring php-imap php-mysql
ステップ4.MariaDBサーバーをインストールする
PostfixAdminは、電子メールアカウントとドメイン情報を保存できるようにするためにデータベースを必要とします。このチュートリアルでは、機能の同等性を維持するMySQLのオープンソースバージョンであるMariaDBデータベースシステムを使用します。次のコマンドを使用してMariaDBサーバーをインストールできます。
apt-get install mariadb-server mariadb-client mariadb-common
次のコマンドを使用して、MariaDBサービスを開始し、サーバーの起動時に開始できるようにします。
systemctl start mariadb systemctl enable mariadb
MariaDBインストールのセキュリティを向上させるには、mysql_secure_installation
を実行します。 スクリプト:
mysql_secure_installation
プロンプトが表示されたら、MariaDBルートパスワードを設定して、すべての質問に安全に「Y」と答えることができます。
Enter current password for root (enter for none): Just press the [Enter] key since there is no default password Set root password? [Y/n]: Y New password: Enter a strong password Re-enter new password: Repeat the same password from before Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
上記の手順を実行すると、MariaDBrootユーザーのパスワードが設定されます。
次のコマンドを実行して、MySQLコンソールにアクセスします。
mysql -u root -p
そして、mysql_secure_installation
を使用して以前に設定したルートパスワードを入力します 脚本。そのスクリプトを実行しないことを選択した場合、パスワードは設定されていないため、[Enter]キーを1回押すだけです。
次に、PostfixAdmin用のMariaDBユーザーとデータベースを作成します:
MariaDB [(none)]> CREATE USER 'postfixadmin'@'localhost' IDENTIFIED BY 'Strong_Password'; MariaDB [(none)]> CREATE DATABASE postfixadmin; MariaDB [(none)]> GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q
「Strong_Password」を適切で一意のパスワードに置き換えることを忘れないでください。
ステップ5.Postfixをインストールする
Postfixとpostfix-mysql
をインストールします 以下のコマンドを実行してパッケージを作成します:
apt-get install postfix postfix-mysql
Postfixのインストール中に、メール設定の種類を尋ねられます。 [インターネットサイト]を選択し、[OK]をクリックして続行します。次に、[システムメール名]フィールドにサーバーのホスト名を入力します。
Postfixのインストールが完了したら、いくつかのPostfix設定ファイルを作成する必要があります。作成および構成する必要のあるファイルがかなりあるため、これにはしばらく時間がかかります。
mkdir -p /etc/postfix/sql/
このファイルを作成して、仮想エイリアスドメインキャッチオールマップをクエリするためのデータベース接続設定を定義します。 vi
を使用しています 、ただし、任意のテキストエディタを使用できます:
vi /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
ファイルが作成されたら、次のコンテンツを挿入します。
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
このファイルを作成して、仮想エイリアスドメインメールボックスマップをクエリするためのデータベース接続設定を設定できるようにします。
vi /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
次に、次のコンテンツを挿入します:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'
その後、次のファイルを作成して、仮想エイリアスドメインマップをクエリするためのデータベース接続設定を定義します。
vi /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
以下を追加します:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
次の設定は、仮想エイリアスマップをクエリするためのデータベース接続設定です。このファイルを作成します:
vi /etc/postfix/sql/mysql_virtual_alias_maps.cf
このテキストを追加します:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
あと少しあります。次に、仮想ドメインマップをクエリするためのデータベース接続設定用のファイルを作成します。
vi /etc/postfix/sql/mysql_virtual_domains_maps.cf
追加したこれらすべてのファイルにパスワードを設定してください。内容を追加します:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
次のファイルに。それを作成し、仮想メールボックス制限マップをクエリするためのデータベース接続設定を追加します。
vi /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
これを挿入してパスワードを変更します:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
最後に、このファイルを作成し、仮想メールボックスマップをクエリするためのデータベース接続設定を追加します。
vi /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
注 :上記のすべての構成ファイルで、「Strong_Password」を自分のパスワードに置き換えることを忘れないでください。
main.cf
を変更します Postfix設定のコアであるPostfix設定ファイル。次のコマンドを実行して、各設定を編集します。
postconf -e "myhostname = $(hostname -f)" postconf -e "virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf" postconf -e "virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf" postconf -e "virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf" postconf -e "smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem" postconf -e "smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key" postconf -e "smtpd_use_tls = yes" postconf -e "smtpd_tls_auth_only = yes" postconf -e "smtpd_sasl_type = dovecot" postconf -e "smtpd_sasl_path = private/auth" postconf -e "smtpd_sasl_auth_enable = yes" postconf -e "smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination" postconf -e "mydestination = localhost" postconf -e "mynetworks = 127.0.0.0/8" postconf -e "inet_protocols = ipv4" postconf -e "inet_interfaces = all" postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"
また、Certbotをインストールしてから、サーバーホスト名のSSL証明書を暗号化して、/etc/ssl/certs/ssl-cert-snakeoil.pem
を置き換えることもできます。 および/etc/ssl/private/ssl-cert-snakeoil.key
新しく作成されたSSL証明書と公開鍵ファイルを使用します。
次に、master.cf
を編集します Postfix設定ファイルを作成し、次のように変更します:
vi /etc/postfix/master.cf
ファイルが次のようになるように内容を追加または変更します。
smtp inet n - y - - smtpd #smtp inet n - y - 1 postscreen #smtpd pass - - y - - smtpd #dnsblog unix - - y - 0 dnsblog #tlsproxy unix - - y - 0 tlsproxy submission inet n - y - - 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= # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o smtpd_client_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=permit_sasl_authenticated,reject # -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 milter_macro_daemon_name=ORIGINATING
サーバーの起動時にPostfixサービスを開始し、Postfixサービスを再起動できるようにします:
systemctl enable postfix systemctl restart postfix
Postfixが最終的にインストールおよび構成されました。
ステップ6.Dovecotをインストールする
Dovecotは、ユーザーがIMAPおよび/またはPOP3プロトコルを介して完全なセキュリティで電子メールを受信できるようにするメール配信エージェントです。 Dovecotとdovecot-mysql
をインストールできます 以下のコマンドを使用してパッケージ化します:
apt-get install dovecot-core dovecot-lmtpd dovecot-imapd dovecot-pop3d dovecot-mysql
/etc/dovecot/conf.d/10-mail.conf
を編集します ファイル:
vi /etc/dovecot/conf.d/10-mail.conf
これをコンテンツとして挿入します:
mail_location = maildir:/var/vmail/%d/%n mail_privileged_group = mail mail_uid = vmail mail_gid = mail first_valid_uid = 150 last_valid_uid = 150
/etc/dovecot/conf.d/10-auth.conf
を開きます ファイル:
vi /etc/dovecot/conf.d/10-auth.conf
ファイルが次のようになるように編集します:
auth_mechanisms = plain login #!include auth-system.conf.ext !include auth-sql.conf.ext
次に、dovecot-sql.conf.ext
を編集します ファイルを作成し、次の行を追加します:
vi /etc/dovecot/dovecot-sql.conf.ext
driver = mysql connect = host=localhost dbname=postfixadmin user=postfixadmin password=Strong_Password default_pass_scheme = MD5-CRYPT password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1' user_query = SELECT '/var/vmail/%d/%u' as home, 'maildir:/var/vmail/%d/%u' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
Strong_Passwordを、MariaDBユーザーを作成するときに手順4で前に設定した実際のパスワードに置き換えることを忘れないでください。
/etc/dovecot/conf.d/10-ssl.conf
を編集します ファイルを作成し、SSLサポートを有効にします:
vi /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
そのファイルを保存して閉じてから、/etc/dovecot/conf.d/15-lda.conf
を編集します ファイルを作成し、postmaster_address
を設定します メールアドレス。
vi /etc/dovecot/conf.d/15-lda.conf
postmaster_address = [email protected]
yourdomain.comを、サーバーを指す実際のドメイン名に変更してください。
/etc/dovecot/conf.d/10-master.conf
を編集します ファイルで、service lmtp
を見つけます セクションを作成し、次の行に置き換えます。
vi /etc/dovecot/conf.d/10-master.conf
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } }
その部分を編集したら、service auth
を見つけます セクションを作成し、次のスニペットに置き換えます:
service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } unix_listener auth-userdb { mode = 0600 user = vmail } user = dovecot }
次に、service auth-worker
を変更します 次のセクション:
service auth-worker { user = vmail }
ファイルを保存して閉じます。
Dovecot構成ファイルの正しい権限を設定します:
chown -R vmail:dovecot /etc/dovecot chmod -R o-rwx /etc/dovecot
サーバーの起動時にDovecotサービスを開始できるようにし、Dovecotを再起動して、これらの新しい構成ファイルをすべて有効にします。
systemctl enable dovecot systemctl restart dovecot
ステップ7.PostfixAdminをインストールします
必要なソフトウェアがすべてインストールおよび構成されたので、PostfixAdminをインストールして構成し、このチュートリアルを終了します。
利用可能な最新バージョンのPostfixAdminをGithubからダウンロードし、/var/www/html/postfixadmin
に抽出します。 ディレクトリ。
apt-get install git cd /var/www/html/ git clone https://github.com/postfixadmin/postfixadmin.git
/var/www/html/postfixadmin/config.local.php
を編集します ファイルを作成し、次の行を追加します:
vi /var/www/html/postfixadmin/config.local.php
<?php $CONF['database_type'] = 'mysqli'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfixadmin'; $CONF['database_password'] = 'Strong_Password'; $CONF['database_name'] = 'postfixadmin'; $CONF['configured'] = true; $CONF['encrypt'] = 'md5crypt'; ?>
Strong_PasswordをMariaDBユーザーパスワードに置き換えます。
mkdir /var/www/html/postfixadmin/templates_c chown -R www-data: /var/www/html/postfixadmin
http://your_server_IP/postfixadmin/public/setup.php
を開きます 。すべてに問題がないかどうかを確認し、エラーがないことを確認します。
下にスクロールして、新しいセットアップパスワードを2回入力します。必ず強力なものを選択してください:
次に、[パスワードハッシュを生成]ボタンをクリックします。
config.local.php
を編集します ファイルを作成し、生成されたハッシュをそれに追加します:
$CONF['setup_password'] = '0584cbe2b03cad2e29c8be0127361e37:d41ceb2689b747cf143d1809aec7b8e6bdde983e';
例に示されているハッシュを、インスタンス用に生成されたハッシュに置き換えます。
config.local.php
を保存します ファイルを開き、セットアップページをもう一度開き、PostfixAdmin管理者ユーザーアカウントを作成します。そのページの設定パスワードは前の手順で使用したものと同じなので、管理者のメールアドレスやパスワードなどの他の必須フィールドに入力し、[管理者を追加]ボタンをクリックします。
それでおしまい! PostfixAdminのインストールが完了しました。
http://your_server_IP/postfixadmin/login.php
を開きます お好みのウェブブラウザで。ログインページが表示されます:
管理者ユーザーとしてログインし、サーバーでホストされているドメインを追加します。
これを行うと、メールアドレスを作成したり、メールの割り当てを設定したりできます。
これが、Ubuntu 20.04 VPSにPostfixAdminインストールをインストール、構成、および使用を開始するために必要なすべてです。
このインストールプロセスは非常に複雑で、非常に簡単に混乱して、Postfix、Dovecot、またはその両方のインストールが失敗することになります。ただし、マネージドUbuntu VPSをホストしている場合は、インストールを依頼する以外に何もする必要はありません。サポートエキスパートのチームがサーバーのすべての側面を完全にインストールして構成し、Postfix、 DovecotとPostfixAdminはすべて問題なく動作します。また、定期的なメンテナンスを設定し、サーバーを最適化して速度を最大化するのにも役立ちます。
このチュートリアルがお役に立てば、ソーシャルメディアで共有していただければ幸いです。または、インストールがどのように行われたか、PostfixAdminがメールサーバーの管理をより簡単に支援したかどうかを知らせるコメントを書くことができます。ありがとう!