トップページ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あたり
0002名無しさん@お腹いっぱい。2006/09/20(水) 02:05:00
●前スレ
 Postfix(5)
 http://pc8.2ch.net/test/read.cgi/unix/1133344907/

●関連スレ
 sendmail
 http://pc5.2ch.net/test/read.cgi/unix/1094702772/

 qmailいろいろ(7)
 http://pc8.2ch.net/test/read.cgi/unix/1114157851/

 Exim
 http://pc8.2ch.net/test/read.cgi/unix/986398141/

 Courier-MTA
 http://pc8.2ch.net/test/read.cgi/unix/1119770156/

 Internet Mail System 総合スレ 3
 http://pc8.2ch.net/test/read.cgi/unix/1128256415/
0003名無しさん@お腹いっぱい。2006/09/20(水) 03:06:43
1乙
0004名無しさん@お腹いっぱい。2006/09/20(水) 07:14:03
>1 乙
0005名無しさん@お腹いっぱい。2006/09/20(水) 16:09:54
フィーナ姫は俺の嫁だ
0006名無しさん@お腹いっぱい。2006/09/20(水) 16:31:28
カレンは俺の嫁
0007名無しさん@お腹いっぱい。2006/09/20(水) 16:51:01
dict_openで正規表現が正しいかチェックしようとしたんだがうごかね。これどうやんの?
0008名無しさん@お腹いっぱい。2006/09/20(水) 17:01:24
>>7
どうやったの?
0009名無しさん@お腹いっぱい。2006/09/20(水) 17:11:48
./dict_open regexp:check_client_access read
127.0.0.1
usage: del key|get key|put key=value|first|next

0010名無しさん@お腹いっぱい。2006/09/20(水) 17:59:12
postmap -q を使うべきではないかと。

それはともかく麻衣は俺の嫁な。
0011名無しさん@お腹いっぱい。2006/09/20(水) 20:26:33
じゃぁミアは貰いますね
0012名無しさん@お腹いっぱい。2006/09/21(木) 07:13:56
なにこのスレ















リースは養女にもらいます
0013名無しさん@お腹いっぱい。2006/09/21(木) 11:35:07
これか・・・・・
http://august-soft.com/yoake/character.htm

とりあえずお約束で「きもっ」
0014名無しさん@お腹いっぱい。2006/09/21(木) 14:26:45
目が異様に大きくてきめぇ

・・・眼球肥大症?
0015名無しさん@お腹いっぱい。2006/09/21(木) 14:33:02
その辺でやめとけ。
0016名無しさん@お腹いっぱい。2006/09/23(土) 22:03:37
変な流れになっていますが、質問してもよいでしょうか?

alias_mapsのテーブルにPostgreSQLを使っているのですが、2.2.9から2.3.3へ移行したところ上手く動かなくなりました。
smtpd内のエイリアス処理がPostgreSQLのテーブルを引くところで失敗してしまい、Temporary lookup failureを吐いてメールが一切流れない状態になります。
ログにはwarning: dict_pgsql: cannot set the encoding to LATIN1, skipping localhost"と出ています。
調べてみるとサーバー側のデータベースのエンコーディングがLATIN1へ変更できないもの(この場合EUC_JP)だと動かないようです。

ソースとかpostfix-users MLとかを見ると、どうも問題を起こしている場所のコードはPostgreSQL側のSQLインジェクション対策を勘違いして入れた感じがしています。
http://archives.neohapsis.com/archives/postfix/2006-07/1530.html 参照)
ソースの該当箇所を削るとか、PostgreSQLのデータベースのエンコーディングをSQL_ASCIIに変えるとかの対策は思いつくのですが、どれも面倒な感じで途方に暮れています。
何か良い対策はないでしょうか?

設定ファイル
main.cf:
...
alias_maps = hash:/etc/mail/aliases pgsql:/usr/local/etc/postfix/pgsql-aliases.cf
...

pgsql-aliases.cf:
hosts = localhost
user = dbuser
password = passwd
dbname = database
query = SELECT mailaddress FROM userdb WHERE username = '%s' AND username IS NOT NULL AND mailaddress <> ''

PostgreSQLのテーブル(エンコーディングはEUC_JPを指定)
CREATE TABLE userdb (
 username TEXT,
 mailaddress TEXT
);
0017名無しさん@お腹いっぱい。2006/09/24(日) 10:05:45
dict_pgsql.c(postfix-2.4-20060903)

