Postfix(3)

このエントリーをはてなブックマークに追加
Postfixスレッド その3です。

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

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

過去スレ、関連スレなどは>>2-4あたり
●過去スレ
 Postfix(2) http://pc5.2ch.net/test/read.cgi/unix/1053097579/ ; 前スレ
 Postfix http://pc.2ch.net/unix/kako/994/994289303.html

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

 qmailいろいろ(4)
 http://pc5.2ch.net/test/read.cgi/unix/1066875813/

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

 Internet Mail System 総合スレ@UNIX板
 http://pc5.2ch.net/test/read.cgi/unix/1065106696/

●機能拡張
 Postfix/TLS - A TLS extension for POSTFIX
 http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/
お疲れサマンサ・フォックス
(´A`)・・・
Dynamic Relay Authorization Control (DRAC)
ttp://mail.cc.umanitoba.ca/drac/

Courier Mail Server
ttp://www.courier-mta.org/
ttp://sourceforge.net/projects/courier/

6名無しさん@お腹いっぱい。:04/06/07 02:37
>>5
DRACはPOP/IMAPサーバ側にパッチを宛てたりするのが
面倒なので、こっちも紹介しておこう。

Pop-before-smtp
http://popbsmtp.sourceforge.net/

こいつはパッチを宛てなくても使える。
76:04/06/07 02:49
こんな構成でメールサーバを構築しました。

Postfix(Cyrus SASLでSMTP-AUTHに対応、Pop-before-smtpも使用)
Courier-IMAP(APOPパッチ適用済み、CRAM-MD5パスワードにも対応)

が、パスワードの管理がこんなになって、一元管理できません。

POPとIMAPの平文パスワード: Unixパスワード
SMTP-AUTHのパスワード: SASLのパスワード
APOPとIMAPのCRAM-MD5パスワード: userdbのパスワード

PAM認証を使うと、どうにかなりそうな気もするんですが、
皆さんパスワードの一元管理はどうしてるんでしょうか?

Linux暦一ヶ月未満でVine Linuxを使ってます。
全部PostgreSQLにつっこむ
MySQL でやってた。
APOPやCRAM-MD5を捨てて全部SSLで平文パスワード。
11名無しさん@お腹いっぱい。:04/06/07 07:49
自宅鯖板よりこのスレを聞いてきました

Vine Linux 2.6
Postfix version 1.1.13でバーチャルドメインをしたいんですが

/etc/postfix/virtualへ以下の記述をいれました
yyy.net sub-domain
[email protected] bbb
その後
# postmap /etc/postfix/virtual

んでもってpostfix main.cfに
virtual_maps = hash:/etc/postfix/virtual
を追記しPostfixを再起動しました。

しかし、うまく行った時で1回しかメールを受信できず
それ以外は
reason 550 User unknown in virtual alias table
等というメッセージが出ます

元から取得していたドメインのメールは動作しているのですが、
どうして、上記の様にバーチャルドメインがうまくいかないか原因が分かる方いませんか?
尚、apacheのバーチャルドメインは動作しています
> postconf -n
136:04/06/07 15:33
>>8
>>9
データベースにつっこむって、どうやるの?

>>10
SSL非対応のメーラもいるから、それはちょっと (´・ω・`)
1410:04/06/07 17:06
>>13
stunnelで何でも大丈夫。
まぁ、ユーザが「説明すれば分かる」範囲だからってのもあるけど。

confとセットにしたインストーラ作るってのもありかな。
>>12
11です
自宅に帰ったらやってみます
>>13
Outlook Express・Mozilla・Mozilla Thunderbirdなんていう有名どころが
対応しているんで、SSL必須とかにしてしまってもかまわないかと。

Beckey? そんなの知らん。
Becky!も最新のβではSSL対応するようになったね。
189:04/06/07 19:03
>>6 ぐぐったらけっこうドキュメントあるよ。(日本語でなくて英語だが)
まあ PostPet とか携帯のメーラとか POP/APOP でないとだめなのけっこう
あるわけで、SSL 必須にもできないのが実情。昔彼女と PostPet でやりとり
していたんだけど、普段は Wanderlust で読んでいて、PostPet のメールが
来たら PostPet で取得し直し、なんてことをしていた。あれはあれで楽し
かったから、他にも PostPet 使いたい人がいるかもしれないところで、平文
POP/APOP 無視するのはしのびなかった。
>>12
すみません 自己解決できました
ありがとうございました
216:04/06/07 21:57
>>19
ありがd。見てみます。
SSLしか使えないってのは、さすがにまだ厳しい( >Д<;)
Over SSHすればPOP before SMTPもSMTP AuthもAPOPも不要だね。
Passwordも一元管理出来る。
23名無しさん@お腹いっぱい。:04/06/08 05:17
トラブルが解決できず、朝日を浴びています _| ̄|○ マブシィ

