Postfix の NEXTSTEP3.3J へのインストール

Last modified: Tue Oct 28 18:03:58 JST 2003

注意事項

2001年 8 月以降、私が自由に触ることのできる NEXTSTEP 稼働 マシンがなくなりました。というわけで、このページは、 以降の更新はできなくなりました。すみません。。。

Postfix について

NEXTSTEP に依らない一般的なことを、 こちらに書いた。

NEXTSTEP 版の特徴、諸注意等

特徴

NEXTSTEP 上で make した Postfix は、 NetInfo, NIS, dbm によって与えられる lookup テーブルを 参照することができる。 たとえば、aliases はデフォルト値として NetInfo の aliases が 参照される。
new Berkeley DB を使いたい場合は、compile 時のオプションで 指定する必要がある。(私は試してはいない。)
Postfix には正規表現を用いたテーブル参照機能があるが、 これを有効にするためには POSIX の正規表現ライブラリ、 あるいは PCRE (Perl-compatible regular expression library. exim の作者が作っている。) が必要である。 NeXT では前者を利用することができないので、私は PCRE を利用している。

現在判明している不具合

20010228-pl02
postfix stop 時に master daemon が signal 10 (buserror) を吐いたまま終了しない。 smtpd を動かしていた時は、SMTP が使えないにも 関わらず smtp のポートが開いたままになる。
19991231-pl08, 09, 10
postfix stop 時に master daemon が signal 10 (buserror) を吐いたまま終了しないことがある。 (20010228-pl01参照)
また、 make する際に パッチをあてる必要がある。
19991227 より前の版
SPAM リレー対策(正確には、source routing 対策)がなされていない。 (詳細、対応策は こちら。)
その他
Cyrus SASL が static なライブラリに対応しておらず、 compile できないことが今抱えている 最も重大な問題である。(cyrus SASL の TODO リストには static 対応 が挙げられてはいる。)

Postfix のインストール(例)

PCRE (Perl-compatible regular expression library) の make

PCRE の最新版は ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ で配布されている。 今回は、現時点での最新版である pcre-3.4.tar.gz を用いた。
make 手順は以下の通り。

  1. % cd ~/work
    % gnutar xzvf pcre-3.4.tar.gz
    % cd pcre-3.4
    % ./configure
  2. 必要であれば config.status を編集した後、
    % ./config.status (例えば、今回は MAB を作るために CFLAGS を -g -O2 -arch m68k -arch i486 に変更する。)
  3. % make

make install する必要はない。

postfix-20010228-pl02 のビルド

ここでは MAB を作る。 /usr/nje/bin/awk では make ができなかったので、代わりに、手元の 環境にインストールされていた Gnu Awk (gawk) 2.15, patchlevel 6 を 使用した。(他にも素のままの NEXTSTEP に入っていないツールを 使っているかもしれない。)ビルドの手順は以下の通り。
  1. % cd ~/work
    % gnutar xzvf postfix-20010228-pl02.tar.gz
    % cd postfix-20010228-pl02
  2. % make makefiles 'CCARGS=-DHAS_PCRE -I../../../pcre-3.4 -arch m68k -arch i486' 'AUXLIBS=../../../pcre-3.4/.libs/libpcre.a' AWK=gawk
  3. % make
  4. % cd bin ; strip * ; cd ../libexc ; strip *
サイズが 20MB を越えるので、ここでは strip する。4 MB ほどになる。 それでも大きい場合は MAB を作るのをやめるか、 lipo でシェイプアップする。

postfix-20010228-pl02 のインストール

  1. # mv /usr/lib/sendmail /usr/lib/sendmail.OFF
    # mv /usr/ucb/newaliases /usr/lib/newaliases.OFF
    # mv /usr/ucb/mailq /usr/lib/mailq.OFF
  2. passwd, aliases, group へ postfix を追加
  3. メールキューの実体が保存される maildrop ディレクトリを 誰でも書き込み可能にする方針を選択する。(または、 setgid プログラムの利用を選択する。詳細は INSTALL を 参照のこと。私はスプールが world writable でも構わないので、 setgid は利用しないことにした。)
  4. # sh INSTALL.sh
    [...]
    config_directory: [/etc/postfix]
    daemon_directory: [/usr/lib/postfix]
    command_directory: [/usr/bin]
    queue_directory: [/usr/spool/postfix]
    sendmail_path: [/usr/lib/sendmail]
    newaliases_path: [/usr/ucb/newaliases]
    mailq_path: [/usr/ucb/mailq]
    owner: [postfix]
    setgid: [no]
    manpages: [no]
    [...黒NeXT では、INSTALL.sh の動作完了までに しばらく時間がかかるので、気長に待つこと。]
私はマニュアルページを入れていない。postfix の マニュアルは WWW browser で参照できるからである。

postfix-20010228-pl02 の初期設定

設定例

あるメールハブホストの main.cf。(postconf -n した結果をそのまま。何の説明もなく申し訳ない。)
alias_maps = netinfo:/aliases
allow_mail_to_commands = forward,alias,include
biff = no
command_directory = /usr/bin
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
default_destination_concurrency_limit = 10
default_privs = nobody
default_transport = smtp
delay_warning_time = 4
forward_path = /usr/spool/forward/$user
inet_interfaces = all
local_destination_concurrency_limit = 2
mail_owner = postfix
mail_spool_directory = /usr/spool/mail
maps_rbl_domains = rbl.maps.vix.com,dul.maps.vix.com
maximal_queue_lifetime = 7
mydestination = $myhostname, localhost.$mydomain
mydomain = bbb.jp
myhostname = aaa.bbb.jp
mynetworks = xxx.yyy.zzz.0/www, 127.0.0.0/24
myorigin = $myhostname
program_directory = /some/where/postfix/bin
queue_directory = /usr/spool/postfix
smtpd_client_restrictions = reject_maps_rbl
smtpd_helo_required = yes
smtpd_recipient_restrictions = pcre:/etc/postfix/header_check_reg,permit_mynetworks,check_relay_domains

chroot 環境下での運用

chroot そのものは問題なく動作している。 設定の際には、$postfix/examples/chroot-setuplog/NEXTSTEP3 を 参照すること。
murase@tunagu.gr.jp