Postfixを2.0系から3.0系へアップグレード。
インストール
portmasterでアップグレードインストール。現在、2.0系がpostfix、3.0系は現在postfix-currentでportsに収録されている。
#sudo portmaster -o mail/postfix-current postfix
サービスを再起動。
#sudo service postfix restart
次のように警告が出る。
postfix: Postfix is running with backwards-compatible default settings postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details postfix: To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload" postfix/postfix-script: stopping the Postfix mail system postfix/postfix-script: waiting for the Postfix mail system to terminate postfix: Postfix is running with backwards-compatible default settings postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details postfix: To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload" postfix/postfix-script: starting the Postfix mail system
3.0での主な変更点
「Postfix Backwards-Compatibility Safety Net」より。
append_dot_mydomain=yes
append_dot_mydomainのデフォルト値が “yes” から “no” に変更された。
append_dot_mydomainが未設定でデフォルト値で動作しており、かつ後方互換機能がONに設定されている場合、次のいずれかがPostfixのログに記録される場合あり。
- mydestinationまたは他クラスの “localhost” が存在しないことに関するメッセージ。
postfix/trivial-rewrite[14777]: using backwards-compatible default setting append_dot_mydomain=yes to rewrite "localhost" to "localhost.example.com"; please add "localhost" to mydestination or other address class
上記メッセージがログにある場合、mydestinationに “localhost” を追加(またはvirtual_alias_domains, virtual_mailbox_domain, またはrelay_domainsに追加)して、「postfix reload」コマンドを実行する。
- メールアドレスのドメインが不完全であることに関するメッセージ。
postfix/trivial-rewrite[25835]: using backwards-compatible default setting append_dot_mydomain=yes to rewrite "foo" to "foo.example.com"
“localhost” 以外のドメインに対して上記メッセージがログに残され、送信元アドレスに完全なドメイン名指定ができない場合、システム管理者はmain.cfに “append_dot_mydomain=yes” を追加し、後方互換機能を永続的に利用するよう設定する必要がある。
# postconf append_dot_mydomain=yes # postfix reload
chroot=y
master.cfのchrootの値が “y” (yes) から “n” (no) に変更された。
master.cfのchrootの値が空欄でデフォルト値を使用する場合、かつ後方互換機能がONになっている場合、Postfixは次のメッセージをログに記録することがある。
postfix/master[27664]: /etc/postfix/master.cf: line 72: using backwards-compatible default setting chroot=y
サービスをchrootで動かしたい場合には、master.cfに “chroot=y” を追加して後方互換機能を永続的に利用する設定を行う。たとえば “smtp inet” サービスのchroot設定を更新する場合には、次のようにする。
# postconf -F smtp/inet/chroot=y # postfix reload
mynetworks_style=subnet
mynetwork_styleのデフォルト値が “subnet” から “host” に変更された。
このパラメータは “permit_mynetworks” 機能の実装に使用される。mynetworksとmynetworks_styleの値が空欄でデフォルト値が使用され、かつ後方互換機能がONになっている場合、Postfixは次のいずれかのメッセージをログに残すことがある。
postfix/smtpd[17375]: using backwards-compatible default setting mynetworks_style=subnet to permit request from client "foo.example.com[10.1.1.1]" postfix/postscreen[24982]: using backwards-compatible default setting mynetworks_style=subnet to permit request from client "10.1.1.1"
拒否されるべきでないクライアントが拒否されている場合には、システム管理者はmain.cfに “mynetoworks_style=subnet” を追加する。
# postconf mynetworks_style=subnet # postfix reload
relay_domains=$mydestination
relay_domainsのデフォルト値が “$mydestination” からカラ(何も指定しない)に変更された。relay_domainsの値が空欄でデフォルト値が使用され、かつ後方互換機能がONになっている場合、Postfixは次のいずれかのメッセージをログに残すことがある。
-
リモートドメインからのメール受信に関するメッセージ
postfix/smtpd[19052]: using backwards-compatible default setting relay_domains=$mydestination to accept mail for domain "foo.example.com" postfix/smtpd[19052]: using backwards-compatible default setting relay_domains=$mydestination to accept mail for address
-
リモートドメインへのETRNサービス提供に関するメッセージ
postfix/smtpd[19138]: using backwards-compatible default setting relay_domains=$mydestination to flush mail for domain "bar.example.com" postfix/smtp[13945]: using backwards-compatible default setting relay_domains=$mydestination to update fast-flush logfile for domain "bar.example.com"
Postfixがそのドメインからのメールを受信すべき、あるいはそのドメインにETRNサービスを提供すべき場合には、システム管理者は “relay_domains=$mydestination” をmain.cfに設定する。
# postconf 'relay_domains=$mydestination' # postfix reload
注:上記のとおりの引用符が必要。
$mydestinationの代わりに個別にドメイン名を指定する方が望ましい。
smtputf8_enable=no
smtputf8_enableのデフォルト値が “no” から “yes” に変更された。
“yes” となった設定では、SMTPUTF8を要求しない非ASCIIのアドレスを拒否する。以前の “no” の設定では、伝統的なSMTPの標準で許可されていない場合であっても、そのようなアドレスを受け入れる。
smtputf8_enableの値が空欄でデフォルト値が使用され、かつ後方互換機能がONになっている場合、ローカルパートが非ASCIIなアドレスからSMTPUTF8を要求せずにSMTPのコマンドラインを利用するたびに次の警告をログに残す。
postfix/smtpd[27560]: using backwards-compatible default setting smtputf8_enable=no to accept non-ASCII sender address "??@example.org" from localhost[127.0.0.1] postfix/smtpd[27560]: using backwards-compatible default setting smtputf8_enable=no to accept non-ASCII recipient address "??@example.com" from localhost[127.0.0.1]
このアドレスを拒否したくない場合で、かつクライアント側でSMTPUTF8を利用するようアップデートすることが不可能な場合、システム管理者はmain.cfに “smtputf8_enable=no” を追加する。
# postconf smtputf8_enable=no # postfix reload
自サイトでの設定変更
特にコンフィグ変更の必要な変更はなかった。
- mydestinationに “localhost” は追加済み。
- 不完全なドメイン名のアドレスからメール送信することはない。
- chrootが必要なサービスも特になし。
- mynetwork_style=host に設定済み。
- メールの中継は行わないため、relay_domainの設定不要。
- 非ASCIIなドメインの人とはお付き合いなし。
ただし、smtputf8_enableが “yes” の場合にはEAIが必須となるため、EAI (Email Address Internationalization) にチェックをつけてコンフィグし、再インストールした。
# sudo portmaster --force-config mail/postfix-current
インストール後、次のように後方互換モードでの運用を解除。
# sudo postconf compatibility_level=2 # sudo postfix reload
今のところ特に問題なし。