トラブルとしては、外部からのsmtpでは自ドメインのメールを受け取れない(User unknown)もので、
ローカルホストで、mail test1@*******.jpをすれば受け取れます(sent mailbox)。

しかし、/etc/postfix/virtualに
test1@*******.jp test1
と記載すると、受け取れるのですが、

バーチャルドメイン用のファイルなので、できればここに記載せずに、
外部からのsmtpにより受け取りたいです。
以下、設定ファイルになります。

どの設定が、ローカルでは配送され、外部からはuser unknownになってしまう原因に
なっているのでしょうか?
もちろん/etc/passwdにはユーザが登録されています。
24名無しさん@お腹いっぱい。:04/06/08 05:18
改行が多いとのことで、分けます。
--- postconf -n ------------------------------------
alias_maps = hash:/etc/aliases
biff = no
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
disable_vrfy_command = yes
inet_interfaces = all
local_recipient_maps = $alias_maps unix:passwd.byname
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
message_size_limit = 15240000
mydestination = $myhostname, localhost.$mydomain, $mydomain
mydomain = ********.jp
myhostname = ns.********.jp
mynetworks = 192.168.1.0/24, 127.0.0.0/8
myorigin = $mydomain
25名無しさん@お腹いっぱい。:04/06/08 05:18
newaliases_path = /usr/bin/newaliases
prepend_delivered_header = forward
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-1.1.12/README_FILES
sample_directory = /usr/share/doc/postfix-1.1.12/samples
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtpd_etrn_restrictions = reject
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks check_client_access
btree:/etc/mail/dracd, check_relay_domains
virtual_maps = hash:/etc/postfix/virtual
---------------------------------------------------
log晒せや。
>>23
virtual domain 使わないなら virtual_maps= は要らないのではないかな。
あとこっちの環境と比べてみたけど, こちらでは local_recipient_maps= は空の状態で動いている。
postfix 1.1.12 ということで mydestination まわりかと思ったがそれはあっていいそう。

logに
"check_relay_domains" restriction is going away; use "reject_unauth_destination" instead
と出ていましたが、単純に
smtpd_recipient_restrictions = permit_mynetworks, check_sender_access hash:/etc/postfix/sender_access, check_relay_domains
となってた部分を
smtpd_recipient_restrictions = permit_mynetworks, check_sender_access hash:/etc/postfix/sender_access, reject_unauth_destination
に変更するだけでいいのでしょうか?
>>23-25 = 28
と仮定してるけど。

smtpd_recipient_restrictions = permit_mynetworks,
check_client_access btree:/etc/mail/dracd,
reject_unauth_destination

check_sender_accessなんて使ってないだろ。check_sender_accessで何をし
てるのか知らないが、ふつうreject_unauth_destinationの後ろに書く。
open relayになる可能性がある。

check_relay_domainsは推奨されない。
3028:04/06/08 15:22
>>29
お返事ありがとうございます。
23-35 != 28です。

check_sender_accessでは、ちょっと必要があり、送信者のドメインを見ています。
ここに記載された送信者の場合はリレーを許しています。
単にlogに「check_relay_domains」は使用できないよ書いてあった為お聞きしました。
>>30

つまりopen relayだということか。
>>30
激しくオープンリレーだな。
送信者詐称でいくらでも UBE (spam) を送り出せる。
早急に SMTP-AUTH や APOP と組み合わせた POP before SMTP の導入を検討すること。
「ぼくちゃん Outlook だから APOP つかえなーい」というのであれば SSL/TLS を使え。

3328:04/06/08 16:40
>>31-32
お返事ありがとうございます。
POPないので、どうしようかと考え中です。
色々設定変更してがんばってみます。
どうもこうも、SMTP-Auth使うしかないような。SMTP クライアントが動的な
IPアドレスならね。
3523:04/06/08 17:50
レス遅くなってすいません。

ログなんですが、外からメールすると
---
Jun 8 17:42:56 ns postfix/smtpd[2399]: reject: RCPT from unknown[*.*.*.*]:
550 <test1@*******.jp>: User unknown; from=<*****@hogehoge.jp> to=<test1@*******.jp>
---
このようになり、

