manekineko倉金家ホームページ

趣味の部屋/インターネットサーバー/サーバー構築メモ その4

メールサーバー postfix, dovecot, etc

2015年5月9日
今回もメールサーバーを立ち上げます。
従来どおりpostfixとdovecotの組み合わせを使用します。

そろそろ一番面倒なメールサーバーをやらなくてはなりません。
何回やってもめんどうなのであまり気乗りしませんが、春もきたことだしそろそろやらないと。

およそ以下のような方針でやります。(基本的には従来とあまり変わりませんが。)
1.メールサーバー(MTA+MUA)として今回も同じくpostfixとdovecotの組合わせをインストールします。
2.ウィルススキャナとしてclamavを使用し、clamavとpostfixの連携にはclamav-milterを使用します。
3.メール関係のデータベースに従来どおりMySQLを使います。
4.データベースの設定・確認にPostfixAdminを導入します。
5.ユーザ認証には今までやった中で一番めんどうの少ないdovecot-saslを使うことにします。
6.スパム対策として従来通りホスト名を逆引きできない接続からの受信はいったん遅延し、再要求があった場合にのみ受信するようにします。
7.WEBメールソフトに従来どおりSquirrelMailを導入します。
1〜3はすでにやってありますので4のPostfixAdminから。

PostfixAdmin
php-imap を追加インストール。

http://sourceforge.net/projects/postfixadmin/ より
PostfixAdmin-2.92.tar.gz
をダウンロードし、http表示ディレクトリに展開し名前をpostfixadminとでも変更。
INSTALL.TXTを読みます。

postfixadmin/templates_c ディレクトリのowner:groupをapache:apacheに変更(すなわち書き込めるように)。

.htaccess を設置。単に念のためのアクセス制限。
postfixadmin/.htaccess
Options -Indexes +FollowSymLinks
DirectoryIndex index.php
<FilesMatch "^setup\.php$">
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1 ::1 192.168.
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Allow,Deny
Allow from 127.0.0.1 ::1 192.168.
</IfModule>
</FilesMatch>
postfixadmin/config.local.php をつくり、データベース設定など記入。
ほとんど以前やったCentOS5でのPostfixAdminの設定と同じ。

このconfig.local.phpはconfig.inc.phpでincludeされてそれを上書きしますので、変更部分だけをこちらに記載すればいいです。

postfixadmin/setup.phpをwebブラウザでアクセスするといろいろチェックをしてくれます。問題があれば指示に従って修正。
MySQLのpostfixデータベースは古いバージョンのをそのまま持って来ていますが新しいバージョンのsetup.phpを起動しますと自動的にテーブルがアップデートされます。

以上、ためしにアクセスしてみてOK。

Dovecot
今回のdovecotのバージョンは2.2.10。
設定は前回CentOS6での設定とほとんど同じです。

Postfix
今回のPostfixのバージョンは2.2.10、前回CentOS6ではpostfix-2.6.6。前回のバージョンの方が高いのはVDAパッチを適用方々最新版でビルドしたためですが、今回はめんどうなのでそのまま。前回のCentOS6での設定とほとんど同じですが、ウィルスチェッカーがclam-smtpdからclamav-milterに変わっています。
その部分だけ変更。

/etc/postfix/main.cf
content_filter = virus-scan:127.0.0.1:10025
receive_override_options = no_address_mappings
      ↓
smtpd_milters = unix:/var/run/clamav-milter/clamav-milter.socket
non_smtpd_milters = unix:/var/run/clamav-milter/clamav-milter.socket
milter_default_action = accept
receive_override_options = no_address_mappings
master.confへのウィルスチェッカーの設定は必要なし。

ファイアウォール設定
CentOS7のファイアウォールにはSSLを使うpop3s,imapsサービスは登録されていますが、SSLを使わない従来のpop3,imapサービスは登録されていません。今後はとにかくSSLを使えということのようですが、古いメールソフトが使えないかもしれませんし、利用者に設定変更してもらうのも面倒です。
それに試してみたら信用できないSSL証明書だから接続するなという警告もでます。でも高いお金を払ってまで認証を受ける気もありません。

で、推奨されてはいませんが、pop3,imapサービスを追加します。
設定を「永続」にして、サービスに
pop3 : port 110
imap : port 143
を追加し、poblicゾーンを再読み込みし、上記を有効に。

不正中継テスト
すべての設定を動作を確認したら最後に http://www.rbl.jp/svcheck.php で
不正中継のテストをしておきます。
すべてのテストで不正中継されないことを確認し、OK!。