よく考えてみたところメールサーバって立てたことありません。
お家の apt-get update apt-get upgrade をひたすら繰り返すのみのマシンに。 ちなみに postfix はインストール済みで、普通にメール送信は行える状態というところから。
正直サーバ管理者でないためひとつひとつのライブラリを追っていられないので、 ググってみながらとりあえず動作まで。細かいことは後で調べます(いつ?
まずはインストールします。
apt-get install postfix-tls apt-get install sasl2-bin apt-get install libsasl2-modules
アカウントの管理は UNIX のアカウント管理とは統一しないやり方として あちこちに乗っていた sasldb2 を利用した認証方式でやってみます。
実際に認証させるために、設定を記述していきます。
smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, permit_auth_destination smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes
sasldb2 を利用する上で基本的なコマンド一覧として追加・削除・一覧表示があります。
saslpasswd2 -c -u domain username
saslpasswd2 -d -u domain username
sasldblistusers2
domain には smtpd_sasl_local_domain で指定したドメイン名を入れ、 ユーザを追加します。
所有グループを postfix に変更します。
chgrp postfix /etc/sasldb2
どうやら Debian の postfix はデフォルトで chroot されるため /etc/sasldb2 を見ずに /var/spool/postfix/etc/sasldb2 を見るようです。 ハードリンクできればいいのですが、幸か不幸か /var と / でパーティションを区切っていたためハードリンクできませんでした。 ということでシンボリックリンクします。ただし chroot 側からは参照できません。こちらを参考にさせてもらいました。 なるほど、元を移動させるってのには気づきませんでした。
mv /etc/sasldb2 /var/spool/postfix/etc/sasldb2 ln -s /var/spool/postfix/etc/sasldb2 /etc/sasldb2
postfix を再起動します。
/etc/init.d/postfix restart
ひとまずこれで smtp 認証まで行えました。
ちなみに通信は平文なのでセキュリティの強度を上げるには、暗号化として smtps を用いるようになると思います。
証明書なしでよければ
smtpd_sasl_security_options = noanonymous, noplaintext
平文を拒否するように修正します。
#smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
上記コメントを外し、 smtp の行をコメントアウトし再起動します。
うーん、きちんと説明できない箇所がところどころあります。あと色々試しているので何か抜けていたりするかもしれません・・・