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エラーが出るかどうか試してみるか・・・
スナップショット機能がないから、うまく行ったところまですぐに巻き戻して・・・というのが出来ないのが面倒くさいが・・・