ローカルホストでmailコマンドすると、
---
Jun 8 17:45:48 ns postfix/nqmgr[30766]: 102D53F62: from=<root@*******.jp>, size=291, nrcpt=1 (queue active)
Jun 8 17:45:48 ns postfix/local[2422]: 102D53F62: to=<test1@*******.jp>, relay=local, delay=0, status=sent (mailbox)
---
となります。

>>27
バーチャルドメインは、このシステム上では使っています。
バーチャルドメインのメールは、/etc/postfix/virtual、
そのメールサーバのドメインは、/etc/passwdから認識して欲しいのですが・・・。
>>35
うにxユーザによるvirtualなんでしょ。

http://www.postfix.org/VIRTUAL_README.html
ドキュメントは読もう。

virtual_alias_mapsとvirtual_alias_domainsあたり。

http://www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_class

それでダメだったら、もういちどpostconf -n書きなさいな。

と、思ったら1.x系列か。1.xにvirtual_alias_mapsってあったっけ?
もうわすれちまったよ。

たぶん、man 5 virtualあたり読んでSendmail-styleなのかPostfix-styleなの
かよく考えて、mydestinationを設定、でないの。

たぶん、smtpdはmydestinationにvirtualドメインが存在しないので、そんな
ユーザしらない、で、mailコマンドの場合はsmtpdを経由しないので、virtual_mapsによる書き換えが起きてるんでしょ。違う?
3735:04/06/08 19:12
>>36
 わかりやすい説明、ありがとうございました。
 がんばって読んでみます。
まったくスレ違いだとは思うんだけど。

何度か出てきているように、パスワードを保護するにはTLS/SSLを使うのが、
美しい解決法なんだけど、コストやらなんやらでなかなか普及しない。

で、APOPなんかだとOEが対応してない(らしい)。

で、うるさい企業とかは別にして、ふつーのISPなんかを個人で使っている
場合、パスワードは平文なひとが多いと思う。SMTP/POP3/IMAP以外も。

WEPがダメダメって最近(?)騒がれるようになっているけど、こういった事実は
あんまり問題視されないよね。

個人情報をSSLで暗号化していなかったら、ごちゃごちゃ言われるけど。

TLS有効にしてるけど、TLSしゃべるMTAって全然少ないし。

そこんとこどうなのよ(って愚痴なんだけどさ)。
つまりSMTP AUTHマンセーって事ですね。
あれってMD5で暗号化されてるんだよね?
>>39
おまえ、このスレの議論全然理解できてないだろ?
4139:04/06/09 02:24
3行以内で説明キボンヌ
39は包茎
>で、うるさい企業とかは別にして、ふつーのISPなんかを個人で使っている
>場合、パスワードは平文なひとが多いと思う。SMTP/POP3/IMAP以外も。

ふつーの ISP を個人で使ってる場合、サーバとクライアントの間の経路上にあるのは
その ISP の機械か自分の機械のどっちか。よって生パスワードで通信しても痛くない。

暗号化する必要があるのは、接続 ISP と送受信サーバの ISP が異なる場合や、
送受信するクライアントから外に出ていくまでの LAN で盗聴される恐れがある場合。
>>42

まぁまぁ。

>>39

SMTP-Authは無関係。使用を強く推奨するけど。
SMTP-AuthでMD5とかを使うことはできるけど。別に必須というわけじゃない。
OEとかCRAM-MD5サポートしてたっけ?
>>43
モバイルな人だと、後者のケースって多いでしょ。自分の管理下にあるなら
SSHに乗っけちゃうけどさ。

あと、APOPとかサポートしててもFTPとかは平文だったりしてげんなりすることも
あるなぁ。

