Postfixのぺーじ | ||
− 2.1.5 インストール記録 | ||
更新: 2005年2月19日 |
ホーム >オリジナルドキュメント >2.1.5 インストール記録
/tmp/postfix にソースのtar ballがあるものとします。
また、#はスーパーユーザでの実行をあらわし、%は一般ユーザでの実行を
あらわします。シェルはcsh系を仮定してるので、bsh系の方は読み替えて下さい。
以下の例では、設定ファイルは /etc/postfix に、実行ファイル類は /usr/postfix
以下にインストールしました。
この記録はバージョン2.1.5のものです。インストールはFreeBSD 5.3Rで 行ないました。
コンパイルも含めて、問題が生じなければsendmailからの移行時間は およそ30分です。sendmailをデーモンモードで起動していれば、メールサービスの 停止はほんの数秒です。
Postfixのパッケージが第三者によって加工されていない、正当なものか どうかをPGP/GnuPGを使ってチェックします。
これまでにPostfixの作者、Wietse Venema氏のPGP公開鍵をPGPまたは GnuPGのkey ringに加えていなければ、まずは氏のPGP公開鍵を入手します。 パッケージの改ざんを検出するためには、たとえば Wietseさんのホームページなど、 Postfixのパッケージとは別の場所から入手する方がよいでしょう。
入手した公開鍵は、次のようにインポートします:
% pgp -ka wietse.pgp (PGPの場合) % gpg --import wietse.pgp (GnuPGの場合)
公開鍵をインポートしたら、ソースパッケージとシグニチャ (postfix-2.1.5.tar.gzとpostfix-2.1.5.tar.gz.sig) を同じディレクトリに置き、 以下のコマンドを実行して正しいファイルであることを確認します:
[pgpの場合] % pgp postfix-2.1.5.tar.gz.sig Pretty Good Privacy(tm) Version 6.5.8 Internal development version only - not for general release. (c) 1999 Network Associates Inc. Export of this software may be restricted by the U.S. government. File 'postfix-2.1.5.tar.gz.sig' has signature, but with no text. Text is assumed to be in file 'postfix-2.1.5.tar.gz'. Good signature from user "wietse venema <wietse@wzv.win.tue.nl>". <この行があればOK Signature made 2004/09/15 15:36 GMT [gpgの場合] %gpg postfix-2.1.5.tar.gz.sig gpg: Signature made Thu Sep 16 00:36:03 2004 JST using RSA key ID D5327CB9 gpg: Good signature from "wietse venema <wietse@porcupine.org>" <この行があればOK gpg: aka "wietse venema <wietse@wzv.win.tue.nl>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 78 96 4A 4D F0 F0 D1 3C 45 E9 03 FC 17 67 DC D8
お好みの場所でtar ballを展開して、コンパイルします。SASLサポートや MySQL/PostgreSQLサポートなどはmake時にオプションが必要です。詳細は対応する READMEファイルを参照してください。
% setenv SRCDIR /tmp/postfix % cd ${SRCDIR} % tar xvzf postfix-2.1.5.tar.gz % cd postfix-2.1.5 % make
% su # pw groupadd postfix # pw groupadd postdrop (ユーザ `postfix' 用、およびmaildrop用のグループを作成) # pw useradd postfix -d /nonexistent -g postfix -s /sbin/nologin (ユーザ `postfix' をパスワード・ホームディレクトリ・ログインシェルなしで追加) # vi /etc/aliases postfix: root (postfix 宛のメールを root に向ける)
お使いのシステムにあわせてpw, useradd, adduser, vipwなどでグループ・ ユーザを作成してください。
通常は次のように旧sendmailを別名にして、保護しておきます。 /etc/inetd.conf でsendmailを叩いている場合には、その記述をコメントアウトして、 kill -HUP を送ります。その場合は、ここからpostfixを起動するまでの 間メールの送受信は できません。
# mv /usr/sbin/sendmail /usr/sbin/sendmail.OFF # mv /usr/bin/newaliases /usr/bin/newaliases.OFF # mv /usr/bin/mailq /usr/bin/mailq.OFF # chmod 755 /usr/sbin/sendmail.OFF /usr/bin/newaliases.OFF \ /usr/bin/mailq.OFF
なお、mailq.OFF や newaliases.OFF を実行しても 機能しないことが多いので、Sendmailでキューをフラッシュするときには sendmail -q を使ってください。Postfix newaliasesはSendmailの ものと互換性があります。
ただし、今回は新規にインストールしたFreeBSDマシンにインストールを 行なったため、上記の操作は行ないませんでした。最近のFreeBSDではsendmail などのコマンドがmailwrapperのリンクになっており、実際には /etc/mail/mailer.conf に記述したコマンドが実行されます。そこで、Postfix sendmailなどのコマンドはFreeBSDに入っているsendmailにならって、 /usr/libexec/postfix 以下にインストールすることにしました。 (FreeBSD 以外ではデフォルトのディレクトリにインストールする方が 良いでしょう。)
# make install 次のような画面が流れます (和訳を追加しています)。 [] 以降に文字列がないものはデフォルトで答えました。 /bin/sh postfix-install (前略) Warning: if you use this script to install Postfix locally, this script will replace existing sendmail or Postfix programs. Make backups if you want to be able to recover. 警告: ローカルにPostfixをインストールするのにこのスクリプトを使うと、 すでに存在しているsendmailやPostfixプログラムが置き換えられてしまいます。 復旧できるようにしたければバックアップを取ってください。 Before installing files, this script prompts you for some definitions. Most definitions will be remembered, so you have to specify them only once. All definitions should have a reasonable default value. ファイルをインストールする前に、このスクリプトはいくつかの設定の入力を求めます。 多くの設定は記録されるため、指定しなければならないのは一度だけです。設定には すべて妥当なデフォルト値があります。 Please specify the prefix for installed file names. Specify this ONLY if you are building ready-to-install packages for distribution to other machines. install_root: [/] インストールされるファイル名につけられるプレフィックスを指定してください。 これは他のマシンに配布するインストール準備済みパッケージを構築する際「のみ」 指定してください。 install_root: [/] Please specify a directory for scratch files while installing Postfix. You must have write permission in this directory. tempdir: [/home/ike/src/mail/postfix/postfix-2.1.5] Postfixをインストールする間の一時ファイルを置くディレクトリを指定してください。 このディレクトリには書き込み権限がなければいけません。 tempdir: [/tmp/postfix-2.1.5] Please specify the final destination directory for installed Postfix configuration files. config_directory: [/etc/postfix] インストールされるPostfix設定ファイルを最終的に置くディレクトリを指定してください。 config_directory: [/etc/postfix] Please specify the final destination directory for installed Postfix daemon programs. This directory should not be in the command search path of any users. daemon_directory: [/usr/libexec/postfix] インストールされるPostfixデーモンプログラムを最終的に置くディレクトリを指定して ください。このディレクトリはどのユーザのコマンドサーチパスにも入らないように すべきです。 daemon_directory: [/usr/libexec/postfix] Please specify the final destination directory for installed Postfix administrative commands. This directory should be in the command search path of adminstrative users. command_directory: [/usr/sbin] /usr/local/sbin インストールされたPostfix管理コマンドを最終的に置くディレクトリを指定してください。 このディレクトリは管理者ユーザのコマンドサーチパスに入っているべきです。 command_directory: [/usr/sbin] Please specify the final destination directory for Postfix queues. queue_directory: [/var/spool/postfix] Postfixキューを最終的に置くディレクトリを指定してください。 queue_directory: [/var/spool/postfix] Please specify the final destination pathname for the installed Postfix sendmail command. This is the Sendmail-compatible mail posting interface. sendmail_path: [/usr/sbin/sendmail] /usr/libexec/postfix/sendmail インストールされるPostfix sendmailコマンドを最終的に置くパス名を指定してください。 これはSendmail互換のメール投函インターフェースです。 sendmail_path: [/usr/sbin/sendmail] /usr/libexec/postfix/sendmail Please specify the final destination pathname for the installed Postfix newaliases command. This is the Sendmail-compatible command to build alias databases for the Postfix local delivery agent. newaliases_path: [/usr/bin/newaliases] /usr/libexec/postfix/newaliases インストールされるPostfix newaliasesコマンドを最終的に置くパス名を指定してください。 これはエイリアスデータベースを構築するためのSendmail互換コマンドです。 newaliases_path: [/usr/bin/newaliases] /usr/libexec/postfix/newaliases Please specify the final destination pathname for the installed Postfix mailq command. This is the Sendmail-compatible mail queue listing command. mailq_path: [/usr/bin/mailq] /usr/libexec/postfix/mailq インストールされるPostfix mailqコマンドを最終的に置くパス名を指定してください。 これはメールキューをリストアップするSendmail互換コマンドです。 mailq_path: [/usr/bin/mailq] /usr/libexec/postfix/mailq Please specify the owner of the Postfix queue. Specify an account with numerical user ID and group ID values that are not used by any other accounts on the system. mail_owner: [postfix] Postfixキューの所有者を指定してください。ユーザIDやグループIDの数値がこのシステム 上の他のアカウントによって使われていないアカウントを指定してください。 mail_owner: [postfix] Please specify the group for mail submission and for queue management commands. Specify a group name with a numerical group ID that is not shared with other accounts, not even with the Postfix mail_owner account. You can no longer specify "no" here. setgid_group: [postdrop] メール投函やキュー管理コマンドで使われるグループを指定してください。グループIDの 数値が、Postfix mail_ownerアカウントを含む他のアカウントによって共有されていない グループ名を指定してください。 setgid_group: [postdrop] Please specify the destination directory for the Postfix HTML files. Specify "no" if you do not want to install these files. html_directory: [no] Postfix HTMLファイルを置くディレクトリを指定してください。これらのファイルを インストールしたくなければ "no" を指定してください。 html_directory: [no] Please specify the destination directory for the Postfix on-line manual pages. You can no longer specify "no" here. manpage_directory: [/usr/local/man] Postfixオンラインマニュアルページを置くディレクトリを指定してください。 ここでは "no" を指定することはできません。 manpage_directory: [/usr/local/man] Please specify the destination directory for the Postfix README files. Specify "no" if you do not want to install these files. readme_directory: [no] Postfix READMEファイルを置くディレクトリを指定してください。これらのファイルを インストールしたくなければ "no" を指定してください。 readme_directory: [no] (後略)
上にも書いたように、/etc/mailer.conf を次のように修正します。 (FreeBSD 特有です。他のシステムでは必要ありません。)
sendmail /usr/libexec/postfix/sendmail send-mail /usr/libexec/postfix/sendmail mailq /usr/libexec/postfix/sendmail newaliases /usr/libexec/postfix/sendmail
# cd /etc/postfix # cp main.cf main.cf.org # vi main.cf #(必ず設定するのは以下の項目) myorigin = $myhostname inet_interfaces = all mydestination = $myhostname, localhost.$mydomain alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mail_spool_directory = /var/mail mynetworks_style = subnet #(これまで通りに mynetworks を記述することもできます。) # mynetworks = XXX.XXX.XXX.XXX/YY, 127.0.0.0/8 # ネットワークアドレスを書く。 #(設定によっては次の項目も必要です) allow_mail_to_commands = alias,forward,include relayhost = mail.example.com
これ以外の設定は、以上の設定で問題なく動くことを確認してから1つずつ 変更してください。
# kill -TERM 'sendmail-PID' # /usr/postfix/bin/postfix start