harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

[メモ]FreeBSDでsendmail→postfixへの切り替え

   


FreeBSDでのsendmail→postfix切り替えの作業ログ。
お客さんの会社で、長らく管理人不在のまま使用していたFreeBSDのWebサーバーでハードウェア障害が起き、バックアップもないまま虫の息になってしまったため、データをサルベージ出来るうちに作り直すことに。

postfixをインストールする際にsendmailからpostfixへの切り替え後ウィザードが出るので
MTAを変更する作業は割と簡単。
ただsystem-switch-mailほどオートマティックな感じではなく、環境によっては
ファイルを自作したり、sendmailを手動でkillしたりと、簡単な手間はかかる。

■環境

  • FreeBSD 7.3
  • postfix-2.6.5

ちーと古いけど、pkg依存なので、こんな感じで。

作業ログ

1)pkgからpostfixをインストール

pkg_addの際、postfixの実行ユーザーやグループの作成の有無、mailer(smtpサーバー)の変更をするか
聞かれるので、必要に応じてy/nで回答する。
今回はsendmail→postfixへの入れ替えをするので、両方ともyesとした。
SASL関連の環境は今回はセットアップしないので省略。

※2013/09/01更新:パッケージのURLが変わっていたので、記述内容を変更しました。

localhost# setenv PACKAGEROOT http://ftp-archive.freebsd.org/
localhost# setenv PACKAGESITE http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/i386/packages-7.3-release/Latest/
localhost# pkg_add -r postfix
Fetching http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/i386/packages-7.3-release/Latest/postfix.tbz... Done.
Added group "postfix".
Added group "maildrop".
Added user "postfix".
You need user "postfix" added to group "mail".
Would you like me to add it [y]? y			←yes
Done.
mtree: line 43: unknown user man
pkg_add: mtree returned a non-zero status - continuing
Would you like to activate Postfix in /etc/mail/mailer.conf [n]? y	←yes

To enable postfix startup script please add postfix_enable="YES" in
your rc.conf

If you not need sendmail anymore, please add in your rc.conf:

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

And you can disable some sendmail specific daily maintenance routines in your
/etc/periodic.conf file:

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

If /etc/periodic.conf does not exist please create it and add those values.

If you are using SASL, you need to make sure that postfix has access to read
the sasldb file.  This is accomplished by adding postfix to group mail and
making the /usr/local/etc/sasldb* file(s) readable by group mail (this should
be the default for new installs).

If you are upgrading from postfix version prior to 2.0, please see the README
files for recommended changes to your configuration.

# 

2)sendmail→postfix切り替え

postfixインストール時の説明にあった
rc.conf、periodic.confへ必要事項を編集。
rc.confは既存のファイルを編集、periodic.confはなかった場合は新規で作成・編集する。

1./etc/rc.confへ追記

10a11,15
> postfix_enable="YES"
> sendmail_enable="NO"
> sendmail_submit_enable="NO"
> sendmail_outbound_enable="NO"
> sendmail_msp_queue_enable="NO"

2./etc/periodic.conf作成、編集

# pwd
/etc
# touch periodic.conf
# vi periodic.conf
  • 設定内容
    daily_clean_hoststat_enable="NO"
    daily_status_mail_rejects_enable="NO"
    daily_status_include_submit_mailq="NO"
    daily_submit_queuerun="NO"

3./etc/mail/mailer.conf を確認

インストール時、"Would you like to activate Postfix in /etc/mail/mailer.conf [n]?"の質問で
"y"とした場合、/etc/mail/mailer.confの内容がsendmailのものからpostfixのものへ書き換わるので
変更されていることを確認する。

  • sendmailの場合(変更前)
    sendmail        /usr/libexec/sendmail/sendmail
    send-mail       /usr/libexec/sendmail/sendmail
    mailq             /usr/libexec/sendmail/sendmail
    newaliases     /usr/libexec/sendmail/sendmail
    hoststat        /usr/libexec/sendmail/sendmail
    purgestat       /usr/libexec/sendmail/sendmail
  • postfixへスイッチした場合
    sendmail        /usr/local/sbin/sendmail
    send-mail       /usr/local/sbin/sendmail
    mailq             /usr/local/sbin/sendmail
    newaliases     /usr/local/sbin/sendmail

3)postfix初期設定

# vi /usr/local/etc/postfix/main.cf

設定内容については省略。これであとは切り替えを行うのみ。

4)sendmail停止

# killall sendmail

5)postfix起動

# /usr/local/etc/rc.d/postfix start

maillog、psコマンドなどで正常に起動したことを確認したら、smtpの動作確認や
自動起動の設定などを必要に応じて実施。
死にかけサーバーだったけど、どうにか再構築(ただし手作業w)間に合いましたw

 - FreeBSD, postfix