sedmail を qmail に変更
参考URL
http://www.fkimura.com/qmail0.html
まずは、patch をお好みでダウンロード。
qmail-date-localtime.patch と qmailqueue-patch は、ports を使ってインストールする際に指定可能であり
qmail-large-dns.patch は、ports を使ってインストールする際には、デフォルトで反映済み。
よって特別な理由が無ければ、qmail-smtpd-relay-reject のみダウンロードが一般的?
mkdir /tmp/qmail cd /tmp/qmail fetch http://www.qmail.org/qmail-smtpd-relay-reject
で、patch を反映して、インストールを行う。
cd /usr/ports/mail/qmail make patch cd work/qmail-1.03/ patch -p1 < /tmp/qmail/qmail-smtpd-relay-reject cd ../.. make && make install && make clean
make patch を実行すると、patch 選択画面が表示されるので、qmail-date-localtime.patch と qmailqueue-patch を反映させる場合は、QMAILQUEUE_PATCH と LOCALTIME_PATCH を選択する。
/var/qmail/control 配下のファイルを作成する。
/var/qmail/configure/config-fast example.jp
make disable-sendmail と make enable-qmail は使えなくなったので、かわりに下記を実行する。
/var/qmail/scripts/enable-qmail
一応、/etc/rc.conf や /etc/mail/mailer.conf の中を確認しておく事。
/usr/local/etc/rc.d/qmail.sh が作成されており、/var/qmail/rc へのシンボリック・リンクとなっている事を確認し
/var/qmail/boot/maildir を /var/qmail/rc にコピーする。
cp /var/qmail/boot/maildir /var/qmail/rc
make buildkernel 時に、sendmail がコンパイルされないように、make.conf を修正。
echo 'NO_SENDMAIL=true' >> /etc/make.conf
起動時に、qmail が起動するように、rc.conf を修正。
echo 'qmail_enable="YES"' >> /etc/rc.conf
/etc/rc.d/sendmail forcestop /usr/local/etc/rc.d/qmail.sh start
rc.conf の設定が正しいか確認を行う為、reboot も行ってみる事。
これから新規に作成するユーザが、Maildir を使うよう修正する。
/var/qmail/bin/maildirmake /usr/share/skel/Maildir echo './Maildir/' > /usr/share/skel/dot.qmail chmod 600 /usr/share/skel/dot.qmail
login.conf を修正。
> diff /etc/login.conf.org /etc/login.conf 29c29 < :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:? --- > :setenv=MAIL=/home/$/Maildir/,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:?
既存ユーザが、Maildir を利用する場合、下記を各ユーザに su して実行。
/var/qmail/bin/maildirmake ~/Maildir echo ./Maildir/ > ~/.qmail chmod 600 ~/.qmail
ports の qmail-contrib を導入すると、fastforward が使えるようになるので、便利。
cd /usr/ports/mail/qmail-contrib make && make install && make clean rm /var/qmail/alias/.qmail-mailer-daemon /var/qmail/alias/.qmail-postmaster /var/qmail/alias/.qmail-root echo '| /var/qmail/bin/fastforward -p -d /etc/aliases.cdb' > /var/qmail/alias/.qmail-default
これで、root 宛のメールを全て、cooldaemon@gmail.com に転送する為には・・・下記の通り。
echo 'root: cooldaemon@gmail.com' >> /etc/mail/aliases newaliases
newaliases で /etc/aliases.cdb が生成される。
daemontools で管理する場合
daemontools をインストール。
cd /usr/ports/sysutils/daemontools/ make && make install && make clean
service 用のデリレクトリを作成。
mkdir /var/service
/etc/rc.conf の qmail_enable="YES" を svscan_enable="YES" に書き換え、qmail を停止して svscan を起動。
/usr/local/etc/rc.d/qmail.sh stop /usr/local/etc/rc.d/svscan.sh start
mkdir /var/qmail/service mkdir /var/qmail/service/qmail mkdir /var/qmail/service/qmail/log
起動スクリプトを作成。
> cat /var/qmail/service/qmail/run #!/bin/sh exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start ./Maildir/
> cat /var/qmail/service/qmail/log/run #!/bin/sh exec /usr/local/bin/setuidgid qmails \ /usr/local/bin/multilog t ./main
諸々設定。
chown -R qmails:qmail /var/qmail/service/qmail/log chmod +t /var/qmail/service/qmail chmod +x /var/qmail/service/qmail/run chmod +x /var/qmail/service/qmail/log/run
qmail を daemontools の管理下に置く。
ln -s /var/qmail/service/qmail /var/service/qmail
smtpd も起動してみる
sedmail を qmail に変更すると言う観点では不要だが、仕事で使ったのでメモしておく。
pop3d は、気が向いたら、このエントリに追加するかも・・・今の所、予定なし。
tcpserver をインストールする。
cd /usr/ports/sysutils/ucspi-tcp/ make && make install && make clean
tcpserver が使う、アクセスデータベースを作成。
> cat /etc/tcp.smtp 192.168.XXX.:allow,RELAYCLIENT="" 127.:allow,RELAYCLIENT="" :allow
IPアドレスは適宜変更する事。
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
後は、先ほどと同じように・・・
mkdir /var/qmail/service/smtpd mkdir /var/qmail/service/smtpd/log
> cat /var/qmail/service/smtpd/run #!/bin/sh PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin tcpserver -v -R -H -u 82 -g 81 -x /etc/tcp.smtp.cdb \ 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
> cat /var/qmail/service/smtpd/log/run #!/bin/sh exec /usr/local/bin/setuidgid qmails \ /usr/local/bin/multilog t ./main
chown -R qmails:qmail /var/qmail/service/smtpd/log chmod +t /var/qmail/service/smtpd chmod +x /var/qmail/service/smtpd/run chmod +x /var/qmail/service/smtpd/log/run
ln -s /var/qmail/service/smtpd /var/service/smtpd
/var/qmail/service/smtpd/run 内の tcpserver の引数は・・・
-v | 全てのメッセージを出力 |
-R | ident プロトコルによる接続元ホスト情報を取得しない |
-H | 接続元ホスト名を調べない |
-u | サーバを起動する UID を指定(qmaild の UID を指定) |
-g | サーバを起動する GID を指定(qmaild のグループ qnofiles の GID を指定) |
-x | アクセスデータベースを指定 |