メールサーバー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