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 手順は以下の通り。
- % cd ~/work
% gnutar xzvf pcre-3.4.tar.gz
% cd pcre-3.4
% ./configure
- 必要であれば config.status を編集した後、
% ./config.status
(例えば、今回は MAB を作るために
CFLAGS を -g -O2 -arch m68k -arch i486 に変更する。)
- % make
make install する必要はない。
postfix-20010228-pl02 のビルド
ここでは MAB を作る。
/usr/nje/bin/awk では make ができなかったので、代わりに、手元の
環境にインストールされていた Gnu Awk (gawk) 2.15, patchlevel 6 を
使用した。(他にも素のままの NEXTSTEP に入っていないツールを
使っているかもしれない。)ビルドの手順は以下の通り。
- % cd ~/work
% gnutar xzvf postfix-20010228-pl02.tar.gz
% cd postfix-20010228-pl02
- % make makefiles 'CCARGS=-DHAS_PCRE -I../../../pcre-3.4 -arch m68k -arch i486' 'AUXLIBS=../../../pcre-3.4/.libs/libpcre.a' AWK=gawk
- % make
- % cd bin ; strip * ; cd ../libexc ; strip *
サイズが 20MB を越えるので、ここでは strip する。4 MB ほどになる。
それでも大きい場合は MAB を作るのをやめるか、 lipo でシェイプアップする。
postfix-20010228-pl02 のインストール
- # mv /usr/lib/sendmail /usr/lib/sendmail.OFF
# mv /usr/ucb/newaliases /usr/lib/newaliases.OFF
# mv /usr/ucb/mailq /usr/lib/mailq.OFF
- passwd, aliases, group へ postfix を追加
- メールキューの実体が保存される maildrop ディレクトリを
誰でも書き込み可能にする方針を選択する。(または、
setgid プログラムの利用を選択する。詳細は INSTALL を
参照のこと。私はスプールが world writable でも構わないので、
setgid は利用しないことにした。)
- # 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