このページは、Postfix詳解 - MTAの理解とメールサーバの構築・運用 - 荒木靖宏 著 (以下 Postfix本)の
で構成されています。おかげさまで、
質問は、<pb-shitsumon at araki.net> まで。
改訂があるとしたらやるべきポイントおよび解説は、araki:postfix:postfix-book-errata1:moreにあります。
本に直接の関係はないけど私がまとめているPostfix関連のメモがaraki:postfixにあります。
本はPostfix2.1に対応しているので、あたらしいことについては、araki:postfix:2.2,araki:postfix:2.3が参考になるかも。
(改訂があるとしたらやるべきポイントおよび解説)araki:postfix:postfix-book-errata1:more
指摘および、ヒントをいただけた方は次の通りです。: knok、ike、katayama, kambe
例1-2 line 4
神戸さんのご指摘(<20041111.095900.74749053.taca@back-street.net>)
「Sendmailキュー のクリーニングの確認」というところで、"mailq.OFF"と名前を変更した状態 でmailqコマンドを実行しようとしていますが、多くのバージョンのsendmail では、mailqコマンドとして動作しません。実行された名前が "mailq" だった 場合に、"sendmail -q"として動作するようになっているからです。
sendmailに多数のversionがあること。また、sendmail以外の多くのMTAでsendmailないしmailqコマンドが用意されていることを考えると、よりふさわしいのは sendmailコマンドに -q をつけて実行することでしょう。
ということで、下から3行目は
% /usr/bin/mailq.OFF このコマンドで、もしキューにメールが残っていても、次のように実行すると完全な形でキューをクリーニングできます。 # /usr/sbin/sendmail.OFF -q キューにメールが残っていないかどうか確認しておきます。
% /usr/sbin/sendmail.OFF -q このコマンドで、完全な形でキューをクリーニングできます。
NOTE中
最終行
myoriginとmydomainがいれかわっていました。
RFC1869, 2197 が、それぞれ2つ記述されていますが、誤記です。
line 4
/var/mail/foo/{tmp,new.cur} にすべきところ、"mail"が抜けました。
3行目頭に "rewrite" が、ありますが、これは2行目末尾の "trivial-"に続くもので、 "trivial-rewrite" が2行目最後に書かれるべきでした。
例 13-5. daemon_directoryのディレクトリを確認する $ ls /usr/lib/postfix/ bounce error local pickup qmgr smtp trivial-rewrite cleanup flush master pipe qmqpd smtpd virtual lmtp nqmgr proxymap showq spawn
line 1
NOTE中
もし全てが記述されるということになると、
smtpd_delay_reject = yes smtpd_client_restrictions = permit smtpd_recipient_restrictions = ...
の場合に、
smtpd_recipient_restrictions = permit ...
と同じということになります。
例 18-4. PostfixサーバがSASL認証したクライアントだけに中継を許可する設定例 smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = example.com smtpd_client_restrictions = permit_sasl_authenticated
例 18-4. PostfixサーバがSASL認証したクライアントだけに中継を許可する設定例 (注意): この設定だと認証のないクライアントからこのサーバにメールを送ることすらできなくなります smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = example.com smtpd_client_restrictions = permit_sasl_authenticated,reject
smtpd_client_restrictions = permit_sasl_authenticated
だけの場合は、sasl認証に成功したクライアントの中継を許可します。ただし、permit_sasl_authenticated自体には、失敗即rejectという意味は含まれません。 そのため、PostfixサーバがSASL認証したクライアントだけに中継を許可するためには、
smtpd_client_restrictions = permit_sasl_authenticated,reject
にする必要があります。
「Postfixサーバが "通常のネットワークからのクライアントに加え" SASL認証したクライアントだけに中継を許可する設定例」とするならば、例18-3のように、smtpd_recipient_restrictionsに、 permit_sasl_authenticatedを加えるのが順当な方法です。
smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = example.com smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
RFCやIANAでの正式制定前に465/tcpを使うアプリケーションの実装がなされ、現在でも使われています。そのため/etc/services等には465/tcpがssmtpを指定するシステムが多数あります。 (465/tcpは他のプロトコル(URL Rendesvous Directory for SSM)のためにわりあてられています。) SMTPの標準化の過程で、SMTP over SSLよりもSTARTTLSによる方法が好ましい(新たなポートが必要なく、firewall等への親和性も高いため)465/tcpはIANAへの正式登録には至りませんでした。 また、 この流れはSMTPに限りませんでしたが、POP3 over SSLやIMAP4 over SSLは先にIANAに登録されており、そのままになりました。
DNSを使用したメールの配送方法を記述したrfcについて RFC974はRFC2821に取って替えられています。
誤
<----- MTA -----> 出力MDA ------> +---+
^ SMTP | |
| | |
| <------------------------- +---+
[キュー] その他のメールサーバ
正
<----- MTA -----> 出力MDA ------> +---+
^ ^ SMTP | |
| | | |
v +------------------------ +---+
[キュー] その他のメールサーバ
誤
(2)
-------- (SMTP) MDA <------- MTA
^
|
|
v
[キュー]
正
(2)
-------- (SMTP) MDA <------- MTA
^
|
+------------------+
v
[キュー]
これに該当するのは、以下の図です。
誤
+--------+
|.forward|
+--------+
/ |
v
+--------+
->|mailbox |
+--------+
正
+--------+
|.forward|
+--------+
/
+--------+
->|mailbox |
+--------+
例 14-15. クライアントのIPアドレスを127.0.0.2に偽装した例 $ telnet localhost smtp Trying 127.0.0.1... Connected to ggsn. Escape character is '^]'. 220 mailserver.example.com ESMTP Postfix (Debian/GNU) xclient addr=127.0.0.2 <--- XCLIENTコマンド 250 Ok helo client.example.com 250 mailserver.example.com mail from:<yasu> 250 Ok rcpt to:<yasu@example.net> 554 <yasu@example.net>: Relay access denied quit 221 Bye Connection closed by foreign host.
queueと書かれているところはqmgrが正解です。
(誤)
cleanup --> queue --
(正)
cleanup --> qmgr --
誤
postfix.example.com
+---------------------------+ +-----------+
|smtp-source Postfix | | smtp-sink |
| --------> --+---+-> |
+---------------------------+ +-----------+
smtp-source.example.com smtp-sink.example.com
正
postfix.example.com
+-----------+ +-----------+ +-----------+
|smtp-source| | Postfix | | smtp-sink |
| --+---+-> --+---+-> |
+-----------+ +-----------+ +-----------+
smtp-source.example.com smtp-sink.example.com
誤
|
((インターネット))
|
[ISP]
|
((インターネット))
|
正
|
[ISP]
|
((インターネット))
|
[ISP]
|