
第1回 qmailによるSMTPサーバの構築
sendmailに代わるMTAとして絶大な人気をほこるqmail。このqmailによるメールサーバの運用方法を解説していく。今回は、運用テクニックの前段階としてSMTPサーバの構築方法を紹介する。
鶴長 鎮一
2001/9/4
sendmailからqmailへ
「進化の最終形は絶滅である」という説をご存じでしょうか。複雑になりすぎたシステムは、その複雑さゆえに自己の適応能力が環境の変化に追い付けず、絶滅の道をたどるといった内容だったと記憶しています。
メール配送システム(MTA:Mail Transfer Agent)の代名詞であり、インターネット発展の礎ともなったsendmailは、誕生以来いくたびかの補修と修繕を繰り返し、いままさに進化の最終形にさしかかっているように感じます。そこまで大げさではないとしても、sendmailに何らかの変革を望むサーバ管理者は多いのではないのでしょうか(その変革の1つに「sendmail 9」があるのだと思います)。SPAM対策やSMTPの不正中継に辟易し、事有るごとにsendmailに簡易性を求めることも少なくないと思います。セキュリティやバグ対策もしかりです。「メールユーザー≒UNIXユーザー」であったインターネット創成期、SPAMというものも存在せず、それどころかインターネット利用者全員が1つの互助会に属している良き仲間であったころに誕生したsendmailでは、セキュリティをはじめとする多くの要望を満たすことに限界がきています。もちろん、それらをすべて解決することは不可能ではありません。むしろ、sendmailは多くの要望に対応できる柔軟性があります。その範疇は広すぎるくらいです。
問題は、解決の手段を得るまでにどれほどの時間を費やさなくてはいけないかということです。SPAMや不正中継、セキュリティを考慮しなくてはいけない時代にサーバ管理者となってしまった方が待ち望んでいたもの、それがいまから紹介するqmailです。
次世代MTAといわれるものを挙げると、次の4つがあります。
- qmail
http://www.qmail.org/top.html(qmailの公式ページではありません) - Exim
http://www.exim.org/ - Postfix
http://www.postfix.org/ - ZMailer
http://www.zmailer.org/
| 注:少し古いものですが、これらの性能比較をhttp://www.kyoto.wide.ad.jp/mta/eval1/で見ることができます。 |
新世代MTAとして特に注目されているのがqmailとPostfixです。両者ともsendmailを意識したうえで開発されたMTAです。qmailはsendmailとの互換性にこだわらず、信頼性と性能を追求した成果として、Postfixはなるべく互換を保ちながら、qmailよりも後発だったのでqmailからもいいところを吸収した成果として誕生しました。
Postfixも優れたMTAです。sendmailとの互換性を主張しつつも、qmailの特徴である「Maildir」というメールスプール形式を採用し、活発に開発が続けられています。ですが、どうせsendmailから乗り換えるのなら、あえて互換性にこだわらない潔さをよしとするqmailに触れてみるのもサーバ管理者としての幅を広げると思います。また、qmailには多くのパッチやツールが用意されています。その中には、いまはやりの「Web mail」や「POP before SMTP」、バーチャルドメインメールサービスを実現するためのものもあります。
MTA乗り換えのメリットは、管理者だけでなくサーバを使用するユーザーにももたらされると思います。本連載では、管理者としてqmailのインストールや運用を行うにとどまらず、サーバを使用する一般ユーザーも恩恵を受けられるような使用方法を紹介していきます。
| 参考:sendmailとSendmail オープンソース版は小文字で始まる「sendmail」、商用版は大文字で始まる「Sendmail」で表記します。商用版には、米Sendmail社や販売代理店によるサポート、運用管理機能、暗号化通信などが付いているといった違いがあります。 http://www.sendmail.com/ |
■qmailの仕組み
qmailは、D. J. Bernstein氏(http://cr.yp.to/djb.html)によって提供されています。sendmailを反面教師としているqmailは、次の点でsendmailと大きく違います。
- sendmailが、メッセージを単一のファイルに結合して全ユーザーが共通のディレクトリを使用するmbox形式であるのに対し、qmailは各ユーザーのホームディレクトリに1つのメッセージを1ファイルとして保存するMaildir形式である
- sendmailではメール配送にかかわる処理を1つのプロセスで実行しているのに対し、qmailではメール配送にかかわる処理を複数のプログラムに分割している
/var/spool/mailをのぞいてみると、そこには全ユーザーのメッセージがユーザー1人につき1ファイルで保存されているのが分かります。メールのファイルを見てみると、FromやToなどが表記されたヘッダ情報があり、最初のヘッダから次のヘッダの間にメッセージ本体であるbodyが表記されていることに気づくと思います。仕切りとなっているヘッダ情報が何らかの理由で壊れると、ほかのメッセージにも影響を与えてしまうことが分かるでしょう。メールを保存するのも読み出すのも1つのファイルを対象にしているため、同時に複数の処理が発生して、さらにファイルの排他制御が働いていなければ、ファイルを正常な形に保つのは難しくなります。Maildirはそれを最も単純な方法で解決した結果だといえます。
配送システムに目を向けてみると、sendmailはローカル配信やリモート配信などすべての処理を「sendmail」という1つのプロセスで管理しています。きれいな実装ですが、それゆえにsendmailの改変には手間を要します。大きなシステムほど、複雑さも増します。それなら処理ごとに小さなプログラムに分けてしまった方が効率がよくなる、というのがqmailの発想です。セキュリティホールなどが発見されたとしても、小さなプログラムごとに問題を片付けることが可能になります。また、qmailのプログラムは3つのグループに分かれており、それぞれのグループは他グループの機能さえも信頼しないという前提で動作します。どこか1つのグループが仮に乗っ取られてしまったとしても、ほかの2つのグループは乗っ取られてしまったグループからの攻撃にさえ対応できるのです。さらに、qmail-1.03誕生以来、qmailそのものの脆弱性は報告されていません(もちろん運用を誤ればその保証の限りではありませんが)。
|
1/3
|
|
||||||
|
||||||
| 連載 実用qmailサーバ運用・管理術 |
| Linux Squareフォーラム サーバ構築・運用関連記事 |
| 連載:Heartbeatでかんたんクラスタリング(連載中) オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します |
|
| 特集:Apache 2.2でWebサイトをパフォーマンスアップ! 最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する |
|
| 連載:実用 Apache 2.0運用・管理術(全8回) 本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える |
|
| 連載:実用
BIND 9で作るDNSサーバ(全15回) 本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく |
|
| 連載:実用qmailサーバ運用・管理術(全14回) 本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで |
|
| 特集:Samba
3.0の全貌 改訂版 Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する |
|
|
TechTargetジャパン
- エラーメッセージをどう扱うか? (2012/2/2)
今回は、スクリプト実行時にエラーが発生したことを知らせるメッセージの扱い方を説明します - ファイルのアップロードを制限する (2012/1/30)
HTTPクライアントがアップロードしてくるファイルの扱いについて解説します。そもそも受け入れる必要があるのか? ということのほかにも、いろいろ設定が必要です - OSに付属するシェルスクリプトを読んで技術を盗む (2012/1/27)
シェルスクリプトマスターに近づくには、他人から技術を盗まなければならない。OS付属のスクリプトから技術を盗もう - iOSで使えるVimが登場! その姿に迫る (2012/1/25)
2012年を迎えてすぐ、iOS向けのVimが登場しました。PC向けのVimとはどのように違い、どういう特徴があるのでしょうか
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
