Mail Serverをつくる
現行の MailServer が古くなってしまい、さすがに再構築しなければならなくなった。
この際だから、FreeBSD 10.2で構築してみる。
もちろん、NetBSDも考えたんだけど、最近はFreeBSDに体重をかけ始めているので、そちらで行く事にした。まぁ、実際にはApplication ServerのLayerなので、違いはほとんどないはず。
Install
* OSはFreeBSD 10.2 で、環境はXenServer 6.5SP1上。 * Memoryはどうせそれほどのアクセスはないはずなので、2G * Home DirectoryはNFSで供給する。
一応、xe-guest-utilitiesとxen-guest-toolsは仕込んでおき、Zabbixでの監視設定は突っ込んだ。
Mail関連
sendmailやEximなども考えないでもないが、今回は移設が目的なので、
- Postfix 3系
- dovecot 2系
を利用し、SMTP/SMTPS/IMAP/IMAPsを動作させる事を主眼に置く。なお、一部LDAPを利用しているので、その設定も入れておく。
そもそも旧来の環境があまりにも古い( Postfix 2.6系 / Dovecot 1系 )なので、ちょっと作業が多い…
* 参照URL
- Postfix関連
- PolicydによるSPF制御関連
-
- py27-postfix-policyd-spf-python を使えばいいらしい
-
- Dovecot2関連
- AntiSPAM制御関連
* http://arika.org/2010/08/20/dovecot-antispam-plugin/ (今回は未導入)
-
- ovecot2-antispam-pluginを使えばいいらしい
- PostfixへのTLS適用関連
FreeBSDのpostfix/dovecotはdefaultではLDAPに対応していないので、portsから作らなければならない しかし、全てをいちいち作っていたら馬鹿らしいので、Postfixのみ作成すればいいように、以下をpkgでInstallしておく。
- perl5
- pcre
- openldap-client
- db5
- gmake
- gettext-tools
- expat
- gettext-runtime
- indexinfo
pkg install perl5 pcre openldap-client db5 gmake icu gettext-tools expat gettext-runtime indexinfo
なお、ports作成時の依存リストを見るには、
make build-depends-list
を実行すれば良い
次に、dovecot2をInstallする。これはLDAPに対応する必要があるので、portsから入れるしかない。
cd /usr/ports/mail/dovecot2 make rmconfig-recursive make config-recursive * LDAPをEnableする make make install
Dovecotを動かすためには、dovecot_enable=“YES”を忘れない事
次にPostfix
cd /usr/ports/mail/postfix-current make rmconfig-recursive make config-recursive * BDB/EAI/LDAP/DOVECOT2をEnableする make make install
Postfix をActivateするために、
Would you like to activate Postfix in /etc/mail/mailer.conf [n]? y
しておく。また、postfix_enable=“YES”を忘れない事
Sendmailを止めるために/etc/rc.confに
sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO"
を設定し、/etc/periodic.conf に
daily_clean_hoststat_enable="NO" daily_status_mail_rejects_enable="NO" daily_status_include_submit_mailq="NO" daily_submit_queuerun="NO"
細かいConfigの変更点は、とりあえず割愛。
重要
dovecotをopenssl s_connect で試験する場合に「どはまり」をしたのでメモしておく。
- まず、telnetで試験する
- telnet fqdn imap
- ? login foobar ultrasecret
- これで認証できればOK
- openssl s_client -connect fqdn:imaps
- これで、証明書等が見える。
? login foobar ultrasecret
- これで成功する人はおそらくWindowsな人だけ。
- syslogに
… imap-login: Disconnected (no auth attempts in ? secs):… rip=…, lip=…, TLS, session=<…>
などと出力される。 - これでは、試験が成功しない。
- openssl s_client -connect fqdn:imaps -crlf
- これで同じく証明書等が見える。
? login foobar ultrasecret
- これで認証に成功しなければdovecotの設定が間違っていると考えられる。
こんなのわかりません。実際、1日使ってしまったorz…