text

メールサーバーの構築

PostfixとDovecotによるメールシステムの構築


1.メールサーバーとは − PostFixが使われる理由

メールサーバーとは、インターネット経由で送られてきたメールを保存したり別のサーバーに配信したりする働きをするサーバーアプリケーションが稼動しているコンピュータのことをさす。

メールサーバーの役割としてサーバーのメールボックスに到着したメールをユーザーのPCに転送するPOPとメールサーバーにメールを送信するときや、サーバー間でメールを転送するときに利用されるSMTPからなる。

UNIX系のメールサーバーアプリケーションの代表格としてはsendmailがある。sendmailには様々なセキュリティ上の問題が発見され、現在ではPostfixやqmailへと遷移していった。

Postfixはsendmailに代わるMTA (Mail Transport Agent)として開発されており、sendmailとの互換性が高い、設定が簡易、安全、運用面での負担が少ない、動作が速い、などの特徴を兼ね備えている。最近ではLinuxの一部のディストリビューションで標準のMTAとして採用されている傾向にある。ただし、PostfixはSMTPサーバとしての機能しか持っていないため、メールサーバとして稼働するにはPOPサーバやIMAPサーバが別途必要となる。本実習では、POPサーバーアプリとしてDovecotを別途設定してメールサーバーを構築する。

2.本自習の目的

本実習では、UNIX及びUNIXクローンOSのメールサーバーとWindowsのメーラーの構成でメールシステムの構築を習得する。
メールサーバーとして主流となりつつあるPostfixを使用することはsendmailと比較して設定が容易で高性能であることに由来する。また、クライアント向けのメール受信用のプロトコルにはPOP3を利用する。

ARPAnetの時代のDelivermailが通信プロトコルの以降やSMTPプロトコルの普及に伴って書き直され、オープンソースソフトウェアとして配布されたMTA。

ほとんどのUNIX系OSに標準として採用されており、インターネット上で運営されるメールサーバの事実上の標準として利用されていた。

3.メールサーバーの特徴

sendmail

非常に多機能であり、sendmail.cfという設定ファイルの記述1つであらゆる種類のネットワーク間でメールをやりとりすることができる柔軟性を持つ。しかしその半面、設定が非常に難解で、幾多の修正のためプログラム自体が複雑化してしまっている。インターネットがグローバルなコンピュータネットワークのデファクトスタンダードとなった今日では、異なるネットワークを接続する必要性は皆無となってしまった。かつては必要であったとされる、これらの機能が、セキュリティホールがなかなかなくならない原因となっている。設定や管理に高いスキルを要求されるなどの短所として指摘されている。こうした中で、sendmailの問題点を解消する新たなMTAとしてqmailなどが出現して今日に至っている。

Postfix

sendmailに代わるMTA (Mail Transport Agent)として開発されたソフトウェアで、sendmailとの互換性が高く、安全、メンテナンスが容易、動作が速い、などの特徴を兼ね備えている。す。最近ではLinuxの一部のディストリビューションで標準のMTAとして採用されているが、PostfixはSMTPサーバとしての機能しか持っていない。

qmail

sendmailに代わるMTA (Mail Transport Agent)として開発されたソフトウェアで、並列処理によってメールの配送効率が高い、機能ごとにプログラムに分かれていて、要最小限の権限で動作します。また、 メールアドレスやファイル、プログラムを明確に区別して扱います。

qmailの設定はコントロールファイルと呼ばれる一連のファイルにドメイン名などを記述して行ないいる。この形式は sendmailのcfファ イルの記法に比べて格段に理解しやすくなっていいる。スパムメール対策も容易になっている。挙動が理解しやすいということは安全であることにもつながる。

4.実習の手順

(1)sendmailからPostfixへの移行

(2)Postfixの基本設定

DNSの正引きファイルのMXレコードの設定
/etc/postfix/main.cfの設定
ポート開放

(3)サービスの起動と停止

受信サーバーDovecotの設定
起動スクリプトの利用

(4)メール送受信テスト

mailコマンド
メーラーでの送信

(5)運用上の設定

Postfixでスパムメールを拒否する
Postfixでエイリアスを設定する

5.sendmailからPostfixへの移行

メールサーバーのソフトウェアとしてFedraCoreではMTA(Mail Transfer Agent)としては標準でSendmailとPostfixの両方がインストールされている。最近の傾向をふまえsendmailからPostfixへと移行する。

