このサイトは、2011年6月まで http://wiredvision.jp/ で公開されていたWIRED VISIONのコンテンツをアーカイブとして公開しているサイトです。

Web2.0時代の情報発信を考える

時代が要求する情報発信型Webサイト 仮想専用サーバ「SuitePRO V2」が情報発信を加速する

意外に簡単!SMTPサーバの構築

2008年4月11日

  • 前のページ
  • 2/2

SMTPサーバ『Postfix』を設定しよう

それではSMTPサーバとして『Postfix』を使うことにし、その設定をしてみよう。PostfixはSuitePRO V2に標準でインストールされているが、初期設定ではSMTPサーバとしてsendmailが動作するよう設定されているので切り替えが必要だ。

切り替えといっても、system-switch-mailというコマンドが用意されているので、root権限でそれを実行する。

[root@ns ~]#  system-switch-mail

コマンドを実行すると選択画面が表示されるので、Postfixを選んで[OK]とする。MTAが切り替わったというメッセージが表示されるはずだ。

次に、Postfixの設定ファイル「/etc/postfix/main.cf」を編集するが、その前にこのファイルを「/etc/postfix/main.cf.original」のような名前でコピーしバックアップをとっておこう。

以下では、変更する必要がある項目のみ示すので、viなどで該当個所を変更してほしい。例では、 myhostnameにはホスト名としてns.example.comを指定し、mydomainにはドメイン名としてexample.comを指定するが、自分が使いたいドメイン名に読み替えてほしい。仮想専用サーバであるSuitePRO V2ではIPエイリアス(VPNのネットワークハードウェアを仮想的に使用する方法)が使われているため、それに対応するためinet_interfacesではallを指定し、localhostの指定はコメントアウトする。また、mynetworks項目でのネットワークアドレス設定はIPアドレスを指定する。

(略)
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = ns.example.com
(略)
#mydomain = domain.tld
mydomain = example.com
(略)
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
(略)
mynetworks = 192.0.2.5/32, 127.0.0.0/8
(略)

末尾近くにあるhome_mailboxではメールボックスの形式を指定することになる。初期値は「Mailbox」で「/var /spool/mail」へメールが保存されるようになっている。ここではユーザのホームディレクトリへ保存されるように「Maildir/」を指定する。また、SMTP-AUTHへ対応し、認証された場合のみメール送信ができるようにsmtpd_sasl_auth_enable、 broken_sasl_auth_clients、smtpd_recipient_restrictionsについて設定をする。また、サーバの運用を安定させるためには、default_process_limitでプロセス制限をかけておくと良いだろう。

(略)
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,
      reject_unauth_destination
default_process_limit = 10

設定が終了したら、postconfコマンドで現在の設定を確認する。設定を変更したり、何か動作がおかしかったりした場合は、このコマンドを使って確認をするのが良い。全設定をみたい場合は -n オプションは必要ない。

[root@ns ~]# postconf -n -c /etc/postfix | more
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_mail_to_commands = alias,forward,include
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
(略)

確認が終わったら、serviceコマンドを使ってPostfixを起動する。psコマンドで見たときに、「/usr/libexec/postfix/master」「pickup」「qmgr」といったコマンドが動作していれば良い。

[root@ns ~]# service postfix start
Starting postfix:                                          [  OK  ]
[root@ns ~]# ps ax | more
  PID TTY      STAT   TIME COMMAND
(略)
19103 ?        Ss     0:00 /usr/libexec/postfix/master
19106 ?        S      0:00 pickup -l -t fifo -u
19107 ?        S      0:00 qmgr -l -t fifo -u
(略)

さらに念のため、メールのログファイルである「/var/log/maillog」を開いて、エラーがでていないことをチェックしておく。エラーがなく次のように2行だけ出力されていれば良い。

[root@ns ~]# lv /var/log/maillog
(略)
Feb 16 08:12:35 ns postfix/postfix-script: starting the Postfix mail system
Feb 16 08:12:35 ns postfix/master[1378]: daemon started -- version 2.2.10, configuration /etc/postfix

次に、SMTP-AUTHを有効にするために、saslauthdを起動するが、ここで、注意事項がある。SSHのパスワード認証によりユーザ認証をしている場合は公開鍵方式の認証へ切り替えよう。また、アクセスできるネットワークも制限しておくことを忘れないようにしよう。なぜなら、ここで紹介しているSMTP-AUTHの設定では、平文のパスワードがネットワーク上を流れるため、これを盗聴された場合の危険性が高くなるためだ。SMTP-AUTHで暗号化されたパスワードを使う方法もあるが、次に紹介するメールの取得に最もよく使われているPOP3でも、同様に認証用に平文のパスワードが流れてしまう。こういったことを考慮すると、メールだけを利用するユーザはサーバへはログインできないような設定で登録することになる。

[root@ns ~]# service saslauthd start
Starting saslauthd:                                        [  OK  ]

続いて動作確認のためにmailコマンドを実行する。メールが送られると「/root/Maildir/new」のディレクトリにメールが届いているはずである。catコマンドで中を確認しよう。

[root@ns ~]# echo "This is a test mail." | mail -s "Test" root@ns.example.com
[root@ns ~]# ls -l /root/Maildir/new/
total 4
-rw-------  1 root root 396  Feb 16 15:23
      1139984603.V3a3aI348fe.ns.example.com
[root@ns ~]# cat /root/Maildir/new/1139984603.V3a3aI348fe.ns.example.com
Return-Path: 
X-Original-To: root@ns.example.com
Delivered-To: root@ns.example.com
Received: by ns.example.com (Postfix, from userid 0)
        id 1BE9F8016A; Wed, 16 Feb 2008 15:23:23 +0900 (JST)
To: root@ns.example.com
Subject: Test
Message-Id: <20080216062323.1BE9F8016A@ns.example.com>
Date: Wed, 16 Feb 2008 15:23:23 +0900 (JST)
From: root@ns.example.com (root)
 
This is a test mail.

SMTPサーバを立ち上げるのはそれほど難しいことではないことが分かってもらえただろうか? 次回の記事では、メールサーバの構築について引き続き説明し、POPサーバの立ち上げと複数ドメインへの対応について触れる予定だ。

  • 前のページ
  • 2/2
フィードを登録する

前の記事

次の記事

Web2.0時代の情報発信を考える

増田(maskin)真樹

IT/NETリサーチャーを経て、ライターとして独立。多数の媒体で執筆活動後、米国シリコンバレーでガレージ起業に参画。帰国後、関心空間、nileport、ソニーblog、@cosmeなど多数のサービスに関与。