トップページunix
1001コメント309KB

Postfix(6)

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/09/20(水) 02:04:10
Postfixスレッド その6です。

●リンク
 本家
 http://www.postfix.org/

 Postfix のぺーじ (ドキュメントの日本語訳、MLなど)
 http://www.kobitosan.net/postfix/

過去スレ、関連スレなどは>>2-4あたり
0269名無しさん@お腹いっぱい。2006/12/22(金) 21:35:14
greylistingが解決したところで本題w

さて>>253氏は>>254でtelnetした際の応答を出しただけで
LDAPなマップをmain.cfでどのように指定しているのか、とか
エラーが発生したときにどのようなログが吐かれたのか、などの
肝心な情報をさっぱり示さないのはどうしてだろう?
02702532006/12/22(金) 22:15:12
>>269
LDAPはpam経由、つまり普通のUNIXユーザ認証で使っています。 main.cfには何も書いていません。

エラーログは大学に行かないと取れないので、明日出します。
0271名無しさん@お腹いっぱい。2006/12/22(金) 22:48:24
>>270
それなら正直postfixと無関係だろ。
alias_maps=ldap:/foo/bar ならpostfixの話題になるだろうけど。
0272名無しさん@お腹いっぱい。2006/12/22(金) 23:20:51
エエエエー驚愕の事実判明>>270
02732532006/12/22(金) 23:47:53
>>271-272
もしかして、postfixのスレで尋ねるにはナンセンスな質問でしたかね?

pamの設定かなぁ〜?

authconfigが自動的に作ったpamの設定を見ると、こんな設定がありますね。
これを変更してみようか。

/etc/pam.d/system-auth
account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_ldap.so

とりあえず明日試してみます。
0274名無しさん@お腹いっぱい。2006/12/23(土) 00:17:53
なんだか面白い展開になってきたな。

俺的にはそれなりに参考になると思うので差し支えなければ
成功/鯖落/LAN断線それぞれの場合のログを見せてほしいな。

LDAPのヘルスチェックはLDAP鯖の方でやって
自動でプロセス再起動した方がいいんじゃないか?
落ちていたらメール以外でも支障が出そうだ。
0275名無しさん@お腹いっぱい。2006/12/23(土) 00:46:54
シェルから id hoge とか実行してどういう応答が返ってくるか見てみると
いいんじゃないかと。あと、postmap -q hoge unix:passwd.byname とか。
0276名無しさん@お腹いっぱい。2006/12/23(土) 10:40:00
id hoge || service LDAP restart
ってな感じか?異常終了してるならlockファイルの掃除など必要そうだが
02772532006/12/23(土) 21:34:46
>>273
>authconfigが自動的に作ったpamの設定を見ると、こんな設定がありますね。
>これを変更してみようか。

どうもLDAPの場合はpamは実質参照してないようです。/etc/pam.d/system-auth
からLDAPの行を消してもLDAPのユーザが見えます(?_?)

こちらにそのような記載があります。
http://www.linux.or.jp/JF/JFdocs/LDAP-Implementation-HOWTO/pamnss.html#AEN239
02782532006/12/23(土) 21:36:26
>>269
>>274
※正常に動作しているときのlog

postfix/smtpd[25126]: connect from 送信元ホスト名[送信元IP]
postfix/smtpd[25126]: D03EA558062: client=送信元ホスト名[送信元IP]
postfix/smtpd[25126]: disconnect from client=送信元ホスト名[送信元IP]

※LDAP daemonが落ちているとき。
LDAP daemonが落ちてからの経過時間により挙動が違う。

- LDAP daemonが落ちた直後にtelnetで叩いた時。
LDAPサーバへの再コネクトで約1分待ち、そして550を返す。送信元からの再送
は期待できない。

postfix/smtpd[25133]: connect from 送信元ホスト名[送信元IP]
postfix/proxymap[25127]: nss_ldap: reconnecting to LDAP server...
postfix/proxymap[25127]: nss_ldap: reconnecting to LDAP server...
postfix/proxymap[25127]: nss_ldap: reconnecting to LDAP server (sleeping 4 seconds)...
postfix/proxymap[25127]: nss_ldap: reconnecting to LDAP server (sleeping 8 seconds)...
postfix/proxymap[25127]: nss_ldap: reconnecting to LDAP server (sleeping 16 seconds)...
postfix/proxymap[25127]: nss_ldap: reconnecting to LDAP server (sleeping 32 seconds)...
postfix/proxymap[25127]: nss_ldap: could not hard reconnect to LDAP server - Can't contact LDAP server
postfix/smtpd[25133]: NOQUEUE: reject: RCPT 送信元ホスト名[送信元IP]: 550 (折曲げ)
<受信者メアド>: Recipient address rejected: User unknown in local recipient table; (折曲げ)
from=<送信者メアド> to=<受信者メアド> proto=SMTP helo=<送信元ドメイン>
postfix/smtpd[25133]: disconnect from 送信元ホスト名[送信元IP]
(続く)
02792532006/12/23(土) 21:37:37
- LDAP daemonが落ちて2-3分経過後の場合。
即時550を返す。送信元からの再送は期待できない。