638 /*
639 * XXX Postfix does not send multi-byte characters. The following
640 * piece of code is an explicit statement of this fact, and the
641 * database server should not accept multi-byte information after
642 * this point.
643 */
644 if (PQsetClientEncoding(host->db, "LATIN1") != 0) {
645 msg_warn("dict_pgsql: cannot set the encoding to LATIN1, skipping %s",
646 host->hostname);
647 plpgsql_down_host(host);
648 return;
649 }

現状ではソース変更ぐらいしかPostfix側でできることはないと思われ。
0018名無しさん@お腹いっぱい。2006/09/24(日) 13:07:14
LATIN1とEUC_JPって
文字数同じだからバイナリ書き換えたら?
0019名無しさん@お腹いっぱい。2006/09/24(日) 14:20:37
>>16 でもバックエンドがEUC-JPでフロントエンドがLATIN1という設定も
可能なんじゃなかったっけ? なんで PQsetClientEncoding()そのものが
失敗するんだろう。
ttp://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/multibyte.html#AEN13623
0020名無しさん@お腹いっぱい。2006/09/24(日) 15:53:22
> 2.2.9から2.3.3へ移行したところ上手く動かなくなりました。
そもそも、何が理由で移行しようとしたの?
これってRHEL4を使っていて、RHの勝手なversion upに巻き込まれたわけ?
もしそうなら、RHに修正依頼を出せばいいんじゃないの。
そうすれば、そのテスト機で動くようになるだろうし、それから本番機を
version upすれば何も問題ないわけで。
0021名無しさん@お腹いっぱい。2006/09/24(日) 17:48:22
書き忘れていましたが、動かしているOSはFreeBSD 5.4, PostgreSQLは7.4.13を使っていて、Postfix, PostgreSQLともにportsを用いてインストールしています。

>>17
やっぱりそのくらいしか手がなさそうですね。

>>19
7.4のマニュアルを見ると同じような文面があるのですが、EUC_JPの場合でAutomatic Character Set Conversionが効くのはEUC_JP, SJIS, UNICODE, MULE_INTERNALのみとなっているので、LATIN1にできないのも仕方がないのかもしれません。
http://www.postgresql.org/docs/7.4/interactive/multibyte.html#AEN18389
自力でCREATE CONVERSIONすればちゃんと動くような気もしますが、さすがにそれだけの気力がありません。

>>20
本番機上でportsをコンパイルするのはまずいと思い、新たにpackage作成用のマシンを用意してそちらでコンパイルしたものを持ち込むことにしました。
が、最新のportsでコンパイルしたためPostfixのバージョンが上がってしまいました。
テスト機でpgsqlまわりでテストをするのを忘れたままPostfixをバージョンアップしてしまったために、今頃になって苦労する羽目に陥っています。

皆さんの意見を参考にがんばって修正してみます。
0022名無しさん@お腹いっぱい。2006/09/24(日) 18:33:12
アカウント入れてるデータベースを alter database で latin1 と上位互換な
文字セットに変えれば?
0023名無しさん@お腹いっぱい。2006/09/24(日) 20:26:03
爺-Worksに害虫汁
0024名無しさん@お腹いっぱい。2006/09/26(火) 09:34:50
遅まきながらテンプレ

初代 Postfix スレ ttp://makimo.to/2ch/pc_unix/994/994289303.html
Postfix(2) ttp://makimo.to/2ch/pc3_unix/1053/1053097579.html
Postfix(3) ttp://makimo.to/2ch/pc5_unix/1086/1086462636.html
Postfix(4) ttp://makimo.to/2ch/pc8_unix/1110/1110850215.html
Postfix(5) ttp://makimo.to/2ch/pc8_unix/1133/1133344907.html
0025名無しさん@お腹いっぱい。2006/09/27(水) 18:34:07
vmailbox内に

foo@example.com    example.com/foo/
hoge@example.com   example.com/foo/

と書けばhoge@example.comという宛先のメールもfooのメールボックス内にはいるのでしょうか?
0026名無しさん@お腹いっぱい。2006/09/27(水) 22:36:40
何をやろうとしてるのか書かずに、いったい何のことなんだか。

% postconf | fgrep vmailbox
%
0027名無しさん@お腹いっぱい。2006/09/27(水) 22:46:42
やりたいことはhoge@example.comをfoo@example.comのエイリアスにしたいのですが
0028名無しさん@お腹いっぱい。2006/09/27(水) 23:50:41
/etc/aliases に
hoge: foo
と書くか、virtual_alias_mapsのテーブルに
hoge@example.com foo@example.com
と書く。
0029名無しさん@お腹いっぱい。2006/09/29(金) 14:16:21
/etc/sasldb2って暗号化されないのですか?
0030名無しさん@お腹いっぱい。2006/09/29(金) 17:37:54
dbに依存するのかもしれないけど、
おいらの環境(BerkeleyDB4)ではされないお
だからパーミッションだけが、パスワードを守る術


