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

PostfixAdminを使用してメールサーバーを設定する

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 vmailsudo 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ルートパスワードを作成するように求められます。

Postfix管理者番号をダウンロードして設定します#

執筆時点では、3.1 PostfixAdminの最新の安定バージョンです。

次のwgetコマンドを使用してPostfixAdminアーカイブをダウンロードします:

VERSION=3.1wget -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/postfixadminrm -f postfixadmin-${VERSION}.tar.gzmkdir /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アカウントをより安全なものにします。 無料でインストールするLet'sEncryptSSL証明書#

SSL証明書を使用してPostfixAdminインストールにアクセスし、DovecotおよびPostfix SSL/TLS暗号化を有効にします。

Let’sEncryptSSL証明書をインストールする方法についてのチュートリアルがあります。ここで最も重要なポイントは、サーバーのホスト名(FQDN)のSSL証明書を生成することです。この場合はmail.linuxize.com

上記のリンク先のチュートリアルに従ってSSL証明書を生成したら、次のようにNginxサーバーブロックを編集します。

/etc/nginx/sites-enabled/mail.linuxize.com.conf
server {
    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ユーザーを使用します。


Ubuntu
  1. CentOS7でPostfixAdminとMariaDBを使用してメールサーバーをセットアップする

  2. CentOS7でPostfixAdminを使用してメールサーバーを設定する方法

  3. Debian9でPostfixAdminを使用してメールサーバーを設定する

  1. Debian11でPostfixAdminを使用してメールサーバーを設定する方法

  2. Debian10でModoboaを使用してメールサーバーを設定する方法

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

  1. iRedMailを使用してDebian9Stretchでメールサーバーを簡単にセットアップする方法

  2. iRedMailを使用してDebian10Busterでメールサーバーを簡単にセットアップする方法

  3. iRedMailを使用してCentOS7でフル機能のメールサーバーを簡単にセットアップする方法