Postfix Adminは、ユーザーがPostfixベースの電子メールサーバーを構成および管理できるようにするWebベースのインターフェースです。 Postfix Adminを使用すると、複数の仮想ドメイン、ユーザー、エイリアスを作成および管理できます。
これは、必要なDNSレコードの作成をカバーし、Postfix Admin、無料のLet’s Encrypt証明書を使用したNginx、PHP、およびMySQLをインストールおよび構成する方法を説明するメールサーバーのセットアップと構成に関するシリーズの最初の投稿です。
このチュートリアルはUbuntu16.04用に作成されていますが、少し変更を加えた同じ手順で、新しいバージョンのUbuntuでも機能するはずです。
前提条件#
このシリーズに従うための前提条件として、次のものが必要になります。
- Ubuntu16.04サーバー。サーバーのホスト名はFQDNである必要があります。このシリーズでは、
mail.linuxize.com
を使用します 。 - sudo権限を持つユーザー。
DNS設定#
メールシステムを機能させるには、次のDNSレコードを設定する必要があります。
- システムのFQDN(ホスト名)をメールサーバーのIPv4アドレスにポイントするためのレコード。
mail.linuxize.com. 3600 IN A 23.45.67.89
FQDNは、ホスト名とドメイン名の2つの部分で構成されています。- MXレコード。受信者のドメインに代わって、どのメールサーバーがメールメッセージの受信を担当するかを指定します。この場合、すべてのメールを
@linuxize.com
に送信します。mail.linuxize.com
が受け入れるメールアドレス メールサーバー。
linuxize.com. 3600 IN MX 0 mail.linuxize.com.
- SPFレコード。特定のドメインに代わって、どのメールサーバーが電子メールの送信を承認されているかを確認するために使用されます。以下の例では、ドメインメールサーバー(mx)を承認しており、SPFチェックが失敗した場合、結果はソフト障害(〜all)になります。
linuxize.com. 3600 IN TXT "v=spf1 mx ~all"
もちろん、ドメイン名とIPアドレスを実際のドメイン名とメールサーバーのIPアドレスに置き換える必要があります。 逆引きDNS(PTR)#
逆引きDNS(PTR)は、IPアドレスからドメイン名へのマッピングであり、ドメイン名をIPアドレスにマッピングするDNSとは正反対です。
ほとんどの電子メールサーバーは、接続しようとしているIPアドレスに対して逆引きDNSルックアップを実行し、PTRレコードが設定されていない場合、サーバーからの電子メールを受け入れない場合があります。
ほとんどの場合、PTRエントリは、ホスティングプロバイダーのWebインターフェイスを介して、またはサポートチームに連絡して、正しいPTRレコードを設定するように依頼することで設定できます。
digコマンドを使用して、特定のIPアドレスの逆引きDNSを見つけることができます。
dig -x 23.45.67.89
23.45.67.89.in-addr.arpa domain name pointer mail.linuxize.com.
システムユーザーを作成する#
仮想ユーザーでメールサーバーを構成しているため、すべてのメールボックスの所有者であり、仮想ユーザーがサーバー上の電子メールメッセージにアクセスするために使用する1人のシステムユーザーが必要です。
次のコマンドは、vmail
という名前の新しいグループとユーザーを作成します ユーザーのホームディレクトリを/var/mail/vmail
に設定します :
sudo groupadd -g 5000 vmail
sudo useradd -u 5000 -g vmail -s /usr/sbin/nologin -d /var/mail/vmail -m vmail
すべての仮想メールボックスは/var/mail/vmail
に保存されます ディレクトリ。
Nginx PHPとMySQLをインストールする#
PostfixAdminはPHPベースのアプリケーションです。 PostfixAdmin Webインターフェイスにアクセスできるようにするには、WebサーバーとPHPをインストールする必要があります。
次のコマンドを実行して、Nginx、PHP、および必要なすべてのPHPモジュールをインストールします。
sudo apt install nginx mysql-server php7.0-fpm php7.0-cli php7.0-imap php7.0-json php7.0-mysql php7.0-opcache php7.0-mbstring php7.0-readline
インストール中にMySQLルートパスワードを作成するように求められます。
執筆時点では、3.1
PostfixAdminの最新の安定バージョンです。
次のwgetコマンドを使用してPostfixAdminアーカイブをダウンロードします:
VERSION=3.1
wget -q https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-${VERSION}/postfixadmin-${VERSION}.tar.gz
ダウンロードが完了したら、アーカイブを抽出します。
tar xzf postfixadmin-${VERSION}.tar.gz
PostfixAdminソースファイルを/var/www
に移動します ディレクトリを作成してtemplates_c
を作成します ディレクトリ(スマートキャッシュ):
sudo mv postfixadmin-${VERSION}/ /var/www/postfixadmin
rm -f postfixadmin-${VERSION}.tar.gz
mkdir /var/www/postfixadmin/templates_c
NginxとPHP-FPMの両方がユーザーwww-data
で実行されています したがって、/var/www/postfixadmin
の所有権を変更する必要があります そのユーザーへ:
sudo chown -R www-data: /var/www/postfixadmin
Postfix AdminはMySQLデータベースを使用して、ユーザー、ドメイン、およびアプリケーション構成に関する情報を保存します。
MySQLシェルにログインします:
mysql -u root -p
次のコマンドを使用して、新しいMySQLユーザーとデータベースを作成します。
パスワードを変更することを忘れないでください(CREATE DATABASE postfixadmin;
GRANT ALL ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'P4ssvv0rD';
FLUSH PRIVILEGES;
P4ssvv0rD
)より安全なものに。
デフォルトのPostfixAdmin設定を編集する代わりに、config.local.php
という名前の新しいファイルを作成します これにより、デフォルトのアプリケーション設定が上書きされます:
テキストファイルでファイルを開きます:
sudo nano /var/www/postfixadmin/config.local.php
次のPHPコードを貼り付けます:
/var/www/postfixadmin/config.local.php<?php
$CONF['configured'] = true;
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'P4ssvv0rD';
$CONF['database_name'] = 'postfixadmin';
$CONF['default_aliases'] = array (
'abuse' => '[email protected]',
'hostmaster' => '[email protected]',
'postmaster' => '[email protected]',
'webmaster' => '[email protected]'
);
$CONF['fetchmail'] = 'NO';
$CONF['show_footer_text'] = 'NO';
$CONF['quota'] = 'YES';
$CONF['domain_quota'] = 'YES';
$CONF['quota_multiplier'] = '1024000';
$CONF['used_quotas'] = 'YES';
$CONF['new_quota_table'] = 'YES';
$CONF['aliases'] = '0';
$CONF['mailboxes'] = '0';
$CONF['maxquota'] = '0';
$CONF['domain_quota_default'] = '0';
?>
ファイルを保存して閉じます。
上記の構成では、データベースタイプとログインクレデンシャルを定義しています。また、デフォルトのエイリアスを指定して、fetchmail
を無効にします 割り当てを有効にします。
次に、次のコマンドを実行して、PostfixAdminデータベースのスキーマを作成します。
sudo -u www-data php /var/www/postfixadmin/upgrade.php
データベースにデータが入力されたら、postfixadmin-cli
を使用して最初のPostfixAdminスーパー管理者ユーザーを作成できます。 ツール。
このユーザーには、ドメインまたはアプリケーションの設定を変更するための管理者権限があります。
sudo bash /var/www/postfixadmin/scripts/postfixadmin-cli admin add [email protected] --superadmin 1 --active 1 --password P4ssvv0rD --password2 P4ssvv0rD
出力は次のようになります。
Welcome to Postfixadmin-CLI v0.2
---------------------------------------------------------------
The admin [email protected] has been added!
---------------------------------------------------------------
パスワードを変更することを忘れないでください(P4ssvv0rD
)superadminアカウントをより安全なものにします。 SSL証明書を使用してPostfixAdminインストールにアクセスし、DovecotおよびPostfix SSL/TLS暗号化を有効にします。
Let’sEncryptSSL証明書をインストールする方法についてのチュートリアルがあります。ここで最も重要なポイントは、サーバーのホスト名(FQDN)のSSL証明書を生成することです。この場合はmail.linuxize.com
。
上記のリンク先のチュートリアルに従ってSSL証明書を生成したら、次のようにNginxサーバーブロックを編集します。
/etc/nginx/sites-enabled/mail.linuxize.com.confserver {
listen 80;
server_name mail.linuxize.com;
include snippets/letsencrypt.conf;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name mail.linuxize.com;
root /var/www;
ssl_certificate /etc/letsencrypt/live/mail.linuxize.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.linuxize.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/mail.linuxize.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
location / {
try_files $uri $uri/ /index.php;
}
location /postfixadmin {
index index.php;
try_files $uri $uri/ /postfixadmin/index.php;
}
location ~* \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {return 404;}
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
変更を有効にするには、Nginxサービスをリロードします:
sudo systemctl reload nginx
この時点で、https://mail.linuxize.com/postfixadmin
でPostfixAdminインストールにログインできるはずです。 、このチュートリアルの前半で作成したsuperadminユーザーを使用します。