Plesk Obsidianリリース記念!Plesk最大7カ月無料キャンペーン

2011/11/8

【実証】メールサーバーの構築AtoZ (第1章)

GMOクラウド株式会社の芦田です。今日は、メールサーバー構築に関する記事をお届けします! クラウド上にある仮想サーバーをメールサーバーとして利用したいという話をよく聞きます。運用開始後の利用ユーザーの増加や、ディスク容量の不足といった問題に対処しやすいというのがその主な理由です。そこで、今回は「GMOクラウドPublic」の仮想サーバーを使ってメールサーバーを構築する方法を紹介します。説明に使う環境は、「CentOS 5.5 x86」で構築した仮想サーバーとしますが、CentOS環境であれば他のテンプレートでも同様に設定できるはずです。
「CentOS 5.5 x86」テンプレートで構築した仮想サーバーには、あらかじめsendmailが設定済みの状態でインストールされていますが、今回はこれを使わずに、送信メールサーバー(SMTP)としてPostfixを、受信メールサーバー(POP/IMAP)としてDovecotをインストールしてみます。なお、 LAMPP環境のテンプレートの場合は、メールサーバーとして「qmail」がインストールされています。しかし、この場合のqmail環境はサーバー管理 ツールのPLESKで利用するための構成となっており、設定内容やファイルの場所などが通常とは異なるため注意が必要です。PLESKによるメールサー バーの導入方法は、クラウドポータル(※ 「GMOクラウド Public」の管理ツール)のサポート情報にある「PLESKガイド」を参考にしてください。

(1) 送信メールサーバーの構築

インストール作業は、基本的に仮想サーバーのコンソール上で行います。クラウドコンソールに用意された仮想サーバーコンソールか、または任意のsshクライアントソフトを使って仮想サーバーにログインして作業してください。

1.1 sendmail/qmail の無効化

まずデフォルトではsendmailが自動的に起動するようになっているので、次のコマンドでこれを停止させて自動起動を無効にしておきましょう。
# /etc/rc.d/init.d/sendmail stop
# /sbin/chkconfig sendmail off
プロンプト1.1.1
qmailがインストールされている場合は、それも無効にしておきます。
# /etc/rc.d/init.d/qmail stop
# /sbin/chkconfig qmal off
プロンプト1.1.2

1.2 Postfix のインストール

続いてPostfixをインストールします。Postfixはパッケージ管理システムのyumを利用して、次のコマンドでインストールできます。
# yum -y install postfix
プロンプト1.2.1

1.3 Postfix の設定

インストールに成功したら、設定ファイルを編集します。対象の設定ファイルは「/etc/postfix/main.cf」です。様々な設定項目がありますが、今回修正が必要となる箇所だけを抜き出すと以下のようになります。各設定項目の意味は表1.3.2にまとめました。myhostnameとmydomainには仮想サーバーのホスト名とドメイン名をセットしてください。
リスト1.3.1
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/

表1.3.2項目

意味

myhostname メールサーバーのホスト名
mydomain メールサーバーが所属するドメイン名
myorigin ローカルからメールを送信した場合に、送信元メールアドレスとして@以降に付加するドメイン名
inet_interfaces 外部からのメール受信の許可に関する設定
mydestination このホストで受信処理するメールのドメイン名
home_mailbox メールボックスの形式
1.4 各ユーザー用メールボックスの作成

上記のmain.cfの設定では、Postfixが受け取ったメールは各ユーザーのホームディレクトリにあるメールボックスに格納されるようになります。メールボックスは「Maildir」という名前のディレクトリで、その下に一時的にメールが格納される「tmp」、新規メールが格納される「new」、既読メールが格納される「cur」という3つのディレクトリを持つ構造になります。
したがって、既存のユーザー用のメールボックスを作成するには、次のようにユーザーのホームディレクトリにMaildirディレクトリを作成すればいいわけです。rootで作業している場合パーミッションとオーナーの変更を忘れないようにしましょう。

# mkdir -p /home/ユーザー名/Maildir/{cur,new,tmp}
# chmod -R 700 /home/ユーザー名/Maildir
# chown -R ユーザー名:ユーザー名 /home/ユーザー名/Maildir
プロンプト1.4.1
新しく追加するユーザーについては、次のように/etc/skelディレクトリの中にMaildirディレクトリを用意しておくことで、useraddなどのコマンドでユーザーを追加した際に自動的にメールボックスも作られることになります。
# mkdir -p /etc/skel/Maildir/{cur,new,tmp}
# chmod -R 700 /etc/skel/Maildir
プロンプト1.4.2

1.5 Postfix の起動

以上で設定は完了です。次のようにPostfixの起動と、自動起動の設定を行いましょう。
# /etc/rc.d/init.d/postfix start
# /sbin/chkconfig postfix on
プロンプト1.5.1

1.6 メールの送信テスト

ここまでできたら、ひとまずメールの送信ができることを確認してみましょう。次のコマンドで、メールサーバー上のユーザー宛てにメールを送ることができます。本文は「test」になります。
# echo test | mail ユーザー名
プロンプト1.6.1
メールの送信と受信が正しく行えていれば、対象のユーザーのメールボックス(~/Maildir/newディレクトリ)に受信したメールのファイルが作成されるはずです。
ユーザー名の代わりに次のようにメールアドレスを指定すれば、外部のメールサーバーに対してもテストメールを送ることができます。
# echo test | mail hogehoge@example.com
プロンプト1.6.2
上記の設定のままだと、メールの転送に対して特別に制限をかけていないので、スパム配信などに悪用される危険があります。そこで、次はメール送信時にSMTP-Authによる認証をできるようにした上で、SMTP-Auth認証を使わないクライアントからのメールの転送を行わないように設定します。 次回へ続きます。


コラム一覧へ