postfix/smtpd[25133]: connect 送信元ホスト名[送信元IP]
postfix/smtpd[25133]: NOQUEUE: reject: RCPT from 送信元ホスト名[送信元IP]: 550 (折曲げ)
<受信者メアド>: Recipient address rejected: User unknown in local recipient table; (折曲げ)
from=<送信者メアド> to=<受信者メアド> proto=SMTP helo=<送信元ドメイン>
postfix/smtpd[25133]: disconnect from 送信元ホスト名[送信元IP]

※LDAP サーバからケーブル抜いた時

LDAPサーバへの再コネクトで約18分待ち、そして550を返す。多くの場合、送
信元のMTAがタイムアウトしていると思われるため、送信元からの再送が期待
出来る。

postfix/smtpd[25204]: connect from 送信元ホスト名[送信元IP]
postfix/proxymap[25205]: nss_ldap: reconnecting to LDAP server...
postfix/proxymap[25205]: nss_ldap: reconnecting to LDAP server...
postfix/proxymap[25205]: nss_ldap: reconnecting to LDAP server (sleeping 4 seconds)...
postfix/proxymap[25205]: nss_ldap: reconnecting to LDAP server (sleeping 8 seconds)...
postfix/proxymap[25205]: nss_ldap: reconnecting to LDAP server (sleeping 16 seconds)...
postfix/proxymap[25205]: nss_ldap: reconnecting to LDAP server (sleeping 32 seconds)...
postfix/proxymap[25205]: nss_ldap: could not hard reconnect to LDAP server - Timed out
postfix/smtpd[25204]: NOQUEUE: reject: RCPT 送信元ホスト名[送信元IP]: 550 (折曲げ)
<受信者メアド>: Recipient address rejected: User unknown in local recipient table; (折曲げ)
from=<送信者メアド> to=<受信者メアド> proto=SMTP helo=<送信元ドメイン>
postfix/smtpd[25204]: disconnect from 送信元ホスト名[送信元IP]
02802532006/12/23(土) 21:42:34
>>275-276
そのあたりが良さそうですね。LDAPの再起動についてなんですが、先日LDAPの
デーモンが落ちた時の原因はLDAPのデータベースが壊れたためでした。そのた
め無条件に再起動は少々問題があります。古いデータベースのrestoreが必要
なため、postfixを停止する方向で考えています。
(続く)
02812532006/12/23(土) 21:44:49
idコマンドを使ったテストを試してみました。

※正常に動作しているときの

% time id LDAP-USER || /etc/rc.d/init.d/postfix stop
約0.026秒でid コマンドが正常終了する。postfixは停止しない。

※LDAP daemonが落ちているとき。
% time id LDAP-USER || /etc/rc.d/init.d/postfix stop
約0.008秒でid コマンドが異常終了する。postfixが停止する。

※LDAP サーバからケーブル抜いた時
% time id LDAP-USER || /etc/rc.d/init.d/postfix stop
約2分でid コマンドが異常終了する。postfixが停止する。

※とりあえず出来る対策

1. LDAPサーバを2重体制にする。
2. IDコマンドを使ったテストをcrontabに仕込む
メールのロストを少なくするためには可能な限り短い間隔でテストする。しか
しLDAPのタイムアウトに時間かかるので、二重起動しない対策。本テストで
postfixが落ちた事を検出し通知する手を考える。

という所でしょうか。ホントだったらpostfixが検出してくれて自動的にエラー
コードを550から450に切り替えてくれたらいいんですけどね。
0282名無しさん@お腹いっぱい。2006/12/24(日) 01:11:42
ちょwwwwおまえらwwwwwwwwwwwww

nss経由でLDAP叩いてるくせに、postfixに難癖つけますか、そうですか。
そんなもん、postfixが判断できるわけねぇだろ。

