Postfix(8)
Postfixスレッド その7です。 ●リンク 本家 http://www.postfix.org/ Postfix のぺーじ (ドキュメントの日本語訳、MLなど) http://www.kobitosan.net/postfix/ 過去スレ、関連スレなどは>>2-4 あたり >>182 補足しておきます。 > relay_domains = $mydomain > これを設定していると「自分のドメイン宛」のみrelayhostへ飛ばすと解釈できるのですが、 relay_domains の設定は、自分のドメイン宛てのみをrelayhostへ飛ばすという意味ではありません。 > なぜすべてのドメインがrelayhostへ飛ぶのでしょうか? relayhost が設定されていれば(ローカルに配信する以外の)すべてのメールをrelyahostへ飛ばします。 > relayhostがあれば、relay_domainsは無視するのでしょうか? relyahost を指定することと relay_domains の設定は別々のものです。 >>183-184 ご丁寧にレスをいただきまして、ありがとうございます。 いただいたアドバイスとmain.cfの英語を自分なりに解釈してほぼ理解できました。 送信用サーバ(25 & 587)と受信用サーバ(110 & 995)を用意していて(ローカル内のNASにメール保存) 証明書が受信用サーバにしかないので、smtpsを受信サーバ:465に追加設定しようとしたことがことの始まりです。 main.cfは、ほぼデフォルトで master.cfを smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination と設定しました。 SSL接続&smtpd認証ができれば、すべてのメールはrelayhostである送信サーバにrelayして、 SSL接続&smtpd認証ができなくても、relay_domainsに記載したドメインであれば、relayできました。 もちろん運用は前者です。 少しずつ拡張ができて楽しくなってきました。 ありがとうございました。 最近ローカルネットワークを装った?ホストから接続要求が 来てるっぽいんですが、みなさんどうやって対応してるんでしょうか? たとえば名前解決で127.0.0.2のように設定してある外部ホストから 接続を試みられるとpostfixがローカルネットワークと誤認して 中継を許してしまうようなんですが。 ローカルネットワークは制限すればよいとして、 ローカルホスト、つまり127.0.0.1を 設定されたホストから中継されたらどうしようもないような。 ローカルからも認証要求するようにしたら恐ろしく使い勝手が下がりますし。 ip spoofingはipfwとかiptablesで蹴るべし >たとえば名前解決で127.0.0.2のように設定してある外部ホストから >接続を試みられるとpostfixがローカルネットワークと誤認して ねーよ。 正引きで127.0.0.2に解決されるとしても、 接続を受ける側は正引きじゃなくて逆引きするんだから関係ない。 >>191 そういえば、個人サーバとかでメールサーバとwebサーバ兼用していると、 webの脆弱性を足がかりに、cgiを設置されたりしてspam配信元になったり することもあるね。 ソースアドレスを127.0.0.2にしたTCPパケットを送ってこられた場合、それに 対する応答はどこへ送ることになるのだろうか? 187、質問投げるだけ投げておいて消えたか。いかにも頭が悪そうな質問だなぁ と思ったら、やっぱり頭が悪かった。 本当はPostfixの話題じゃなくてmail一般の話題なんだけどごめんなさい。 適切なところに誘導してくれるとうれしいです。 今、携帯電話に職場で連絡メールを送ることがあるんですけど、 なんか、送ってくれる人が少人数ずつ分けて送ってくれてるみたいなんです。 携帯メールは良く知らないですけど、結構大変そうです。 で、職場のメールサーバのailiasに設定すれば省力化になるし、連絡担当者が変わった場合でも 混乱が少ないかなぁ。と思っています。 で、質問なのですが、 確か、もう大昔かも知れませんが、携帯メールをいっぺんに送ろうとすると拒否られるって話を聞いた覚えがあります。 これって今もなのですか ? また、こういう場合ってどういう方法が一番モアベターなのですか ? 教えてくだしあ。 ほしゅほしゅ Postfix 2.6 とか来てたからぶっ込んでみた。 日記終わり。 >>198 今でもだめかぁ 残念。 >>201 ありがとう。 そっちで聞いてくる。 改行 LF が CR LF に勝手に変換されるのってどうやったら止められるの? 正確にはメール本文での CR LF が CR CR LF になっちゃうのを止めたいんだけど。。。 色々調べてるんだけど見つからない・・・・orz [CR LF]、[\r\n]、[0x0d 0x0a]とか表記の違いも探し辛いし。。。疲れた。。。 出て行くときの話ですか?入ってきたときの話ですか? >204 出て行く時(送信時)です。 cronの実行結果のメールが無駄に改行されてるのでバイナリエディタで 見たら CR CR LF に書き換えられてました。一応、 echo -e "CR+LF:\r\nLF:\n"|mail -s"CRLF test" root でも同じ様に化けてます。 >203の書き込み後にさらに調べた結果、 sendmail はヘッダーの一行目(うろ覚えです)が CRLF だったら、LF を CRLF に 書き換える(LFだったら何もしない)みたいな記事と、postfixのchanglog >19981007 >Compatibility: if the first input line ends in CRLF, the >sendmail posting agent will treat all CRLF as LF. Otherwise, >CRLF is left alone. This is a compromise between sendmail >compatibility (all lines end in CRLF) and binary transparency >(some, but not all, lines contain CRLF). など関係してそうな話は見つかったんですが、やっぱり具体的な 解決策は見つからず。。。orz 一旦全ての改行をLFだけにしてから送るのではだめ? cronで実行するコマンドの標準出力をtr -d '\r'に通すとかで。 postmapでdb更新したら、postfix reloadしたほうがいいのだろうか? mainやmaster更新時は必要だと思いますが・・。 >>208 ttp://www.postfix-jp.info/trans-2.3/jhtml/DATABASE_README.html#safe_db ありがとうございました。 気にすることに越したことはないですね。 >>206 諦めて \r\n を \n に書き換えようと思います。。。 qmailだと問題なかったのでちょっと残念orz qmailの腐った改行の扱いに特化したコードがどっかに挟まってないか? >>209 引用している部分はreloadとは関係ないんだが… 質問です。 25番ポートと587番ポートでログを分けるということはできるのでしょうか? master.cfで、ログの場所等を決めるような事ができるのでしょうか? >>214 せっかくだから、どうやって解決したか詳しく >>214 本格的な炒飯を作るには鍋はよく加熱しておく。 まず、第一に鍋を加熱しておくことで火力の不足を補いましょう。 下ろしたての鍋は空焚きしてから油を回す油回しを忘れないようにしましょう。 テフロン加工のフライパンは、加熱しすぎると良くないのでほどほどにしましょう。 postfixのバージョンが上がったとき(2.5→2.6等の場合) 何も考えずにアップグレードのコマンドを打ちますか? 下位互換性があるとは思いますが、なかなか勇気が出ません。 マイナーバージョンアップだけは積極的に行う自分に、嫁さんも呆れています。 上げる必要がなければマイナーでいいじゃん。 メジャー上げなら新機能や変更点とconfをよく読む。 あとは、最悪、戻せるようにバックアップ。 ま、何も考えずはないわ。 >>219 ありがとうございました。 ドキュメントを読んで変更点をチェックするようにします。 maximal_queue_lifetime デフォルトの5dにしてんだけど active queueに古いメールが溜まってます。 何が考えられる? 5日経ってエラーを返そうと試みるもそれが出来なくて5日間がんばっている、のかもしれない。 その古いメールを何とかしようという試みはログに出てる? postfix単体では、文中URLのspamはブロックできない? reject_rbl_client は、IPアドレスのみ有効? spamasassinやf-secure等を使わないとSURBLの排除はできないのでしょうか? 零細メールサーバであろうとも運用するならちゃんと勉強してこい >>226 一応勉強してきたんですが、それでも気になるので、 皆さんの教えを乞いにここへ来たのですが・・・。 >>227 お前さん、用語だけ理解して どういう仕組みで動作しているか理解できていないだろう。 ググれば判るから、もっと勉強しておいで。 2.6になって仕様が変わっていたのかorz 今まで気づかなかった。 always_add_missing_headers設定して解決 グーグル先生でもダメだったので、諸先輩方に質問です。 qmail+postfix+vpopmailの環境で自サーバ内のバーチャルドメインにperlからsendmail(qmail)メールが届きません。 maillogを見たら qmail: ... starting delivery 4: msg 16908638 to local example.com-acount@example.com となっていました。 acount@example.comに送りたいのにexample.com-acount@example.comなので届かないんでしょうけれど・・・ qmailの可能性でも調べましたが、postfixの設定というのが2件引っかかっただけで解決には至らず。 すみません、途中送信してしまいました。 ------------------------------------------------------------------------ グーグル先生でもダメだったので、諸先輩方に質問です。 qmail+postfix+vpopmailの環境で自サーバ内のバーチャルドメインにperlからsendmail(qmail)メールが届きません。 maillogを見たら qmail: ... starting delivery 4: msg 16908638 to local example.com-acount@example.com となっていました。 acount@example.comに送りたいのにexample.com-acount@example.comなので届かないんでしょうけれど・・・ qmailの可能性でも調べましたが、postfixの設定というのが2件引っかかっただけで解決には至らず。 どなたか解決の方法をご存知の方がいたらご教授願えればと思います。 qmail+postfixって何したいんだ?エスパー希望?? >>233 すみません、色々自分がおかしいみたいです。 maillogにqmailって書いてあるのにpostfix調べてました。 qmailで調べ直してきます・・・ どなたかヒントでも良いので教えてください。 特定IPからのアクセスのみsmtpd_client_connection_count_limitを大きくする方法 をご存じ無いでしょうか? たとえば、デフォルトはsmtpd_client_connection_count_limit = 10 192.168.0.1からは、smtpd_client_connection_count_limit = 50 という感じの事がしたいです。 よろしくお願いします。 別ポートでもう一つsmtpdを立ち上げておいて、 ipfw,iptables等で特定のIPアドレスから来たsmtpセッションを 別ポートのsmtpdに振り分ける >>236 レスありがとう。 其の手があった。目から鱗です。 sendmail なら素でできるので乗り換えるとか:-) 大量送信してくるアホを蹴る手段のひとつとして ratecontrol を使う sendmail と、 リソースが枯渇しないようにするための緊急回避として anvil を使う postsifx とで 実装ポリシーがまったく違うので、今後も postfix でできるようにはならないだろうなー。 DDoS的に多種多様なIPからのmail bombだったりするとどちらもダメだったりするけどねい。 3週間に一度ぐらいのペースでそういう攻撃されるので、うざいうざい… >>240 ここ1週間毎日攻撃されております。 iptables にルールを追加するんですが、モグラ叩きみたいな 感じで切りがないです。 なんか、良い方法ないですかね? >>241 金で解決するかポリシーで解決するか。 傾向を調べて日本国外からの爆撃がほとんどだったら >>236 でまとめて制限するとかすればいいんじゃね iptablesならconnlimit使えば委員ジャマイカ FreeBSDをつかっているのですが Postfix 2.4を2.6の最新版にアップグレードして postgreyも最新のものにしようと思っているのですが # portupgrade -o mail/postfix -f mail/postfix24 # portupgrade -R mail/postgrey で大丈夫なんでしょうか? 設定ファイルの書き方に変更があるならバックアップをとろうと思うんですが postfix upgrade-configuration postfix set-permissions でいいんじゃね あのメール送受信が出来ないってのは CentOS の ML から移動してきたやつだねw 何で分かりもしないのにメールサーバ立てたがるのかねえ・・・ どうせ大した人数もいないんだからGmailでもなんでもSaaSつかえばよかろうに なんかあメールサーバーってかっこいいじゃないですかあ ウェブサーバーとかはイントラネットで立てて実験してってできるじゃないですかあ でもメールサーバーってほんとに送受信できるかどうかって他所のサーバーと やってみるまでわかんないじゃないですかあ そこがこうヒリヒリする感じ?ああ本物のサーバーだなって思えるじゃないですかあ やっぱりただのサーバーとメールサーバーとは隔絶した存在なんですよ ギンヌンガガップがあるんですよ ローカルからの接続SMTP許可しています。 直接SMTPたたかれるとユーザ名等がログに残らないのですが、 ユーザ名を特定する方法はないでしょうか? すいません、追加質問おながいします。 SMTPポートへの接続はローカルからでも拒否して、 postfix.sendmail ttp://www.postfix-jp.info/trans-2.2/jhtml/mailq.1.html への接続はローカルから許可する、なんてことは可能でしょうか? 理想は 251のようにローカルホスからの接続の場合、ユーザ名をログすることなんですが、 なんか厳しい気がするので。 >>252 「SMTPポートへの接続」と「postfix.sendmailへの接続」っつーのはどう違うんだ? それぞれ違うTCPポートで起動させてんのか? まあ、プロトコルやMTAについてよく判ってないようなので、君には無理。 > 「SMTPポートへの接続」と「postfix.sendmailへの接続」っつーのはどう違うんだ? postfix.sendmailが最終的にSMTP接続を行うと考えれば結局は同じになるかと思います。 なんで252の件もやはり難しそうですよね。 ローカルであろうがなかろうが、SMTP認証をつけてしまおうかとも 考えましたが、そうなるとpostfix.sendmail使用の際も認証が必要、となり、 実質的にpostfix.sendmailを改造しないと対応できない気がします。 postfix.sendmailは使用ユーザをログするようになってるようなので 使用は問題ないのですが、 直にSMTP接続されると使用者の特定方法がなくて困っています。 ローカルからは接続許可しているケースが一般的だと思います。 この場合、極端な事例だと、自社に大量スパマーがいたら 送信行動の特定ができなくなってしまうわけですが、 このあたり他の方はどのような対応なさってるんでしょうか? ローカルポートへの接続状況を監視するようなプログラムってないでしょうか? > ローカルポートへの接続状況を監視するようなプログラムってないでしょうか? netstat をもう少しログや接続ユーザ等詳細に残せるような感じなものが あればとりあえずの目的は達成できそうなのですが。 lsofか、OSに依存するけどsockstatでも使うとか。 postfixがidentサポートしてればいいんだろうけど、サポートしてなさげだし。 ローカルからの SMTP 接続に auth を強要すればいいだけじゃん。 smtpポートに接続されること自体が嫌なのかと思って>>256 書いたけど、 良く読んだらspammer防ぎたいってだけだからauth強要でいいのか。 最新バージョンに対応した「Postfix辞典」出ないかなぁ。 RBLを使って拒否とかをするのではなく、引っかかったメールはヘッダに フィールドを追加する等加工をして通すなんて処理は出来るのでしょうか? なるべくサーバでは捨てないでクライアントで捨てる方向にしたいのですが・・・。 >>261 spamassassinってベジアンフィルタだけだと思ってスルーしてたけど RBLとかにも対応してるのね。ベジアンフィルタOFFで使えるなら これが良さそう。ちょっと試してみます。ありがとー postfixからspamassassinに食わせようとすると直では使えないのね procmailかamavisd-newあたりをかまさないと駄目なんだと思うけど ベジアンフィルター使わないならちょっと大げさな気がしてきた もうちょっとシンプルな方法無いのかな・・・ >>263 もうちょっと調べろよ… つ spamass-milter >>260 http://www.postfix-jp.info/trans-2.1/jhtml/access.5.html PREPEND headername: headervalue メッセージの前に指定されたメッセージヘッダを付加します。このアク シ ョンが複数回使われると、最初に付加されたヘッダは2番目などのヘ ッダの前に現れます。 注意: このアクションは複数行のメッセージヘッダをサポートしていま せん。 この機能は Postfix 2.1 以降で使えます。 postfix2.3.3+postfixadminを使用しています。 メールの転送について聞きたいのですが、 Aから、Bに届いたメールをCに転送すると、Cには差出人が Aであると表示されます。これをBと表示するにはどんな設定が必要でしょうか。 Bのアドレスがpostfixで提供しているアドレスです。 そんな質問するやつが MTA(postfix)運用してるんじゃねーよ… orz いやほんとに >>265 PostfixのRBLの機能使って、PREPENDでヘッダにメッセージ付加は出来ないんじゃない? やっぱSAとか使わん限りむりじゃないかなあ。 ここ参考にmain.cfに「expand_owner_alias = yes/owner_request_special = yes」を追加 MySQLのaliasテーブルにowner-***を追加してみたけど、ダメだった。 http://mtlab.ecn.fpu.ac.jp/WSM_2005/051007121618.html Try & Errorでやるようなスキルじゃpostfix扱うべきじゃないんですかねorz >269 悪いことはいわん 明らかに envelope と header の区別もついていなさそうだし forward が何をさすのかも分かっていないようなので 氏ねとか逝ってしまえとまでは言わないが 基本をきちんと勉強してからにしてくれ 設定とかじゃなくて「メールとは何か」ってことを、ね そして上記のキーワードの意味が分かってからにしなさい PHPから送信するときenvelope -fを指定するとheaderのFromが埋まるため 勘違いしてました。全然分かってなかったですね。ちょっと勉強しなおしてきます(汗; どなたか教えてください。log に「postfix/smtpd[5089]: too many errors after」 が出力される時の条件って、smtpd_hard_error_limit に依存するのですか? 出力条件が良く判らないので、ご存じの方お教えください。 その前にsmtpdがpid 5089で起動される必要がある、それなりのレアケースだな smtpd_hard_error_limit smtpd_soft_error_limit スパムを送信しようとする接続がやたら多くてsmtpdの起動数がすぐに限界(100)に 達しちゃうんです。limitを多くしても根本的な解決にならないような気がして、この 不要なsmtpdをすぐに停止するようなオプションってあるのでしょうか。 一定時間待っててもなんもデータが送られてこない接続。ですかね? あーでも拒否っても無視してデータ送ってくる類もいますか。 >>277 > 一定時間待っててもなんもデータが送られてこない接続。ですかね? どの段階でかよくわからんが smtp_なんちゃら_timeout でいいんじゃね。 >>279 どもです。タイムアウトの設定があったのですね。 とりあえずこんな感じで短めにしてみたところ前より処理が早くなりました。 もうちょい様子を見てまたご報告します。 anvil_rate_time_unit = 5 default_process_limit = 500 smtp_connect_timeout = 10s smtp_helo_timeout = 60s smtp_mail_timeout = 60s smtp_rcpt_timeout = 60s smtp_data_init_timeout = 45s smtp_data_xfer_timeout = 60s smtp_data_done_timeout = 60s smtp_quit_timeout = 60s smtp_mx_session_limit = 0 >>280 ぜんぜん関係ないパラメータいじってんのに効果あるわけねーよ。 ちっとは自分でマニュアル調べろ。 あぁごめんなさい。 anvil_rate_time_unit ですよね?マニュアル読みました・・・orz >>275 プロセス使い切ってしまう問題は、postfix の設定変更だけじゃ無理だよ。 OS書いてないから、具体的な事は言わないけど・・・ >>283 そうなんですか。とりあえずタイムアウトの設定いじったらずいぶんマシに なりましたが、結局量が増えたら同じですかね。 CentOSなんですが何かいい方法ありますでしょうか。 別のOSの場合でもいいのですが。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる