GNU/Linux >> Linux の 問題 >  >> Panels >> Panels

Ubuntu20.04にPostfixAdminを使用してメールサーバーをインストールする方法

このチュートリアルでは、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がメールサーバーの管理をより簡単に支援したかどうかを知らせるコメントを書くことができます。ありがとう!


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

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

  3. Ubuntu16.04にosTicketをインストールする方法

  1. Ubuntu16.04にLAMPスタックを使用してWordPressをインストールする方法

  2. Ubuntu18.04にOpenLiteSpeedでWordPressをインストールする方法

  3. Ubuntu20.04にLAMPスタックを使用してWordPressをインストールする方法

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

  2. Ubuntu20.04にFastPanelをインストールする方法

  3. Ubuntu20.04にOpenLiteSpeedを使用してVanillaフォーラムをインストールする方法