このばかちん!
0283名無しさん@お腹いっぱい。2006/12/24(日) 01:37:14
PAMとNSSは別。idやPostfixのローカル配送はNSSの方。
02842532006/12/24(日) 02:06:23
>>282
まぁ、そうだな。ソース読むと、UNIX認証の場合はgetpw* 経由で読んでいる。こいつの
返値しか見てない。

LDAPのヘルスチェックは無理。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/getpwent.3.html

というかpostfixでLDAPを直接参照する方法がよくわからない。にょろーん。
バーチャルドメインの設定例は良くあるけどね。
0285名無しさん@お腹いっぱい。2006/12/24(日) 02:24:09
>>282
いや、だから>>271の時点でばっさり切り捨てているでそ。
それ以後、まともな人はもう相手してない。
0286名無しさん@お腹いっぱい。2006/12/24(日) 08:45:34
253と284が見えない
0287名無しさん@お腹いっぱい。2006/12/24(日) 12:28:26

             -‐ '´ ̄ ̄`ヽ、
             / /" `ヽ ヽ  \
         //, '/     ヽハ  、 ヽ
         〃 {_{       リ| l.│ i|  に
         レ!小lノ    `ヽ 从 |、i|  ょ
          ヽ|l ●   ●  | .|ノ│  ろ
            |ヘ⊃ 、_,、_,⊂⊃j  | , |.  l
          | /⌒l,、 __, イァト |/ |  ん
.          | /  /::|三/:://  ヽ |
          | |  l ヾ∨:::/ ヒ::::彡, |
0288名無しさん@お腹いっぱい。2006/12/24(日) 15:41:54
>>284
一体何のためにソース読んでる? おまいの目はフシアナですか?
スグ隣に、dict_ldap.c/hがあるだろ!!
0289名無しさん@お腹いっぱい。2006/12/25(月) 10:37:15
>>268
できたっぽいです。
ありがとうございます。
0290名無しさん@お腹いっぱい。2006/12/25(月) 14:16:11
postfix-2.2.10使っています。

ヘビーユーザーがいるのですが、ヘビーユーザーのメール管理者から
「短時間に大量のメールを送るのはやめて下さい」
といわれてます。だいたい数万通のメールを飛ばしているらしいです。
#トラップを飛ばしている

該当ユーザに、そんなに大量のメールを送る設定はやめなさい、という以外に、
何かのオプションで流量制限、もしくは遅延させることができないでしょうか?
0291名無しさん@お腹いっぱい。2006/12/25(月) 14:40:49
>>290
spam業者は即刻アカウント削除
02922902006/12/25(月) 14:55:31
spam業者ではないです、一応…
あれもこれも必要なメールらしいですし
#どちらかというとDoSかも
0293名無しさん@お腹いっぱい。2006/12/25(月) 15:11:53
そいつは s p a m 業者だ!疑いの余地無し!人類の敵を抹殺せよ!
0294名無しさん@お腹いっぱい。2006/12/25(月) 16:21:27
>ヘビーユーザーのメール管理者から
>「短時間に大量のメールを送るのはやめて下さい」
>といわれてます。

じゃあ 290 は一体何者なんだという疑惑
0295名無しさん@お腹いっぱい。2006/12/25(月) 16:37:58
質問です。
qmgrデーモンがキューからピックアップする際にmaillogに吐く
nrcpt=
の数字は、localやsmtp,virtualなんかに送るメールの数という認識でよいでしょうか?

この辺のステータスについて解説されている資料などありましたらご教授頂けると幸いです。
宜しくお願いいたします。
02962902006/12/25(月) 17:04:16
日本語が変でした

漏れ: サービス系メールサーバの管理者の1人
メール管理者: OA系メールサーバの管理者

サービス系のメールサーバは基本的に送信専用です。普段ログインしない。
OA系のメールサーバのメールは普段読む。
よって、サービス系の中で起こった事は、メールを飛ばして、
サービス系メールサーバ → OA系メールサーバ→ヘビーユーザのクライアント
と流れます。
OA系メールサーバが非力なのか、落ちてしまうようです。
そこで、ヘビーユーザがメールしかける場所を減らす様努力中ですけど、
その他、サービス系メールサーバで絞れないかと。
0297名無しさん@お腹いっぱい。2006/12/25(月) 17:12:49
spam業者乙
0298名無しさん@お腹いっぱい。2006/12/25(月) 17:25:51
>>296
数万通というのが時間当たりの単位なのか判りませんが
一般ユーザからすると通常ありえない運用の仕方ですよね。
言われてるように、そのユーザ自身がスパム業者かBOTネットの一員になってるとしか思えないのですが。。。

トラップが飛ぶような仕組みになっているなら、下記資料を参考に
動的にルールセットを切り替える仕組みを作ればいいのではないかと思います。
ttp://www.kobitosan.net/postfix/archives/faq-jp-20010228pl02.html#relay_restrict

>>297
そういった非生産的な発言は控えて頂きたい
0299名無しさん@お腹いっぱい。2006/12/25(月) 17:27:03
spam業者を支援する人もspam業者です。
0300名無しさん@お腹いっぱい。2006/12/25(月) 17:28:02
290がノイローゼになったあげくにサーバを破壊して自殺するのがベストの解決
0301名無しさん@お腹いっぱい。2006/12/25(月) 17:53:27
メールでsnmpのトラップでも飛ばしてるんでしょ?
そりゃ数万通ぐらい平気で飛ぶわな。
サービス系メールサーバで異常時だけOA系メールサーバへメールを
飛ばすようなプログラムを仕込んでおくのがいいと思うよ。
0302名無しさん@お腹いっぱい。2006/12/25(月) 18:04:06
>>299 >>300
何なんだお前ら
さっさと死ね
お前らの発言はspam並みに役経たず&不快だ
0303名無しさん@お腹いっぱい。2006/12/25(月) 18:20:27
煽りに乗ったら負け。
0304名無しさん@お腹いっぱい。2006/12/25(月) 18:32:05
しかしうさん臭い
03052902006/12/25(月) 21:41:52
携帯ユーザにはすまん。

>>all
ありがとん

>>298
拝見しますた。
ヘビーユーザが100%意味の無いメールをとばしてるかって言うとそうとも思えないのねん。
#ポインタを理解できていなかったらすまんです。
動的にルールセットを作り替えられるんだったらベストなんだが
・考えてるの
送信元サーバが一緒(サービス系メールサーバは各サーバのメールを集約して転送する仕組み)で、
単位時間内に複数メール投げるんだったら、2通目以降は、linux-users ML等のように、まとめ送りする
その単位時間内にヘビーユーザが状況を知りたければ、まとめ送りのメールの内容を取得できるようにする

他のMTAでここまで実装してこれなかったが故に、
単位時間あたりの流量制限
という話になってるのねん。#QMAILではできてたらしいが

>>301
おっしゃるとおりで。そりゃ飛ぶだろう、って感じ。
平常時からしてメールとばしすぎだろう、って思ってるんだが、
その、メールとばしすぎてOA系メールサーバ落としますた事件の際は異常時で、
読めなくなるほどメールが飛んだらしい。#漏れ、その時別部署だったからしらん
というわけで、異常時であっても、OA系メールサーバを落とすようなメールを送るな、
という話になったらしい。#あほらし

メールに頼ってくれるな、事実上のDoSをしかけてくれるな、異常時くらい勘弁してくれ、
っていうのはあるんだが、前科のあるさーびすなんで、保険をかけざるを得ないんだが…

antifloodかspamassassinで運用、ってのも考えたが、それはそのヘビーユーザの有用なメール
(障害検知のお知らせ)をあぼーんするだけなんで、あきらめた。
0306名無しさん@お腹いっぱい。2006/12/25(月) 22:05:31
postfixで流量制限というとpolicydというのがあるが
03072902006/12/25(月) 22:31:39
>>306
さんくす。明日早速調べてみる。
mySQLかPostgre SQL必須らしいし、使った事無いから厳しいけど。
#DBつかうっていうと、Oracle信者の妨害が入る可能性もあり
0308名無しさん@お腹いっぱい。2006/12/25(月) 22:38:58
policydはgreylistingとかもできて、かなり面白いですな。
0309名無しさん@お腹いっぱい。2006/12/26(火) 00:38:53
>>305
とりあえず、
もうちょっと制限したいメールを挙動を詳しく。

Senderが単一/多数
Recipientが単一/多数

Recipientが単一なら、とりあえず、OA系サーバが捌ける程度に smtp_concurrency_limit を絞ってやれば済む。
次の仕事は、自分管理のサービス系サーバのメイルキューがパンクしないか監視すること。

外部配送全体に影響出るのが嫌なら、別名transportを利用する。
0310名無しさん@お腹いっぱい。2006/12/26(火) 01:31:21
>>305
一分一秒を争うサービスでなければ、数分ごとにメールをまとめて送るような
メーリングリスト仕掛けりゃいいんでないの?
0311名無しさん@お腹いっぱい。2006/12/26(火) 11:20:54
何だか知らんが、spam 業者は百万回死ね。苦しんで死ね。
善意の第三者を装うあたりが卑怯すぎるので一億回死ね。
0312名無しさん@お腹いっぱい。2006/12/26(火) 16:20:37
>>305
snmpのトラップのかけ方がクソすぎる、どうにかしろ、サービス停止にするぞ!
って恫喝して終わらせれば? 個別対応せずに、有無を言わさず切ってしまえ。
0313名無しさん@お腹いっぱい。2006/12/28(木) 12:39:09
postfix2.1使ってます。

バーチャルドメイン環境で使用していますが、
main.cf で virtual_mailbox_domains に設定した値が
DNSより優先されてしまいます。
例えば、誤ってvirtual_mailbox_domains に example.jp を設定すると、
DNSを参照する前に、example.jp が自身のサーバーであると判断してしまいます。

実際にメールを example.jp 宛に送信すると、
127.0.0.1に送信し、user unkown みたいなエラーが返ってきます。

DNSを強制的に先に参照させる方法はないでしょうか。

ttp://tmtm.org/postfix/tutorial/virtual.html
このサイトの「バーチャルドメインの注意」の一つ目が
私が言ってる内容と同じかと思います。

誰かお助けを・・・
0314名無しさん@お腹いっぱい。2006/12/28(木) 14:35:06
>>313
ばーか
0315名無しさん@お腹いっぱい。2006/12/28(木) 14:51:03
>>313
最終的に何がしたいのか言ってくれないと何とも・・・

>DNSを強制的に先に参照させる方法はないでしょうか。

ない。
0316名無しさん@お腹いっぱい。2006/12/28(木) 15:08:56
>>313
パッチ書けば?
0317名無しさん@お腹いっぱい。2006/12/30(土) 15:37:36
>>313
人の鯖のドメインを自分の鯖でバーチャルドメインにしたいってのが理解できない
SPAM?
0318名無しさん@お腹いっぱい。2006/12/31(日) 21:40:07
>>313
「誤って設定する」のがそもそもの間違いでは
0319 【大吉】 【137円】 2007/01/01(月) 10:46:55
自宅のサーバから送信する際に25ポート以外を使いたいのです。
0320名無しさん@お腹いっぱい。2007/01/01(月) 10:50:01
普通使ってるんじゃないか?
0321名無しさん@お腹いっぱい。2007/01/02(火) 01:25:21
qmail(vpopmail) から postfix(postfixadmin)への移行を考えています。

postfixadmin では、自ホストのローカルユーザーへの配送と、バーチャルホストへの
配送を別に行なう事はできますか?

それとも、ローカルユーザーであっても、バーチャルホスト上で管理しなければ
ならないでしょうか?

例えば、自ホストが example.jp で、ローカルユーザーに user1 がいたとします。
このホストでは、virtualhost1.jp virtualhost2.jp をバーチャル管理したいとします。

この時、user1@example.jp は、user1 のローカルユーザーのメールボックスに配送したく、
それ以外の virtualhost1.jp, virtualhost2.jp あてのユーザー postfixadmin の
管理下に配送したい。

このような設定は、postfix の main.cf で、なんとかなるのでしょうか?
0322名無しさん@お腹いっぱい。2007/01/02(火) 02:25:49
>>321
まず、この2つのページ読んで、postfixのシステムを頭の中に入れる
http://www.kobitosan.net/postfix/jhtml/receiving.html
http://www.kobitosan.net/postfix/jhtml/delivering.html

ローカル配送(local transport)は、localというプログラムが担当する。

これは、『Postfix の構造 - メールの配送』の図にあるとおり。
バーチャルドメインの場合には、図中に記述が無いが、同様に、

バーチャルドメイン配送(virtual transport)は、virtualというプログラムが担当する。

つまり、ローカル配送とバーチャルドメイン配送とは、全くの別配送処理となる。
ここまで、postfixadminは関係なし。

次に、postfixadminで管理可能なのは、バーチャルドメイン配送の設定のみ。
ローカル配送の管理はできません。
つまり、postfixadminで管理したい対象ドメインは、全てバーチャルドメインとする必要がある。

以上、何も知らない人の質問に合わせて書くのは面倒、かつ、無意味なので、
事実のみ列挙したよ〜ん。
0323名無しさん@お腹いっぱい。2007/01/08(月) 05:50:42
postfixのSMTP認証にCourier-IMAP/POP3dなどで使う
userdbを活用する方法って無いでしょうか?

ご存知でしたら誘導でも良いので教えてください。
お願いします。
0324名無しさん@お腹いっぱい。2007/01/08(月) 10:20:54
pwcheck_method: authdeamond
とか?
03253232007/01/08(月) 20:01:24
>>324
助かりました!ありがとうございます
0326名無しさん@お腹いっぱい。2007/01/09(火) 12:06:23
Debian Etch の postfix 2.3.4 なのですが、

postfix/trivial-rewrite: warning: valid_ipv4_hostaddr: invalid octet count:

というログがはきだされますが、これが何を意味しているか調べてみたけど
よくわかりませんでした。

アドバイスを頂けるとうれしいです。よろしくお願いします。
03273252007/01/10(水) 06:36:29
Debian3.1(sarge)、Postfix2.1.5です。

PostfixでCourierのauthdaemonを利用するという部分でハマってしまっています。
ちなみにですが、sasl2を利用したSMTP認証は今までもやっていましたし、普通に
できていました。

で、ここを参考に同じようにやってみたんですが上手くいきません。
ttp://espion.just-size.jp/archives/06/146170147.html

ログには
postfix/smtpd[976]: fatal: no SASL authentication mechanisms
と出ており、どうもauthdaemondにアクセスできていないようです。

/var/run/courier/authdaemon 以下は所有者がdaemon、パーミッションが770と
なっているので/etc/group のdaemonグループにpostfixを追加してみたりもしました
がダメでした。

もしかしたらPAMとかそっち方面なのでしょうか?
それともてんでピント外れでしょうか?

助言をいただけると助かります。
よろしくお願いします。
03283272007/01/10(水) 06:50:43
> ちなみにですが、sasl2を利用したSMTP認証は

すいません、意味不明でした。
sasldbを利用したSMTP認証は今までもやっていました、という事です。
0329名無しさん@お腹いっぱい。2007/01/10(水) 08:44:55
postfixをどうやってインスコしたのか書かないと分かるわけないだろ。
main.cfも書いてないしな。
こういう質問の仕方をするからエスパー募集って言われるんだよ。
0330名無しさん@お腹いっぱい。2007/01/10(水) 12:02:37
>>327
そこ間違ってるし
0331名無しさん@お腹いっぱい。2007/01/10(水) 12:23:18
めでたしめでたし
0332名無しさん@お腹いっぱい。2007/01/11(木) 00:07:08
postfix単体でリレーのラウンドロビンって出来るんでしたっけ?
0333名無しさん@お腹いっぱい。2007/01/11(木) 01:03:07
MXで複数書いておけばいいんじゃないのか?
0334名無しさん@お腹いっぱい。2007/01/11(木) 01:13:25
リレーって書いてるんだから違うんじゃない?
0335名無しさん@お腹いっぱい。2007/01/11(木) 01:20:14
postfix単体でって書いてるんだから違うんじゃない?
03363272007/01/11(木) 04:47:15
すみません、>>328氏の突っ込みの通り自分がアホでした。
その後、やり直したり、いじったりして少し状況が変わったので改めて状況説明
させてください。

Debian3.1で以下のものをaptからバイナリインストールしました。
postfix, postfix-tls (バージョン 2.1.5
courier-pop, courier-authdaemon, courier-base (バージョン 0.47


### /etc/postfix/main.cf ###
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
myhostname = host.domain.tld ※もちろん実際は違います
mydomain = domain.tld ※実際は違います
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $myhostname
mydestination = $myhostname, $mydomain, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8
inet_interfaces = all
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
03373362007/01/11(木) 04:48:06
続きです。


### /etc/postfix/sasl/smtpd.conf ###
pwcheck_method: authdaemond
authdaemond_path: /var/run/courier/authdaemon/socket
mech_list: plain login


その他、master.cf での smtps行のコメントを外し、authdaemonrc の認証モ
ジュールは authmodulelist="authpam authuserdb"としています。
/var/run/courier/authdaemon 以下が所有者daemonでパーミッションが770だっ
たので、postfixユーザをdaemonグループに入れています。

POP3は問題なく認証できていますがSMTP認証ができません。
ログには postfix/smtpd[1114]: fatal: no SASL authentication mechanisms と
出ています。

度々で申し訳ありませんが、よろしくお願いします。
0338名無しさん@お腹いっぱい。2007/01/11(木) 04:51:49
>>336-337 だけみると sasldb がどこにもないけど
0339名無しさん@お腹いっぱい。2007/01/11(木) 04:55:01
めでたしめでたし
03403362007/01/11(木) 06:02:57
えぇ!? あれ?今までsasldbを使ってSMTP認証をしていたんですが、courierの
authdaemonからauthpamとauthuserdbを使えばsasldbを使う必用は無くなるんだと
思ってるんですが・・。

ものすごく間違ってるって事でしょうか?
0341名無しさん@お腹いっぱい。2007/01/11(木) 06:56:02
ttp://espion.just-size.jp/archives/06/146170147.html
postfix は全然エラーを教えてくれない
sasl/smtpd.conf の設定はハマリ所
例えば mech_list に cram-md5 を入れると、
pwcheck_method が勝手に auxprop になる
virtual_mailbox_* に指定したファイルの
パーミッションに問題があった場合は
エラーログ(/var/log/mail.log とか)を見ないとわからない
0342名無しさん@お腹いっぱい。2007/01/11(木) 08:02:03
>>341

>エラーログ(/var/log/mail.log とか)を見ないとわからない

俺的にはログ吐いてるなら充分エラーを教えてくれていると思う
一部設定項目は実際に使うまでエラーが出ないというのには同意だが
設定いじった後は試験&ログ監視するもんだろ
0343名無しさん@お腹いっぱい。2007/01/11(木) 08:19:23
sasldb使わずにCourierのauthdaemon使うメリットって何?
03443402007/01/11(木) 08:49:10
>>343
virtual mail box使ってる関係で、今まではSMTP認証用のユーザ登録を
sasldbに、pop3認証用のユーザ登録をcourierのuserdbに行っていました。

SMTP認証でもauthdaemonを通してuserdbを使えるなら2箇所に登録を行う
手間もsasldbも省けるなぁと。
0345名無しさん@お腹いっぱい。2007/01/11(木) 08:54:46
そういうときは dovecot でいいんじゃね?
0346名無しさん@お腹いっぱい。2007/01/11(木) 09:06:42
どヴぇことってpostfix2.3以降じゃないとダメだったような毛がする
0347名無しさん@お腹いっぱい。2007/01/11(木) 09:11:49
俺もそう思ったが2.1.5じゃ使えないんじゃね?
0348名無しさん@お腹いっぱい。2007/01/11(木) 19:53:31
.qmail の拡張アドレスと同じように .forward にて、
直接 Maildir 内に配送する事はできないでしょうか?

例えば
.qmail-test に
./Maildir/.test/
と書いておくと、example-test@ に送信した場合、
test ディレクトリ内に配送されます。

これを、.forward+test で実現する方法がわかりません。
同じように書いてみましたが、メールアドレスとして展開
されてしまうようです。

直接 Maildir 内に配送する方法があれば教えてください。
(拡張アドレスで簡易振り分けみたいな事がしたいのです)

よろしくお願いします。
03493482007/01/11(木) 20:07:59
すみません、>>348 ですが、./Maildir のように相対パスじゃなくて、
/home/example/Maildir のように絶対パスで書いたら配送されました…。

ごみんなさい。
0350名無しさん@お腹いっぱい。2007/01/11(木) 21:00:24
>>349
./Maildir
じゃなくて
~/Maildir/
にすればよかったかと
03513362007/01/12(金) 07:04:11
いい加減ウザイかもしれませんが・・すみません。

その後、追加でaptからsasl2-bin libsasl2-modulesを追加しましたら少し
状況が変わり、ログには

postfix/smtpd[2084]: warning: SASL authentication failure: cannot connect to Courier authdaemond: No such file or directory

と出ました。
DebianのPostfixはchrootで動作しているハズなので、その関係で
/var/run/courier/authdaemon/socket を見つけられないのかと思い、
/etc/postfix/var/run/courier/authdaemon/socket としてハードリンクして
Postfixを再起動してみたんですが状況は変わりませんでした。

あと少しっぽいので何とかお知恵を貸していただけないでしょうか。
0352名無しさん@お腹いっぱい。2007/01/12(金) 08:58:52
がんがれ
0353名無しさん@お腹いっぱい。2007/01/12(金) 10:27:02
>>351 master.cf で、smtpd に -v を付けてみたら少しは詳しい出力が得られる鴨。
0354名無しさん@お腹いっぱい。2007/01/12(金) 13:01:25
sasldbはpostfixを動かしてるユーザが読み書きないといけないから
sasldbのowner,group変更とか?
0355名無しさん@お腹いっぱい。2007/01/12(金) 13:48:48
自分で試してみようという意欲のある質問者は好感持てるな。
03563512007/01/13(土) 06:27:51
助言ありがとうございます。

試してみましたが今の所状況に大きな変化は無しです。
Postfixのバージョンを上げてDovecotへの乗り換えも視野に
入れつつ引き続きがんばってみます。
0357名無しさん@お腹いっぱい。2007/01/13(土) 08:23:35
Debian etchにすればPostfix 2.3になるから、Dovecot認証使えるしなぁ。
courier-authdaemon認証は
ttp://espion.just-size.jp/archives/06/146170147.html によると
・認証は全て生パスワード、APOP や CRAM-MD5 は使わない
*Postfix の SMTP 認証のアカウント情報に courier で使ってるアカウントの
情報と共有したい場合は CRAM-MD5 は使えない仕様
・postfix は全然エラーを教えてくれない
* sasl/smtpd.conf の設定はハマリ所
例えば mech_list に cram-md5 を入れると、pwcheck_method が勝手に
auxprop になる
* virtual_mailbox_* に指定したファイルのパーミッションに問題があった
場合はエラーログ(/var/log/mail.log とか)を見ないとわからない
とのこと。
03583562007/01/14(日) 20:54:50
その後、自分なりに色々と試してみましたが、自分のスキルでは解決でき
ませんでしたので、Postfixのバージョンを上げてDovecotとの組み合わせ
に乗り換える事にしました。

アドバイスをくださった方、ありがとうございました。

また、お騒がせした事をお詫びします。
0359名無しさん@お腹いっぱい。2007/01/15(月) 03:08:43
mailfilter と procmail を使って別アドレスへの転送を
試みてるのですが、
ループに困ってます。

例えば、
test@example.jp -> test2@example.jp -> test@example.jp
とすると、ループしてしまいます。
上のような場合、
test@example.jp には2回、test2@exapmle.jp には1回同メールが
届くようにするうまい方法はないでしょうか?

ヘッダーに通過したメールアドレスを追記してフラグを立てる方法を
思いつきましたが、
これだと、さらに別のところにメールソフトなどから
転送した場合に、うまく転送処理が機能しなくなってしまうんですよね・・・
0360名無しさん@お腹いっぱい。2007/01/15(月) 11:51:45
エンベロープ中にtest2@example.jpがあったら転送止めれば良いんじゃない?
0361名無しさん@お腹いっぱい。2007/01/15(月) 13:40:34
>>359ループする設定をしているんだから、ループして当然だと思うけどなぁ。そのシステム限定であれば、>>360の言うように個別対応って感じで良いと思う。ユーザへの汎用設定としてなら難しいですね。# postfixネタだろうか?
03623612007/01/15(月) 13:41:15
w3mで書いたら改行入らなかった。スマソ・・・
0363名無しさん@お腹いっぱい。2007/01/15(月) 15:50:53
maillog に
postfix/qmgr[19000]: (メッセージID): from=<>, size=18350, nrcpt=1 (queue active)
みたいな感じでログが残っているのですが、
fromが空欄なため、送信ユーザを特定できません。

これを特定する方法はないでしょうか。
postfix2.1です。
0364名無しさん@お腹いっぱい。2007/01/15(月) 16:01:27
エスパー募集者登場
0365名無しさん@お腹いっぱい。2007/01/15(月) 16:04:11
>>363
メッセージIDから引けば送ってきたIPはわかるぞ。
あとはそのIPの管理者にでも聞いてください。
0366名無しさん@お腹いっぱい。2007/01/15(月) 16:05:49
漏れ分かるよ!

えーっと・・・

書かなくても特定できる誰か、とか?(汗)
管理者に聞いてみる、とか?(汗)
0367名無しさん@お腹いっぱい。2007/01/15(月) 16:12:51
>>363
> fromが空欄なため、送信ユーザを特定できません。
空じゃなくても詐称かもしんないじゃん。
03683632007/01/15(月) 16:15:33
そもそもfromを空欄にさせない方法はないのでしょうか。

>>365
localhostですね、
自メールサーバ内からの送信しか許可していないので。
エスパー呼ばれるってことは、
的が完全にずれているかと思いますが、
SASLにてSMTP Auth を設定してます。
(main.cf にてsmtpd_sasl_auth_enable = yes)

ここで認証させることで、許可したユーザのみしかアクセスできなくなるのは
いいとして、
それがログに残らない(残せるけど残す方法が分からない?)
というのがきついのですが、
ヒントだけでもおながいします。
■ このスレッドは過去ログ倉庫に格納されています