< サイダー | メイン | 庭田山頂公園、謎のストーンヘンジ >
2006年11月11日
MacPorts で cyrus-sasl2 をインストールしても、 saslauthd で PAM 認証が使えねーっス。 (9/28分参照)
なんでかなーと思ってたのだけど、configure 時に libpam の検出に失敗してるらしい。 つーことで、build する前に saslauthd.h と Makefile を編集して強制的に有効化すると 使えるようになるようだ。
sudo port configure cyrus-sasl2 cd /opt/local/var/db/dports cd sources/rsync.rsync.darwinports.org_dpupdate_dports cd security/cyrus-sasl2 cd work/cyrus-sasl-2.1.21/saslauthd
sudo vi saslauthd.h 91行目 /* #undef HAVE_PAM */ ↓ #define HAVE_PAM 1
sudo vi Makefile 70行目 LIBS = -lresolv -lresolv ↓ LIBS = -lresolv -lpam
ビルドしなおして、今入ってるヤツをアンインストールしてから再インストール。
sudo port build cyrus-sasl2 sudo port -f uninstall cyrus-sasl2 sudo port install cyrus-sasl2
で、このようにしてインストールした Cyrus SASL で何がやりたいかってーと Postfix からリンクして、PAM 経由で OS ユーザを使って SMTP AUTH を 利用したいわけです。
あと必要な作業は以下のとおり。
1. OS ユーザを作成、/etc/master.passwd にシャドウパスワードが記載された状態にする。
2. /opt/local/lib/sasl2/smtpd.conf を作る。
sudo vi /opt/local/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd mech_list: plain login
3. /etc/pam.d の下に、設定ファイル smtp を作る。
sudo vi /etc/pam.d/smtp
auth sufficient pam_securityserver.so auth sufficient pam_unix.so auth required pam_deny.so account required pam_permit.so
4. Postfix に SMTP AUTH 用設定をする。
MacPorts で Postfix をインストールするときに、sasl を使えるように指定しておくこと。 Portfile を編集して Cyrus を使えるようにすることも忘れずに。
参照: 9/19分の日記
sudo vi /opt/local/etc/postfix/main.cf
2行追加
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
リレー制限解除条件に SASL 認証を加える
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated, ←これ
permit_auth_destination, reject
5. saslauthd を起動する。
sudo /opt/local/sbin/saslauthd -a pam
実際動くことを確認したら、postfix の起動スクリプトに saslauthd を起動するよう追加する。
cd /opt/local/etc/LaunchDaemons/org.macports.postfix
sudo vi postfix.wrapper
Start()
{
/opt/local/sbin/saslauthd -a pam ←追加
/opt/local/sbin/postfix start
}
Stop()
{
/opt/local/sbin/postfix stop
kill `cat /opt/local/var/state/saslauthd/saslauthd.pid` ←追加
}
以上。
2007/03/13 追記: naoya さんからの情報により誤りを訂正。
トラックバック
このエントリーのトラックバックURL:
https://gema.luna2.org/cgi-bin/mt/mt-tb.cgi/43
コメント
最近は、Mail のお仕事をほとんどやっていません。
ですから、このあたりの設定について疎くなってしまっております。(汗)
いかんですなぁ。
SMTP AUTH は実際に使われている例も多いんでしょうか。
企業では出先からメールを使いたいという要望も多いでしょうから、SMTP AUTH、メールの暗号化といった部分はクライアントの実装状況に合わせて、勉強する必要がありそうですね。
加えてスパム対策をどうサーバサイドで実現するかもソリューションの方法を検討する必要ありと感じております。
SMTP AUTH はやっぱり必要ですかねぇ。
Outlook Express 前提だと、平文認証しかできないから
SMTP over SSL も必須になっちゃうけど。
SPAM 対策ということで言えば、レピュテーションが気になりますね。
いわゆる RBL の発展系だけど、白か黒かの判定ではなく、
IP アドレスごとに数値化された「評判」を元に判定するらしいです。
フリーの MTA で実装されてる例を見たこと無いんですが、
コンテンツフィルタアプライアンスでは今大流行の機能のようです。
貴重な情報ありがとうございます。
僕もこの件ではまっていました。
若干修正していただきたいところがあります。
udo vi saslauthd.h
91行目
/* #undef HAS_PAM */
↓
#define HAS_PAM 1
この部分ですが、僕の環境では HAS_PAM ではなく、HAVE_PAM でした。
また、1/opt/local/lib/sasl2/smtpd.conf を作成する必要があります。
次の一行で問題ありませんでした。
pwcheck_method: saslauthd
この件、本家も対応してもらいたいですね。
ご指摘ありがとうございます。修正しました。
> HAVE_PAM の件
まったくそのとおりでした。
> smtpd.conf の件
手元でも作成していたものの、記載を忘れていました(汗)。