smtp-auth


spam対策で自由に使えるSMTPサーバが消滅した。
そこでpop-before-smtpに挑戦するも失敗した。
pop-before-smtpはそう難しい仕組みではないので自分で(Perlで)作ってしまおうかとも考えた。
しかしよりセキュリティを高めるという点ではSMTP-AUT
が好ましいわけで、大いに面倒だったのだがこれをインストールする事にした。
何故面倒かというとSASL対応にpostfixを再コンパイルする必要があったからなのだが、現状使用しているバージョンではうまく行かず、結局バージョンダウンしてインストールしたというエレガントさに欠けるものになってしまったのだ。
バージョンの古い版?ならportsから入れるのが簡単なので、cd /usr/ports/mail/postfix
make WITH_SASL2=yes WITH_TLS=yes WITH_BDB=yes WITH_BDB_VER=42 install clea
でコンパイルした。
sysinstall画面みたいなのが立ち上がるが、そのままOKで良い。
更に途中で2つ質問されるが"y"と返答する。
これでpostfixがインストールされるのだが、ソースを持ってきてコンパイルする場合はconfファイルが/etc/postfi
になるのに対し、ports版では/usr/local/etc/postfixになるので注意が必要だ。
saslauthdもportsから入れる。
cd /usr/ports/security/cyrus-sasl2-saslauthd
make WITH_BDB=yes WITH_BDB_VER=42 install clea
次に設定ファイルを作る。
(たしかインストール時には無いはず)/usr/local/lib/sasl2/smtpd.con
に、pwcheck_method auxprop
mech_list login plain digest-md5 cram-md5 の2行を書き込む。
/usr/local/etc/rc.d/saslauthd star
とタイプすればsaslauthdが起動する。
パスワード作成は、echo "パスワード" | saslpasswd2 -p -u メールサーバのホスト名 -c ユーザ名とすれば生成可能だ。
たしかunixのpasswordファイルでの認証も出来る筈だが、shadowpasswordファイルはユーザ生成の度に更新される関係で、リンクを作っておいても切れてしまうのではなかったかな。
sasldblistusers2 と、タイプすると設定されたユーザのリストが見られる。
その後ユーザを変更chown cyrus mail /usr/local/etc/sasldb2 これで完了だ。
動作に関しては/var/log/maillogを見るのがよいだろう。
おまけMailbox形式にした場合、/usr/share/skelの中にMaildirという名前のディレクトリを作り700にパーミッションを設定しておくと新規ユーザ作成時に自動的にMaildirがユーザディレクトリに作られる。

mkdir /usr/share/skel/Maildir

chmod 700 /usr/share/skel/Maildir