Top過去ログ目次掲示板

作成日:2007年04月24日 作成:おやじ
掲示板で過去に質問された内容です。

No.6915 Maia Mailguard 1.0.2にて


No.6915 投稿時間:2007年04月24日(Tue) 15:19 投稿者名:keele URL:
タイトル:Maia Mailguard 1.0.2にて

初めましてkeeleと申します。
おやじさまのサイトを参考にさせていただいて
VirtualDomain対応のPostfix、Courier-IMAPを導入し
PostfixAdminにてメールアドレスの追加、SMTP-Authの確認などはすませてあります。(authdaemon)
Maia Mailguard 1.0.2をhttp://www.aconus.com/~oyaji/centos/maia_centos4.4.htm
を参考に(Vine4.1ですが)インストールさせました。
スーパー管理者を登録した後、PostfixAdminで登録したユーザにて
ログインを試みると、
1) 普通にログインできて、日本語状態である
2) ログインできるが英語になっていて設定で変更後問題なし
3) 英語のログイン画面に切り替えるとログインでき、設定変更後は日本語で問題なし
4) 全くログインできない
の4種類のユーザがいます。(現在36ユーザ、1ユーザ、1ユーザ、1ユーザの4ドメイン)
既存のメールサーバと置き換えの予定で、現在MXレコードは登録されていません。

何かしら手がかりはありますでしょうか?
宜しくお願いいたします。


No.6917 投稿時間:2007年04月25日(Wed) 17:35 投稿者名:keele URL:
タイトル:Re: Maia Mailguard 1.0.2にて

今日も色々触ってみたのですが、Maia Mailguardにログインできないユーザはpopアクセスもできないようです。
但し、PostfixAdminではログインできます。
また正常にログインできPOPもできるユーザのパスワードと同一に設定
するとMaiaもPopもOKになります。
User1:Pass1 -> OK
User2:Pass2 -> NG
の場合
User2:Pass1 => OK


No.6922 投稿時間:2007年04月25日(Wed) 20:55 投稿者名:おやじ URL:
タイトル:両方まとめてですが・・・。

両方まとめてですが・・・。

> スーパー管理者を登録した後、PostfixAdminで登録したユーザにて
> ログインを試みると、
> 1) 普通にログインできて、日本語状態である
> 2) ログインできるが英語になっていて設定で変更後問題なし
> 3) 英語のログイン画面に切り替えるとログインでき、設定変更後は日本語で問題なし
> 4) 全くログインできない
> の4種類のユーザがいます。(現在36ユーザ、1ユーザ、1ユーザ、1ユーザの4ドメイン)
> 既存のメールサーバと置き換えの予定で、現在MXレコードは登録されていません。

全て、同じパソコンで操作してませんか?
ロジックを追っかけてはいませんので、はっきりしたことは言えませんが、全くの新規なら2のはずです。3は良くわかりません。1は一度ログインしているとこうなったと思います。

> 今日も色々触ってみたのですが、Maia Mailguardにログインできないユーザはpopアクセスもできないようです。

maiaはpopでログインできることを持ってログイン許可をしているので、これは当然ですね。

> 但し、PostfixAdminではログインできます。
> また正常にログインできPOPもできるユーザのパスワードと同一に設定
> するとMaiaもPopもOKになります。
> User1:Pass1 -> OK
> User2:Pass2 -> NG
> の場合
> User2:Pass1 => OK

これは、過去に一度だけおやじも経験がありますが、maiaの問題ではなくPostfixAdminでパスワードを再設定することでログインできるようになっただけです。
一見、パスワードがクロスで有効になっているような書き方をされていますが、そうではなくUse2を改めてPass2で設定すれば直るはずです。当然Pass1ではログインできなくなります。


No.6925 投稿時間:2007年04月26日(Thu) 01:00 投稿者名:keele URL:
タイトル:Re: 両方まとめてですが・・・。

レス有り難うございます。

> 全て、同じパソコンで操作してませんか?
> ロジックを追っかけてはいませんので、はっきりしたことは言えませんが、全くの新規なら2のはずです。3は良くわかりません。1は一度ログインしているとこうなったと思います。

