FreeBSD に OpenSMTPD 6.0.2 をインストールしてみたのでメモ。
環境
方針
- OpenSMTPD 6.0.2 が出てから 2 ヶ月以上経ってるのに、
- FreeBSD ports の mail/opensmtpd は 5.9.2p1 のまま。
- 仕方がないので Portable version を自分でビルドする。
- ports/mail/opensmtpd を参考に。
OpenSMTPD インストール
-
libevent 2.0.22_1, libressl 2.4.3, libasr 1.0.2 をインストール
% sudo pkg install libevent2 libressl libasr
- libasr は OpenSMTPD の asynchronous resolver library
-
opensmtpd 6.0.2 をインストール
% fetch --no-verify-peer https://www.opensmtpd.org/archives/opensmtpd-6.0.2p1.tar.gz % tar xzf opensmtpd-6.0.2p1.tar.gz % cd opensmtpd-6.0.2p1 % ./configure --with-libasr=/usr/local --with-libssl=/usr/local --sysconfdir=/usr/local/etc/mail --mandir=/usr/local/man | & tee configure.log % make |& tee make.log % sudo make install |& tee make-install.log
- ports/mail/opensmtpd と同じディレクトリ構造にするために
--sysconfdir
と--mandir
を指定 -
configure
出力の末尾OpenSMTPD has been configured with the following options: User binaries: /usr/local/bin System binaries: /usr/local/sbin Configuration files: /usr/local/etc/mail mail.local program: /usr/local/libexec/opensmtpd/mail.local encrypt program: /usr/local/libexec/opensmtpd/encrypt Manual pages: /usr/local/man/manX smtpd.sock dir: /var/run Privilege separation chroot path: /var/empty Manpage format: doc Package libexecdir: ${exec_prefix}/libexec/opensmtpd PAM support: no BSD Auth support: no
- ports/mail/opensmtpd と同じディレクトリ構造にするために
-
ユーザーを追加
% sudo pw useradd _smtpd -c "SMTP Daemon" -d /var/empty -s /sbin/nologin % sudo pw useradd _smtpq -c "SMTPD Queue" -d /var/empty -s /sbin/nologin
-
mailwrapper 設定を変更
- mail/opensmtpd/files/pkg-install.in と同様に /etc/mail/mailer.conf の内容を以下で上書き
sendmail /usr/local/sbin/smtpctl send-mail /usr/local/sbin/smtpctl mailq /usr/local/sbin/smtpctl makemap /usr/local/libexec/opensmtpd/makemap newaliases /usr/local/libexec/opensmtpd/makemap
-
sendmail を無効に
-
停止
% sudo service sendmail stop
man rc.sendmail
に従って /etc/rc.conf に以下を追加
sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO"
-
-
起動
-
ports の rc スクリプトを利用
% sudo mkdir /usr/local/etc/rc.d % sudo sh -c "sed 's/%%PREFIX%%/\/usr\/local/g' /usr/ports/mail/opensmtpd/files/smtpd.in > /usr/local/etc/rc.d/smtpd" % sudo chmod +x /usr/local/etc/rc.d/smtpd
-
%%PREFIX%%
を/usr/local
に置換
-
-
起動
% sudo service smtpd start
-
FreeBSD 起動時に自動起動
-
/etc/rc.conf に以下を追加
smtpd_enable="YES"
-
-