愚痴で申し訳ない。
46名無しさん@お腹いっぱい。:04/06/09 03:44
>>38
PGPとか使わない限りは、メール本文は配送経路上を
平文で流れるしかないので、パスワードとかの認証情報
以外は特に暗号化してなくても気にしない。
47名無しさん@お腹いっぱい。:04/06/09 03:46
>>44
OEのSMTP-AUTHはCRAM-MD5をサポートしてない。
つまり、平文パスワード。
48名無しさん@お腹いっぱい。:04/06/09 12:45
qpopperが上手くインストール出来ないのだが。。。(鬱 orz

現在の構成
OS:OpenBSD 3.5
SMTP:Postfix-2.1.1

/usr/sbin 以下に存在するファイル sendmail を sendmai.***(***:は任意の文字列)
としてファイル名変更。

qpopper4.0.5インストールに際し、再びsendmailに変更して./configureを行った。
makeを行うと、Error Code 1と表示される。

gmakeにより誤魔化したのち、../qpopper4.0.5/popper以下に在る、
popperファイルを/usr/local/sbinにコピーして一応pop認証は出来ているが。
怪しさが、、、

又、クライアントによるメール取得が出来ていない
(Postfix MailBoX上には存在するが、qpopperで確認できない)という状態である。
>>48
スレ違い
>>48
OpenBSD スレで聞くべき問題だとは思うが, pkgsrc を使うのではいかんのか?
ってかpostfix使うんだから、qpopperなんて旧式の物使わずに、
vm-pop3dにすれ。
52名無しさん@お腹いっぱい。:04/06/09 16:25
maildirに対応してるもので、一番高速(高機能じゃなく)なPOPサーバプログラムって何でしょう?
>>52
自分で試してみたら?
だから、POP の話はスレ違い。
aa.bb.ccドメインでpostfix正常に駆動しているとして、
smtpd_recipient_restrictionsで
 postmastar@ DISCARD
 bin@ DISCARD
してるとする。

外部からのsmtpのやりとりで、
rcpt to:<[email protected]>
とすると、ちゃんとDISCARDされました。binも同じ。

rcpt to:<postmaster>
とすると、DISCARDされず、受信されちゃいました。

rcpt to:<bin>
とすると、DISCARDされました。

postmasterだけやっぱり特別扱いされちゃうのでしょうか。

rcpt to:<postmaster>宛にメールボックスをパンクさせるような攻撃が来るのを避けたいのですが、どうしたらよいでしょう。
とりあえずaa.bb.ccは存在するので使うな
5755:04/06/09 22:58
>>56 すみません。過去レスで何度も指摘されているのに不注意でした。
以後、55は、
aa.bb.cc -> bb.cc.dd
に置き換えてください。(bb.cc.ddは存在しない件、確認済)
>>57
そんな、わざわざ確認しなくても良いように、
example.jp, example.ne.jp, example.co.jp, example.com, example.net, ...
みたいな予約ドメインがあるわけなんだけどね。
Sendmail -> Postfix (mbox) の移行だと、Postfix インスコして、もちろん
設定もして、Sendmail を落して、Postfix起動する、という手順で、問題ない?
>>55
reject_non_fqdn_sender?
つーか、SMTPで完全に修飾されていないアドレスを受け取る必要って何?
あ、reject_non_fqdn_recipientだ。
>>59
Postfixに附属のsendmailコマンドが重複するからインスコ先には注意。

SMTPなら数分程度落ちていても基本的には問題ないはずなので、
あらかじめPostfixのbuildをしておいて、夜中とか影響の少ない時間帯に
Sendmailのキューをフラッシュして停止。
引き続きPostfixをinstall、設定して起動、でいいんじゃないかな。
2.1.1 on FreeBSD5.2.1です。
ソースからmake,make installしました。(オプションは全てリターンキー押して標準です)
とある解説ページを見て
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
とした所aliases.dbが無いと言われました。

で、postalias /etc/postfix/aliasesをしてやり
alias_maps = hash:/etc/postfix/aliases
alias_database = dbm:/etc/postfix/aliases.db
とした所正常に動いてます。
しかしこれでは動的にエイリアス変更が出来ないのでは無いのでしょうか?
動的にエイリアスを変更する方法をご存知の方はおりますでしょうか。
ご教授願います。
>>63
ほんまかいな。
6559:04/06/10 00:27
>>62
ありがとうございます。

> Postfixに附属のsendmailコマンドが重複するからインスコ先には注意。
FreeBSD標準のSendmailからの移行なので、そこいらは問題ないと思います。

う〜んやってみるか。
6663:04/06/10 00:39
え...
事実を書いたまでですが...
何かおかしいのでしょうか(汗
>>65
ports 使えよ。
>>65

portsからいれれば、あっという間に終わって拍子抜けするよ。

scriptとかでsendmail叩いてるなら、微妙に動作が違うので注意ね。
>>66
alias_database = dbm:/etc/postfix/aliases.db
よーく調べてごらん。
>>66
一般に .db は dbm 形式じゃないと思うが。
Berkeley DB だから普通 hash:

おまえも ports 使えよ
7163:04/06/10 00:44
今マシンを起動中です。
>>69
すみません、良く調べると言うのは?
>>65
>FreeBSD標準のSendmailからの移行なので、そこいらは問題ないと思います。
かなり問題あるぞ。/etc/mailer.conf って知ってる?
よく調べるっつたらよく調べるっていういみ
>>72
/etc/mail/mailer.conf だった orz

いずれにせよ, FreeBSD では生で直接 MTA のバイナリが呼ばれるのではなく
ラッパーを介して呼び出すようになっているから
直接置き換えるのは推奨されない。

というわけで ports つかえ ports

/etc/mail/mailer.confはportsで面倒見てくれる
7663:04/06/10 00:52
あれ..ホントすみません。
さきほど
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
でやってみた所正常に起動し通信も出来ました。
なんででしょう..
この場合、aliases.dbとかは使用してないのでしょうか?
>>76
してる
.dbは不要
7863:04/06/10 01:08

.dbファイルは開いてみるとバイナリっぽいんですが、
aliasesは普通のテキストファイルです。
それでもDBとして稼動しているのでしょうか?
よく調べるっつたらman postmap
聞く前に調べろってーの
8163:04/06/10 01:13
すみません。首吊ってきますノシ
皆さんありがとうございました。
>>81
何でだろ、と疑問に思うのは大事。
でも、それを自分で解決する努力しないようだったら、動けばいいと思ってる
奴らと一緒。

手がかりは教えてくれてるんだからさ。
8359:04/06/10 02:35
>>72
mailer.conf 知っています。ってか、ここ数年に自分で構築した鯖は最初から
Postfix (Maildir) なんですが、他人が管理していた鯖を引き継いで、
「Sendmail沸からーん!!」ということで、サッサと以降しようかと。もちろん、
ports 使います。混乱させてスマソ
というかPostfixはSendmailとの運用上の互換性で結構気をつかってるから、
newaliasesコマンドがあるし、それつかえばよい。
8555:04/06/10 11:10
>>60 >>61
reject_non_fqdn_recipient
を設定しましたが、
mail from:<postmaster>
は、やはり受取ってしまいます。
postmaster以外ではfqdnを要求するメッセージがでるようになりましたが...。
>mail from:<postmaster>
>は、やはり受取ってしまいます。

そんなはずはないと思うが。
RCPT TO:<postmaster> はどう設定しても必ず受け取るようになってるけど。

src/smtpd/smtpd_check.c
3519 /*
3520 * XXX 2821: Section 3.6 requires that "postmaster" be accepted even when
3521 * specified without a fully qualified domain name.
3522 */
3523 if (strcasecmp(recipient, "postmaster") == 0)
3524 return (0);

postmaster を特別扱いするには理由があるのでちゃんと受け取ること。
すべて拒否するのではなく、spam と思われるものだけを選別して捨てろ。
8785:04/06/10 13:07
>>86
めんご、めんご。
RCPT TO:<postmaster>
の間違えです。
さすがにソースまではチェックしなかったので....。おかげで、原因がわかりました。
で、どうするか。うーん、考えます。
>>87
考えなきゃならんほど、spam来るの?
最近の賢いspammerはそういったアドレスは避けるんだけどね。
うち(弱小ISP)だと、postmaster宛にはウィルスがよく届く。
spamはwebmaster宛。root宛には変なのは来ない、という状況。
90名無しさん@お腹いっぱい。:04/06/10 17:27
regist_(乱数)@hoge.comというアドレスをクライアントが送信した際に、
.forward -> procmailとキックして返信メールを送るための
レシピを教えてください。

:0
* ^To: .*regist_*
| (返信するためのプログラムパス)


これだと、regist_(乱数)というアカウントが無いためか、
上手く動きませんでした。

>>90
スレ違い
>>90 transportファイルのサンプルを読みましょう。
93名無しさん@お腹いっぱい。:04/06/11 17:43
>>93
心温まるページ
無かったことになってるのがまた
qmailにDoS脆弱性が発覚すると、とたんに完全沈黙するようになったdjb&前野萌え〜
マジレスするが、DoS受けたら大概のサービスはだめじゃん。
robots.txtもいい味出してますな。
>>96
大岡山御大は qmail は絶対無謬だと思ってた節があるからな。
OpenBSD のようにからっと開き直ればいいものを。

djb はもうこの手のネタには興味ないんじゃないの?
本業は数学者(暗号学者)なわけだし
100 ◆SpOldDFERs :04/06/14 21:50