確かにすべて同じPCで操作しています。正確な数字は覚えていないのですが、全部で39アカウント登録しようとして、
1) 3程度 2) 5程度 3) 1 4) 残り30程度 と言う比率です。
ただ、ご指摘の通り2)でもMySQLのデータはenになっていました。

> これは、過去に一度だけおやじも経験がありますが、maiaの問題ではなくPostfixAdminでパスワードを再設定することでログインできるようになっただけです。
> 一見、パスワードがクロスで有効になっているような書き方をされていますが、そうではなくUse2を改めてPass2で設定すれば直るはずです。当然Pass1ではログインできなくなります。

User2にPass2を再設定は試みているんです。
PostfixAdminにて何回かUser2にPass1とPass2を再設定し、
MaiaとPostfixAdmin一般ユーザログインを試すも
Pass2に設定したときだけダメだったんです。

幸か不幸か、ログインできるユーザも出来ないユーザも沢山あるので
明日色々試してみます。

# Maia Mailguardの問題でなくて、PostfixAdminの問題かな? (^^ゞ
# 意外と、apacheかmysqlの設定だったり。


No.6930 投稿時間:2007年04月26日(Thu) 16:50 投稿者名:keele URL:
タイトル:Re^2: 両方まとめてですが・・・。

登録時に正しい(?)パスワードが格納されていないようなので
(何故かPostfixAdminでは認証される)
関係ないとは思いつつ、mbstring周りを触っていました。
何回もパスワードを変更しているとたまにpopやmaiaで通るようになるんです。
これはcrypt周りかな?と思いソースを追ってみると
functions.inc.php 622行目付近のpacrypt()で
------------------------------
if ($CONF['encrypt'] == 'md5crypt')
{
$split_salt = preg_split ('/\$/', $pw_db);
if (isset ($split_salt[2])) $salt = $split_salt[2];

$password = md5crypt ($pw, $salt);
}
------------------------------
------------------------------
if ($CONF['encrypt'] == 'md5crypt')
{
// $split_salt = preg_split ('/\$/', $pw_db);
// if (isset ($split_salt[2])) $salt = $split_salt[2];
$password = crypt ($pw);
// $password = md5crypt ($pw, $salt);
}
------------------------------
と大胆に変更してみました。(^^ゞ >>確かcryptは第二を取らないとmd5cryptのはずなので
すると何事もなかったように正常(?)に動き出したのですが・・・
おやじさまの環境では問題ないとなると環境依存なのでしょうか。
apacheもphpもmailもなにもエラー吐いて居なかったんですよね。

この対応でセキュリティ上問題ないのでしょうか?
pacrypt()で呼び出している自前のmd5crypt()は難解すぎて読めません。


No.6931 投稿時間:2007年04月26日(Thu) 16:52 投稿者名:keele URL:
タイトル:改めPostfixAdminについて

上の投稿はPostfixAdminの話です。(読み直して自分で分からなかった)

#別の質問もあるのですが、別スレッド起こします。


No.6934 投稿時間:2007年04月26日(Thu) 17:48 投稿者名:keele URL:
タイトル:Re: 改めPostfixAdminについて

$password = crypt ($pw);
ではなくて
$password = crypt ($pw, $pw_db);
でないとPostfixAdminにログインできませんね。(^^ゞ


No.6935 投稿時間:2007年04月27日(Fri) 21:23 投稿者名:おやじ URL:
タイトル:CRAM-MD5で使うときの設定ミスではないですか?

> 登録時に正しい(?)パスワードが格納されていないようなので
> (何故かPostfixAdminでは認証される)
> 関係ないとは思いつつ、mbstring周りを触っていました。
> 何回もパスワードを変更しているとたまにpopやmaiaで通るようになるんです。
> これはcrypt周りかな?と思いソースを追ってみると
> functions.inc.php 622行目付近のpacrypt()で
> ------------------------------
> if ($CONF['encrypt'] == 'md5crypt')
> {
> $split_salt = preg_split ('/\$/', $pw_db);
> if (isset ($split_salt[2])) $salt = $split_salt[2];
>
> $password = md5crypt ($pw, $salt);
> }
> ------------------------------
> ------------------------------
> if ($CONF['encrypt'] == 'md5crypt')
> {
> // $split_salt = preg_split ('/\$/', $pw_db);
> // if (isset ($split_salt[2])) $salt = $split_salt[2];
> $password = crypt ($pw);
> // $password = md5crypt ($pw, $salt);
> }
> ------------------------------
> と大胆に変更してみました。(^^ゞ >>確かcryptは第二を取らないとmd5cryptのはずなので
> すると何事もなかったように正常(?)に動き出したのですが・・・

これは逆に環境依存なのです。
単にCRAM-MD5で使うときの設定ミスではないですか? 
courier-imapのほうのレスを見てください。

> おやじさまの環境では問題ないとなると環境依存なのでしょうか。
> apacheもphpもmailもなにもエラー吐いて居なかったんですよね。

クライアント側でcram-md5を使わなければ何も問題ありません。


No.6940 投稿時間:2007年04月28日(Sat) 16:56 投稿者名:keele URL:
タイトル:さっぱり分からなくなってきました。

> これは逆に環境依存なのです。

環境依存と申し上げたのは「私の」環境が変なのかな?と言う意味です。(^^ゞ

pacrypt()を元に戻し色々試したところ、当初
PostfixAdminのconfig.inc.phpで
$CONF['encrypt'] = 'md5crypt';
maia mailguardのconfig.phpで
$auth_sql_password_type = "crypt";
に設定されていたのを

$CONF['encrypt'] = 'system'; (PostfixAdmin)
$auth_sql_password_type = "crypt"; (Maia Mailguard)
に変更すると新規作成ユーザでログインできて、popもできました。
しかし何故かPostfixAdminのログインができません。

それなら逆に
$CONF['encrypt'] = 'md5crypt'; (PostfixAdmin)
$auth_sql_password_type = "md5"; (Maia Mailguard)
でいけるのかな?と思ったのですが、新規作成ユーザでダメでした。

error_reporting(E_ALL);噛ましてやってみたのですが、
さっぱり両方とも吐かないんです。

#メールでのご対応ありがとうございました。


No.6941 投稿時間:2007年04月28日(Sat) 17:05 投稿者名:keele URL:
タイトル:BugTrackerに

PostfixAdminのBugTrackerに
http://sourceforge.net/tracker/index.php?func=detail&aid=1694669&group_id=191583&atid=937964
こんな報告が上がっていました。
真偽の程は私には分からないのですが、この改変をすれば
> $CONF['encrypt'] = 'system'; (PostfixAdmin)
> $auth_sql_password_type = "crypt"; (Maia Mailguard)
で問題ないようです。


No.6949 投稿時間:2007年05月02日(Wed) 00:32 投稿者名:mojamoja URL:
タイトル:Re: BugTrackerに

PostfixAdmin の CRYPT まわりですが、私も同じようなトラブルを抱えていました。config.inc.php で、

$CONF['encrypt'] = 'md5crypt';

に設定して、アクセスは出来るのですが、パスワードを変更した途端にアクセスできなくなります。
php.ini の設定も眺めてはみたものの、他に変な影響が出るのもイヤだったので、

$CONF['encrypt'] = 'system';

に修正して、全ソース(〜.php)から、password が関係するテーブル、mailbox や admin にSELECT、INSERT、UPDATE しているところのソース、仮に create-mailbox.php の 133行目、

$password = pacrypt($fPassword);

をコメントし、次行

$result = db_query ("INSERT INTO mailbox (username,password,name,maildir,quota,domain,created,modified,active) VALUES ('$fUsername','$password','$fName','$maildir','$quota','$fDomain',NOW(),NOW(),'$fActive')");

の '$password' を、ENCRYPT('$fPassword') に変更、

// $password = pacrypt($fPassword);
$result = db_query ("INSERT INTO mailbox (username,password,name,maildir,quota,domain,created,modified,active) VALUES ('$fUsername',ENCRYPT('$fPassword'),'$fName','$maildir','$quota','$fDomain',NOW(),NOW(),'$fActive')");


したところ、問題なくアクセスできるようになりました。パスワードの変更後ログアウト、ログインしなおしも問題ありませんでした。
まったく根拠が無い私の勝手な思い込みですが、php側のCRYPT暗号化と、MySQL側のCRYPT暗号化のアルゴリズムの違いなのかいな?と今は無事何事もなかったかのように過ごしています。



掲示板▲頁先頭