そんなことより、久々に爺がmlで吠えてるね
まあ、あれは質問者に問題ありありだけど
0031名無しさん@お腹いっぱい。2006/09/29(金) 20:26:35
>>30
アーカイブ追ってるけどここんとこQA共に見苦しいのが続いてるね。
しかし爺氏はどうしてあんなに偉そうなんだろう、
ML参加しようかなと思う気持ちがああいうのを読む度に萎える
0032名無しさん@お腹いっぱい。2006/09/29(金) 20:41:11
ふだんの爺はうっとうしいだけだが、
今回に関していえばもっと叩いてもいいと思った。
0033名無しさん@お腹いっぱい。2006/09/29(金) 21:19:40
>>29
されません。
暗号化してもいいけど、そうすると復号するための鍵はどうするの?
0034名無しさん@お腹いっぱい。2006/09/30(土) 01:10:06
さらに弱いものを叩く〜
0035名無しさん@お腹いっぱい。2006/09/30(土) 10:27:15
そして誰もいなくなった…
0036名無しさん@お腹いっぱい。2006/10/02(月) 19:13:42
質問よろしいでしょうか。

コンテンツフィルタを使ってSpamAssassinでスパム判定を行い、
その後Postfixに差し戻して、Subjectに[SPAM]と付いたメールをスパム収集用のアドレスに
転送したいのですが、master.cfの該当箇所に

-o header_checks = regexp:/usr/local/etc/postfix/header_checks

のように付けるだけじゃだめなんでしょうか。
main.cfでheader_checksを有効にして、同じファイルを指定した場合には、
ちゃんと期待した動作になります。
0037名無しさん@お腹いっぱい。2006/10/02(月) 19:53:37
>>36
設定内容はおいといて、 master.cfでは '=' 両側の空白は不可
0038名無しさん@お腹いっぱい。2006/10/02(月) 20:11:03
>>37
あ、すみません。
書き込むときについクセで空白を入れてしまいましたが、
master.cfには空白は入れてないです。
0039名無しさん@お腹いっぱい。2006/10/02(月) 20:16:36
>master.cfの該当箇所に

該当箇所というのがどこなのかわからんが、たぶんそこが間違ってる。
smtpd は header_checks を見ないので、smtpd -o header_checks=... とやっても無意味。
0040名無しさん@お腹いっぱい。2006/10/02(月) 20:19:44
master.cfの該当箇所がどこかわからんが、
-o header_checksはcleanupのオプションだから、
コンテンツフィルタ通したあとのsmtpd(だよな?)には効かない。

って書こうと思ったらすでに回答が…
0041362006/10/02(月) 21:09:21
>>39-40
該当箇所などというあいまいな書き方ですみません。
まさにその、コンテンツフィルタ通した後のsmtpdです。
smtpdにheader_checksは無意味なんですね。

特にheader_checksにこだわってるわけではないので別の方法でもいいんですが、
コンテンツフィルタを通した後だけ、Subjectを見てそのまま配送するか、
収集アドレスにリダイレクトするかを振り分ける良い方法はありませんでしょうか。
0042名無しさん@お腹いっぱい。2006/10/02(月) 23:01:51
該当箇所 inet n - n - 10 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks
-o cleanup_service_name=cleanup2←これがミソ
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
cleanup2 unix n - n - 0 cleanup
-o header_checks=regexp:/usr/local/etc/postfix/header_checks
-o body_checks=

ちなみに、postfix 2.0 の時代の FILTER_README に似たような例が載ってたはず。
2.0 には receive_override_options がなかったから、フィルタの前後で
header/body_checks の値を変えるにはこうするしか方法がなかった。
0043362006/10/02(月) 23:18:00
>>42
ありがとうございます!
それでいってみようと思います。
Postfixってつくづく柔軟に出来てるんですね。
0044362006/10/03(火) 02:41:17
蛇足ながら、事後報告です。
>>42の方法で、目下期待通りに動作中です。
重ね重ねありがとうございました。
0045名無しさん@お腹いっぱい。2006/10/08(日) 05:30:25
バウンスメールの From が MAILER-DAEMON@localhost.localdomain
なのですがこれの設定はどこですればよいのでしょうか?

また Return-Path が空になっているのでこれも設定したいです。
わかる方おりましたら、よろしくお願いします。
0046名無しさん@お腹いっぱい。2006/10/08(日) 10:22:00
Return-Pathが空白なのには理由があると考えないのかねえ
0047名無しさん@お腹いっぱい。2006/10/08(日) 11:53:46
>>45
残念だが設定する方法はない
0048名無しさん@お腹いっぱい。2006/10/08(日) 12:09:04
ヘッダ from の localhost.localdomain については
まず自分のホスト名を正しく設定しろ。
Postfix 以前の基本中の基本。
MAILER-DAEMON をいじるなら bounce.cf を書く。

