現象:
メールログに以下のようなワーニングが出てPostfixが起動しない。
Jul 24 18:04:43 gw4 postfix/pickup[6566]: 267F28B4E8: uid=0 from=<root>
Jul 24 18:04:43 gw4 postfix/cleanup[6571]: 267F28B4E8: message-id=<20060724090443.267F28B4E8@gw4.xxxxxxxxxxxxx.co.jp>
Jul 24 18:04:43 gw4 postfix/qmgr[6567]: 267F28B4E8: from=<root@gw4.xxxxxxxxxxxxx.co.jp>, size=329, nrcpt=1 (queue active)
Jul 24 18:04:43 gw4 postfix/smtp[6573]: fatal: unknown service: smtp/tcp
Jul 24 18:04:44 gw4 postfix/qmgr[6567]: warning: premature end-of-input on private/smtp socket while reading input attribute name
Jul 24 18:04:44 gw4 postfix/qmgr[6567]: warning: private/smtp socket: malformed response
Jul 24 18:04:44 gw4 postfix/qmgr[6567]: warning: transport smtp failure — see a previous warning/fatal/panic logfile record for the problem description
Jul 24 18:04:44 gw4 postfix/master[6565]: warning: process /usr/lib/postfix/smtp pid 6573 exit status 1
Jul 24 18:04:44 gw4 postfix/master[6565]: warning: /usr/lib/postfix/smtp: bad command startup –throttling
1.エラーの原因
この中で “fatal: unknown service: smtp/tcp” が意味するのは?
Postfix /etc/postfix/master.cf ファイルが Postfix SMTP クライアントが chroot 環境内で動くことを表している。しかし、このモードでの操作に必要なファイルが /var/spool/postfix 以下にインストールされていない。chroot 操作はシステムへの侵入者に対する重要な壁を作る。最近は、セキュリティを考えてchroot内(砂場)で動くサービスが多くなってきた。
2.対策
2つの対策がある。
1) chrootを使用禁止にする
/etc/postfix/master.cf で chroot を使用できなくする(そして終わったら postfix reload を送ります)。
2) chrootで動かすようにする
chroot 操作に必要なファイルをインストールする。方法は配布ソースコードの examples/chroot-setup ディレクトリ内にある。
今回は、1)の方法で対策した。
以下のように、master.cfファイルのsmtpセクションのchrootを n にすればよい。修正後、postfixをreloadする。
# vi /etc/postfix/master.cf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
#submission inet n – – – – smtpd
# -o smtpd_etrn_restrictions=reject
#628 inet n – – – – qmqpd
pickup fifo n - - 60 1 pickup
cleanup unix n - – - 0 cleanup
qmgr fifo n - - 300 1 qmgr
#qmgr fifo n – – 300 1 oqmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix – – – – – smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - - - - showq
error unix - - - - - error
local unix - n n - - local
virtual unix - n n - – virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
以上
コメント