メールサーバーPostfixのインストール

 このところ sendmail のセキュリティホールの問題から欠点を補完したメールサーバーである Postfix や qmail が使用される傾向にある。
 しかし、 Turbolinux では依然 sendmail が標準メールサーバーであるため Postfix などを使用してみたくても rpm ファイルすらない。
 そこで今回、RedHatでも標準メールサーバーになった Postfix をソースからインストールしてみた。

○ソースファイルの入手
 ここから最新のバージョンを入手してくる。
 現時点では、postfix-1.1.11.tar.gz である。まずこれを /tmp などに展開し、make する。

% cd /tmp
% tar xvzf postfix-1.1.11.tar.gz
% cd postfix-1.1.11
% make

必要と思われるコンパイラーやライブラリーはインストールしてあったのだが make には db1 db2 db3 の devel も必要であった。

 次に Postfix が動作するのに必要なユーザーを作成する。

# vipw
postfix:*:12345:12345:Postfix owner:/nonexistent:/sbin/nologin
(ユーザ `postfix' をパスワード・ホームディレクトリ・ログインシェルなしで追加)

# vi /etc/group
postfix:*:12345:
(ユーザ `postfix' 用のグループを作成)

旧 sendmail の停止

通常は次のように旧 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

グループ postdrop の作成

#groupadd postdrop

○Postfix のインストール
# make install

次のような画面が流れます。
[] 以降に文字列がないものはデフォルトで答えました。

Warning: this script replaces existing sendmail or Postfix programs.
Make backups if you want to be able to recover.

In addition to doing a fresh install, this script can change an
existing installation from using a world-writable maildrop to a
group-writable one. It cannot be used to change Postfix queue
file/directory ownership.

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 have a reasonable default value.

install_root - prefix for installed file names (for package building)

tempdir - where to write scratch files

config_directory - directory with Postfix configuration files.
daemon_directory - directory with Postfix daemon programs.
command_directory - directory with Postfix administrative commands.
queue_directory - directory with Postfix queues.

sendmail_path - full pathname of the Postfix sendmail command.
newaliases_path - full pathname of the Postfix newaliases command.
mailq_path - full pathname of the Postfix mailq command.

mail_owner - owner of Postfix queue files.

setgid - groupname, e.g., postdrop (default: no). See INSTALL section 12.
manpages - "no" or path to man tree. Example: /usr/local/man.

install_root: [/]
tempdir: [/tmp/postfix]
config_directory: [/etc/postfix]
daemon_directory: [/usr/sbin]
command_directory: [/usr/sbin]
queue_directory: [/var/spool/postfix]
sendmail_path: [/usr/sbin/sendmail] /usr/libexec/postfix/sendmail
newaliases_path: [/usr/bin/newaliases] /usr/libexec/postfix/newaliases
mailq_path: [/usr/bin/mailq] /usr/libexec/postfix/mailq
mail_owner: [postfix]
setgid: [postdrop]
manpages: [/usr/local/man]

 ファイルをコピーするコマンドが画面上に流れればインストールが終了する。
Postfix の設定

# cd /etc/postfix
# cp main.cf main.cf.org
# vi main.cf
#(必ず設定するのは以下の項目)
$myhostname = mx.kinashi.instat.ne.jp
myorigin = $myhostname
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mail_spool_directory = /var/spool/mail
mynetworks_style = subnet
#(これまで通りに mynetworks を記述することもできます)
# mynetworks = XXX.XXX.XXX.XXX/YY, 127.0.0.0/8 # ネットワークアドレスを書く。
#(設定によっては次の項目も必要です)
default_privs = username
allow_mail_to_commands = alias,forward,include
relayhost = mail.host.domain

/etc/aliases の作成

#cd /etc/postfix
#cp aliases ../
#/usr/libexec/postfix/newaliases

コマンドラインの mail コマンドを使用するには以下のシンボリックリンクが必要か?
#cd /usr/sbin
#ln -s /usr/libexec/postfix/sendmail sendmail

○起 動
#/usr/sbin/postfix start

○確 認
 プロバイダーのメールBoxとの間でメールの送受信をして確認。iptables によるフィルターがかかっていたりして最初は受信ができなかった。port25 を開いてOK