Return-Path はすでに出ているが、設定することはできないし、
現状が正しいので設定する必要もない。
0049名無しさん@お腹いっぱい。2006/10/08(日) 13:18:48
>>48
ホスト名の設定とはどこを指しますか?

hostnameコマンドで返されるホスト名と
$myhostname は設定してあります。
0050名無しさん@お腹いっぱい。2006/10/08(日) 13:51:49
>>49
postfix以前の問題だから
0051名無しさん@お腹いっぱい。2006/10/08(日) 13:57:21
>>50
そういうことですか。
困らないので気にしないことにしました。
0052名無しさん@お腹いっぱい。2006/10/08(日) 14:07:33
>47
いや... 残念か?
0053名無しさん@お腹いっぱい。2006/10/08(日) 15:08:47
postfixの仕様が微妙なのでしかたない
0054名無しさん@お腹いっぱい。2006/10/08(日) 15:30:57
>51
正解!
0055名無しさん@お腹いっぱい。2006/10/10(火) 09:23:27
>>53
微妙……? どのへんが?
0056名無しさん@お腹いっぱい。2006/10/10(火) 21:36:46
おかしなこと言ってる >>48 とか >>49 がいるけど、
設定は $myorigin だよ。
0057名無しさん@お腹いっぱい。2006/10/10(火) 21:37:38
>>56
間違えた
× >>49
>>50
0058名無しさん@お腹いっぱい。2006/10/10(火) 21:48:14
とくに設定しなければ myorigin = $myhostname で、
とくに設定しなければ myhostname は自分のホスト名ですから。
postfix 以前の問題ですから。

もちろん、わざわざ postconf -e myorigin=localhost.localdomain をやるような
奇特な人もいるかもしれないけどさ。
0059名無しさん@お腹いっぱい。2006/10/10(火) 22:19:11
どこがpostfix以前の話なんだか
0060名無しさん@お腹いっぱい。2006/10/10(火) 22:44:37
>>59
ケチつける暇があったらとっととホスト名の設定変更の方法でも調べなさいね.
0061名無しさん@お腹いっぱい。2006/10/10(火) 23:48:43
部屋のマシンで、NTT-Wの光につないでるから、FQDNありませ〜ん。

嘘のアドレス騙るのもなあと、取り敢えずホスト名.localdomainのまま放置中。
0062名無しさん@お腹いっぱい。2006/10/11(水) 00:23:06
キモいスレだな・・・
0063名無しさん@お腹いっぱい。2006/10/11(水) 00:27:06
まえからこんなもんだよん。
0064名無しさん@お腹いっぱい。2006/10/11(水) 13:21:18
.localdomain が許されるのは小学生までだよねー
キャハハハハハハハ
キモーイ
0065名無しさん@お腹いっぱい。2006/10/12(木) 17:54:52
CentOS4.4でpostfixのSASL対応rpmを作ってるんですがどうもドキュメント等と挙動が一致しません。
よいヒントがあれば教えて下さい。

UNIXパスワードを用いてPLAIN/LOGIN/CRAM-MD5を受け付けたい。

// postfixソース取得
up2date --get-source postfix
// cyrus関連インスコして
up2date -i cyrus-sasl cyrus-sasl-plain cyrus-sasl-md5 cyrus-sasl-devel
// postfixパッケージリビルド&インスコ
postfix.specを
%define SASL 1
に書き換えてrpmbuild -bb

// テスト
telnet localhost 25
EHLO localhost

>250-AUTH CRAM-MD5 LOGIN PLAIN DIGEST-MD5
>250-AUTH=CRAM-MD5 LOGIN PLAIN DIGEST-MD5
まず、この順番が違う。(疑問1)

気を取り直してここでAUTH PLAIN xxxxxxxxxx(BASE64化されたパラメータ)xxxx
しても
>535 Error: authentication failed
とエラーになる。(疑問2)

ググル先生曰く「cyrus-saslのsmtpd.confを書き換える」とか「デフォルトでおk」とか
色々あって混乱中です。このファイルは関係あるのでしょうか。ちなみに現在は
「pwcheck_method: saslauthd」とだけ書かれています。(saslauthdも起動しています)
0066名無しさん@お腹いっぱい。2006/10/12(木) 18:07:20
で、肝心のsasldbは?
■ このスレッドは過去ログ倉庫に格納されています