■sendmailからPostfixへの移行

sendmailからPostfixに切り替える。すでにPostfixが起動している場合があるので、これを停止させ標準MTAとしてPostfixを設定する。

# system-switch-mail

ASCIIテキストライクなエセGUIが起動し、2者択一の選択メニューが表示される。標準ではsendmailが選択されているので、Postfixに切り替える。
既にsendmailが起動している場合があるので、事前にサービスを止めておくことが重要。

# service sendmail status

# service sendmail stop

■DNSの正引ゾーンファイルのMXレコードの記述

メールサーバーで利用するDNSサーバーのMXレコードにサーバー名が登録されている必要がある。

#vi /var/named/chroot/etc/var/named/dmz140.sentan-college.zone

IN MX 10 mail140.dmz.sentan-college.ac.jp.

本コンテンツでは、メールサーバーのホスト名をmail140.dmz.sentan-college.ac.jp、ドメイン名をdmz.sentan-college.ac.jpとしています。参考にされる場合は、適宜赤字の部分を修正するようにお願いします。

6.Postfixの基本設定

■main.cfの編集

# vi /etc/postfix/main.cf

Postfixの設定ファイルの以下の箇所を書き換える。

mail_owner = postfix -> メールオーナー
myhostname = mail140.dmz.sentan-college.ac.jp -> メールサーバーのホスト名の定義
mydomain = dmz.sentan-college.ac.jp -> 発信元のドメイン
inet_interfaces = all -> インターフェースはall(すべて)
mydestination = $myhostname, localhost.$mydomain, $mydomain -> Postfixサーバーがメッセージの宛先として受け付けるホストを定義
mynetworks = 172.18.140.0/24, 127.0.0.0/8 -> メールサーバーを設置するネットワークの範囲

■ポートの開放

送信用プロトコルSMTPに対応するTCPポート25番をサーバー側で解放する。

受信用プロトコル

POP3に対応するTCPポート : 110 IMAP4に対応するTCPポート : 143

必要に応じて解放しておく。

■iptablesのファイル設定

FedraCoreファイウォールを変更するためにiptablesファイルを編集してTCPポートの行を必要に応じて追加して変更していく。

# vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT

iptablesの設定を反映させる。

# service iptables restart

7.Dovecotの設定

受信プロトコルにはPOP3、IMAP4などがある。FedraCoreでは、両方のプロトコルに対応する受信サーバーとしてDovecotが標準でインストールされる。

■dovecot.confの編集

# vi /etc/dovecot.conf

# Protocols we want to be serving:
# imap imaps pop3 pop3s
# protocols = imap imaps pop3 pop3s

と記述されているところへ下記の1行を追加する。

protocols = imap imaps pop3 pop3s

Dovecotの設定はこれだけ

■メールサーバーの起動と停止

送信サーバーであるPostfixデーモンと受信サーバーであるDovecotデーモンをそれぞれ起動する。設定ファイルを変更した後は、再起動させる。

現在のデーモンの状態を確認

# service postfix status

デーモンの起動と停止・再起動

# service postfix start
# service postfix stop
# service postfix restart
# service dovecot start
# service dovecot stop
# service dovecot restart

初期起動設定

このままの設定だと、サーバーの再起動を行ったときにメールデーモンは起動しない。わざわざ、起動のコマンドを入力しなくても良いように、常時起動の設定をしておく。

# chkconfig --list postfix <- 現在の設定の確認
# chkconfig --list dovecot <- 現在の設定の確認
# chkconfig postfix on <- 自動起動に設定
# chkconfig dovecot on <- 自動起動に設定

8.メールの送受信のテスト

■mailコマンドによるテスト

$ mail user@mail140.dmz.sentan-college.ac.jp <- メールサーバーアプリを設定した自分のメールアドレス
subject : test mail <- subjectは何でも良い
(本文) <- 本文入力後[Ctrl]+[d]キーの押下
Cc :  <- 入れる必要がないので、そのままEnterキーを押下

■Windowsクライアントのメールソフトからの送受信

OutLookExpressやEudraなどのメールソフトで設定を行い、メールを送受信できることを確認する。

送信サーバー:mail140.dmz.sentan-college.ac.jp
受信サーバー:mail140.dmz.sentan-college.ac.jp
ユーザー名:(Postfixサーバーのユーザー名)