メールサーバーセットアップ@さくらVPS

1. Postfix

1.1. Postfix インストールとメールの疎通確認

dnf install -y postfix postfix-mysql
alternatives --display mta
mta -ステータスは自動です。
リンクは現在 /usr/sbin/sendmail.postfix を指しています。
/usr/sbin/sendmail.postfix - priority 60
 スレーブ mta-mailq: /usr/bin/mailq.postfix
 スレーブ mta-newaliases: /usr/bin/newaliases.postfix
 スレーブ mta-pam: /etc/pam.d/smtp.postfix
 スレーブ mta-rmail: /usr/bin/rmail.postfix
 スレーブ mta-sendmail: /usr/lib/sendmail.postfix
 スレーブ mta-mailqman: /usr/share/man/man1/mailq.postfix.1.gz
 スレーブ mta-newaliasesman: /usr/share/man/man1/newaliases.postfix.1.gz
 スレーブ mta-sendmailman: /usr/share/man/man1/sendmail.postfix.1.gz
 スレーブ mta-aliasesman: /usr/share/man/man5/aliases.postfix.5.gz
 スレーブ mta-smtpdman: /usr/share/man/man8/smtpd.postfix.8.gz
現在の「最適」バージョンは /usr/sbin/sendmail.postfix です。
vi /etc/hosts
### 下記をコメントアウト
::1         localhost localhost.localdomain localhost6
postconf |grep mail_version
mail_version = 3.3.1
milter_macro_v = $mail_name $mail_version
systemctl enable postfix
systemctl start postfix

これで、疎通確認しようとしたが、sendmail コマンドが応答なしかと勘違いして焦った・・・

sendmail -t hoge@hogehoge.com
from: root@hoge.hogehoge.com  ← ここから全部手打ち
subject: test

test

.  ← 最後にピリオド打って Enter でメール送信。

ヘッダー情報のところから、全部自分でタイプしないとダメってのを忘れてました。

1.2. PostfixAdmin

1.2.1. PostfixAdmin 本体のダウンロードと apache の設定

cd /srv/
git clone https://github.com/postfixadmin/postfixadmin.git
cd postfixadmin
LATEST_TAG=$(git tag -l | sort -V |  grep -iv 'push\|rc\|beta' | tail -1)
git checkout ${LATEST_TAG}
mkdir templates_c
chown -R apache templates_c
vi /etc/httpd/conf.d/postfixadmin.conf
Alias /postfixadmin "/srv/postfixadmin/public"
<Directory "/srv/postfixadmin/public">
    DirectoryIndex index.html index.php
    AllowOverride All
    Options FollowSymlinks
    Require all granted
</Directory>

1.2.2. PostfixAdmin 用のデータベース作成

MariaDBにログインして、以下のSQLを実行。同じことができれば、コマンドラインでも phpMyAdmin でも可。

CREATE DATABASE IF NOT EXISTS postfix;  
CREATE USER 'postfix'@'localhost' IDENTIFIED BY '[postfixユーザーのパスワード]';
GRANT ALL PRIVILEGES ON postfix.* TO 'postfix'@'localhost';
FLUSH PRIVILEGES;

1.2.3. PostfixAdmin の設定ファイル、セットアップ画面

vi /srv/postfixadmin/config.local.php
<?php
$CONF['configured'] = true;

$CONF['default_language'] = 'ja';
$CONF['database_type'] = 'mysql';
$CONF['database_user'] = 'postfix';

$CONF['database_password'] = '[postfixユーザーのパスワード]';
$CONF['database_name'] = 'postfix';

$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';

$CONF['encrypt'] = 'dovecot:SHA512-CRYPT';

$CONF['footer_link'] = 'https://[your-domain]/postfixadmin/';
$CONF['footer_text'] = 'Return to [your-domain]/postfixadmin/';
?>
systemctl restart httpd

ここまでできたら、ブラウザでPostfixAdminのセットアップ画面にアクセスする。

https://[your-domain]/postfixadmin/setup.php

すると、各種チェックが行われて、問題なければページの下の方に、パスワードの入力欄が出てくる。

パスワードを入力して、[Generate password hash] というボタンを押すと、入力したパスワードがハッシュ化されて、以下のようなメッセージが出てくる。

If you want to use the password you entered as setup password, edit config.inc.php or config.local.php and set

$CONF['setup_password'] = '[ハッシュ化されたパスワード]';

これに従って、/srv/postfixadmin/config.local.php に追記する。

設定ファイルに追記できたら、セットアップ画面に再度アクセス。

今度は「Add a SuperAdmin Account」の欄が増えているので、必要事項を入力。

今度は、ログイン画面にアクセスする。

https://[your-domain]/postfixadmin/login.php

で、ログイン画面は出てきたんだが、その後真っ白。どゆこと?

apacheのアクセスログにも、エラーログにもなんにも出てないし・・・

調べてみると、postfixAdmin は色々とPHPのパッケージが必要になるようなので、追加で入れてみる。

dnf --enablerepo=remi install php-json php-curl php-zip php-xml php-bz2 php-intl php-gmp

これで、httpd 再起動してリトライ。 今度は、Fatal Errorがでた。

Fatal error: Uncaught Exception: /usr/bin/doveadm pw -r 12 failed, see error log for details in /srv/postfixadmin/functions.inc.php:1042 Stack trace: #0 /srv/postfixadmin/functions.inc.php(1239): _pacrypt_dovecot() #1 /srv/postfixadmin/model/Login.php(38): pacrypt() #2 /srv/postfixadmin/public/login.php(63): Login->login() #3 {main} thrown in /srv/postfixadmin/functions.inc.php on line 1042

どうも、パスワードの暗号化でdovecot の機能を使うような設定になっているので、先にインストールしとかないといけないようだ。

dnf install dovecot dovecot-mysql

これで postfixAdmin にログインできるようにはなったけど・・・設定ファイルやらガチャガチャいじったし、php のパッケージが足らんかったのがまずいのか、dovecot を先にインストールしなかったのがまずかったのかが分からんので、このままというのも気持ち悪い・・・

メールサーバーの構築は未経験に近いから、ちょっと難易度高いな・・・

もっかいやり直すか・・・いや、その前にアンチウイルスとかRKHunter入れてみて、phpの503エラーが出るかどうか試してみるか・・・

スナップショット機能がないから、うまく行ったところまですぐに巻き戻して・・・というのが出来ないのが面倒くさいが・・・

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA