SMTP-AUTH
前提とインストール
ここで前提しているのは postfix-2.0.19 + cyrus-sasl-2.1.18 で SMTP-AUTH を実現する方法です。ここではCRAM-MD5で認証を行いたいと思います。すでにPostfixをインストールする場合は再コンパイルする必要があります。例によってportsを使いますが、make するときに
[ ] SASL2 Cyrus SASLv2 (Simple Authentication and Security Layer)
にチェックを入れる必要があります。またその他のオプションも必要に応じて選択します。自動的に cyrus-sasl と cyrus-sasl-saslauthd をインストールしてくれます。
パスワードファイルの作製
認証で使用するユーザ名とパスワードが格納されたデータベースを作製します。
# saslpasswd2 -c -u FQDN ユーザー名
FQDN には postfix のmain.cf内に myhostname として設定したメイルサーバのFQDNを指定しなければなりません。
これを実行するとposrtsからインストールした場合、/usr/local/etc/sasldb2.db というファイルが作製されます。これがデータベース本体です。このファイルはpostfixが読めるように設定しておかなくてはなりませんので、/etc/group のmailグループにpostfixを実行しているユーザ(私の場合postfixユーザ)を追加して、/usr/local/etc/sasldb2.dbファイルがmailグループに対して読み込み権限があるように設定します。
# vi /etc/group
mail:*:6:postfix
# chmod 440 /usr/local/etc/sasldb2.db
ports からインストールした場合、/usr/local/lib/sasl2/smtpd.confというファイルがありますので、中身が以下のようになっているか確認します。
pwcheck_method: saslauthd
これでsaslauthdを起動する準備は整いました。/etc/rc.confなどにsaslauthd_enable="YES"を追加し、
# /usr/local/etc/rc.d/saslauthd.sh start
とデーモンを起動します。最近のFreeBSDの場合はsaslauthd.shを/etc/rc.d/saslauthdにコピーしてもよいでしょう。
最後にpostfixのmain.cfに以下の記述を追加します。
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
postfixを起動します。
