Linux Install Memo

サーバー管理者によるLinux関連ソフトのインストールメモ

Home » □saslauthdと古い(短い)shadow

□saslauthdと古い(短い)shadow

古いshadowは、暗号化されている文字列が最近のより短い。

たいていは問題ないのだが、サーバーのシステム一新でsaslauthd(sasl2)とか使おうとすると、せっかくデータを新しいサーバーにrsyncしてめでたしめでたしと思っていたら、いざ移行して運用しようとすると、testsaslauthdとかでテストをしても

size read failed

とか言われて、ログにも

mail kernel: saslauthd[3421]: segfault at…

とかでて悲しくなっちゃいます。原因はshadowの暗号化文字列が短いからみたいで、ココで例えば誰かのパスワードを改めてpasswdで打ち直したりして長い文字列にすると、testsaslauthdでもさっくりと

0: OK “Success.”

とかになってくれる。

ユーザーが少ないとか全部のパスワードを覚えているとか、とにかく管理者として好きに出来る場合はいいけれど、そうではない場合も少なからずあるわけで、ユーザーにパスワードの再設定を促してもしてくれる可能性もあんまりなく、というわけで古いフォーマットと新しいフォーマットを混在して使いたいということになる。

そんな場合に便利なのがPAM認証

ネット上ではsaslauthdの説明でPAM認証のことがあまり触れられていない(ldapは多いね)ので、一応ココにメモしておきます。

/etc/sysconfig/saslauthdは

> MECH=pam
> #MECH=shadow

としてpamのままでOK。

あとは/etc/pam.d/の下にimap(testsaslauthd用)とsmtp(本番用、ちなみにsubmissionというのは要らない)というファイルを用意して、

#%PAM-1.0
auth       required     pam_nologin.so
auth       include      system-auth
account    include      system-auth
session    include      system-auth

こんな感じで書いておけばOK。(dovecotのをそのままコピーした)

これであとはsaslauthdとpostfixをrestartすれば、

/usr/sbin/testsaslauthd -u ユーザー名 -p パスワード

perl -MMIME::Base64 -e ‘print encode_base64(“username\0username\0password”);’

でのsmtpプロトコル直接叩く方法で動作確認すればOK。

※VineLinux 5.2、Postfix、dovecot、saslauthd、dracdの組み合わせで構築。

Name of author

Name: admin

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です