メールサーバpostfixをインストールしてみる

メールサーバpostfixをインストールしてみる


 postfixというLinux用メールサーバソフトをインストールしてみることにした。
 Linuxといえば、sendmailという代表的なメールサーバソフトがあるというのに、何の用があってそんなものをインストールするのか。実は、sendmailの設定に挫折して、どこをどういじっていいかわからなくなってしまったからだ。
 postfixは、sendmailの後発だけあって、管理が簡単で動作が速い、というのがウリのようだ。管理が簡単、というところに私は飛びついたというわけだ。では、インストールしてみよう。
 環境は、RedHat Linux ES4だ。

ダウンロード

 Postfix公式サイトの左から、「Download(source)」をクリック。

 何やら国名がずらずらと現れる。世界で利用されているメジャーなソフトだから、ダウンロードが集中してサイトがパンクしないようにミラーサイトがたくさんあるというわけだ。
 とりあえず近い場所の方がダウンロード速度が速いんじゃないかということで、私は「Japan, Ibaraki」を選んでみた。


▲いろいろ出てきた
 なにやらごちゃごちゃと文字が現れる。とりあえず、ページの一番上にある「stable release」の「Source code」をクリック。stable releaseというのは「安定版」というような意味だ。
 postfix2.5.0.targzがダウンロードできた。

インストール

 ダウンロードはパソコン上でおこなっただろうか?だとすると、このファイルをサーバ側にFTP等で転送する必要がある。
 パソコン用のFTPツール(私はFFFTPを使用した)で、サーバ側の適当なフォルダ(私は/home/admin/workというフォルダを作成してみた)に転送する。
 転送したら以下のコマンドを実行。

cd /home/admin/work

gunzip postfix2.5.0.targz

tar xvf postfix2.5.0.tar

 「postfix2.5.0」というフォルダが作られ、中にたくさんファイルができると思う。
 ここまでは一般ユーザでOKだったのだが、以降はrootでの作業になる。まずは、postfix用のユーザやグループを作成するのだ。

su -

groupadd -g 300 postfix

groupadd -g 301 postdrop

useradd -u 300 -g postfix postfix

 これで、グループ「postfix(グループID 300)」「postdrop(グループID 300)」と、ユーザ「postfix(ユーザID 300)」が作成される。なお、300とか301とかは、他のユーザIDとバッティングしなければ適当に決めてOKだ。まあ会社なんかだと、もしかしたらIDを決めるのにもある程度規則があるのかも知れない。
 では、インストールしよう。

cd /home/admin/work/postfix2.5.0

make

 ソースファイルのコンパイルが始まる。特にエラーがなければ、続けて以下を入力。
make install
 対話形式で入力を求められるが、すべてそのままエンターキーを押す(デフォルト指定)
 

    Warning: if you use this script to install Postfix locally,

    this script will replace existing sendmail or Postfix programs.

    Make backups if you want to be able to recover.

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

Please specify the prefix for installed file names. Specify this ONLY

if you are building ready-to-install packages for distribution to other

machines.

install_root: [/]

Please specify a directory for scratch files while installing Postfix. You

must have write permission in this directory.

tempdir: [/home/admin/work/postfix-2.5.0]

Please specify the final destination directory for installed Postfix

configuration files.

config_directory: [/etc/postfix]

Please specify the final destination directory for installed Postfix

administrative commands. This directory should be in the command search

path of adminstrative users.

command_directory: [/usr/sbin]

Please specify the final destination directory for installed Postfix

daemon programs. This directory should not be in the command search path

of any users.

daemon_directory: [/usr/libexec/postfix]

Please specify the final destination directory for Postfix-writable

data files such as caches or random numbers. This directory should not

be shared with non-Postfix software.

data_directory: [/var/lib/postfix]

Please specify the destination directory for the Postfix HTML

files. Specify "no" if you do not want to install these files.

html_directory: [no]

Please specify the owner of the Postfix queue. Specify an account with

numerical user ID and group ID values that are not used by any other

accounts on the system.

mail_owner: [postfix]

Please specify the final destination pathname for the installed Postfix

mailq command. This is the Sendmail-compatible mail queue listing command.

mailq_path: [/usr/bin/mailq]

Please specify the destination directory for the Postfix on-line manual

pages. You can no longer specify "no" here.

manpage_directory: [/usr/local/man]

Please specify the final destination pathname for the installed Postfix

newaliases command. This is the Sendmail-compatible command to build

alias databases for the Postfix local delivery agent.

newaliases_path: [/usr/bin/newaliases]

Please specify the final destination directory for Postfix queues.

queue_directory: [/var/spool/postfix]

Please specify the destination directory for the Postfix README

files. Specify "no" if you do not want to install these files.

readme_directory: [no]

Please specify the final destination pathname for the installed Postfix

sendmail command. This is the Sendmail-compatible mail posting interface.

sendmail_path: [/usr/sbin/sendmail]

Please specify the group for mail submission and for queue management

commands. Specify a group name with a numerical group ID that is

not shared with other accounts, not even with the Postfix mail_owner

account. You can no longer specify "no" here.

setgid_group: [postdrop]

  これでインストールは完了だ。

設定

 ここでも最低限の設定のみ行っておこう。
 viエディタなどで、/etc/postfix/main.cfを開く。

# INTERNET HOST AND DOMAIN NAMES

#

# The myhostname parameter specifies the internet hostname of this

# mail system. The default is to use the fully-qualified domain name

# from gethostname(). $myhostname is used as a default value for many

# other configuration parameters.

#

#myhostname = host.domain.tld

#myhostname = virtual.domain.tld

myhostname = mail.xxx.co.jp

# The mydomain parameter specifies the local internet domain name.

# The default is to use $myhostname minus the first component.

# $mydomain is used as a default value for many other configuration

# parameters.

#

mydomain = xxx.co.jp

 とりあえずこの二か所だけ。メールサーバのドメインとホスト名を変更しておこう。

起動

 私はpostfixの起動前に、とりあえずsendmailを止めておいた。(/etc/init.d/sendmail stop )これが必須かどうかはわからないが、まあ、今後はpostfixがsendmailの代わりをするわけだから、止めちゃってもかまわないだろう。
 起動コマンドは以下の通り。
 /usr/sbin/postfix start
  うまく起動できたかどうかは、以下のコマンドで確認できるとおもう。

 ps -ef|grep post

root      1395 31279  0 13:50 pts/0    00:00:00 grep post

root     27639     1  0 12:48 ?        00:00:00 /usr/libexec/postfix/master

postfix  27640 27639  0 12:48 ?        00:00:00 qmgr -l -t fifo -u

postfix  27641 27639  0 12:48 ?        00:00:00 pickup -l -t fifo -u

 停止は、
 /usr/sbin/postfix stop