構築事例:Mailmanを使ったメーリングリストサーバ
Mailmanを利用して、多数のメーリングリストを管理するメーリングリストサーバを構築しました。4台のサーバーを使って、サーバの冗長性と拡張性を確保した構成で導入を行いました。
- お客様が悩まれていた課題
- メーリングリストサーバが古くなった
- メーリングリスト数が多く1台のサーバでは不安
- メールアーカイブのデータを確実に保全したい
- +導入企業プロフィール
- ★
導入企業業種
製造業(東京都)
ユーザー規模
約30,000人
利用OS
CentOS7
導入月
2016年3月
デージーネットが提案した「Mailmanを使ったメーリングリストサーバ」
クラスタでMailmanの冗長性を確保し、振分け機能を導入
稼働中のメーリングリストサーバをリプレースしたいというご要望で、提案を行いました。冗長性とスケーラビリティの両方を確保したいということで、4台のサーバで構成しました。
Mailmanにメーリングリスト振分け機能を導入
多数のメーリングリストがあり、1台では性能に不安があると言うことでした。そのため、当初はNFSにデータを配置し、Mailmanのメーリングリストサーバを負荷分散する形でシステムを構築できないかを検討しました。
しかし、提案の段階で、このような方法で単純に負荷分散を行うことには問題があることが分かりました。というのは、Mailmanにはメールの記事にカウンターなどを付ける機能があり、カウンターのデータがファイルで管理されるためです。ロック機構が正常に働かない可能性のあるNFSでは、Mailmanのカウンターデータが正しく管理できない可能性があることが分かったのです。
そのため、各Mailmanのサーバにメーリングリストの振分け機能を持たせ、メーリングリストの処理は、各サーバ内部だけで処理されるようにしました。
Mailmanをクラスタで冗長化
Mailmanで管理するメーリングリストのアーカイブデータや設定情報の冗長性を確保するため、各メーリングリストサーバはPacemaker、corosyncを使ったHAクラスタで構成しました。この構成では、設定情報やメーリングリストのアーカイブは、DRBDを使って2つのサーバにミラーリングされます。万一、稼働中のサーバが停止したり、正常に処理ができない場合には、Pacemakerがそれを検出し、corosyncを使ってサーバを切り替えるようにしました。
既存データの移行
デージーネットで新しいメーリングリストのシステムを初期設定し、動作確認した後、既存のメーリングリストサーバからデータ移行を行いました。そのため、メーリングリスト設定やカウンターなどのなども引き継ぐことができました。
導入後の結果
これまでと同じMailmanを使って、使用感を大きく変えずにメーリングリストサーバの冗長化とスケーラビリティの確保を行なうことができました。
【Webセミナー】自社でOSSを採用しよう!今更聞けないOSSの基本セミナー
日程: | 11月22日(金)Webセミナー「BigBlueButton」を使用します。 |
内容: | OSSを導入したいけど、どこから手をつければいいかわからない方必見! |
ご興味のあるかたはぜひご参加ください。 |
Mailmanとは
Mailman(Mailman, the GNU Mailing List Manager)は、OSSのメーリングリスト管理ソフトウェアです。Pythonで記述されていて、GNU General Public Licenseのもとで公開されています。RedHat Enterprise LinuxやCentOSに採用されていて、パッケージを使って簡単に導入することができます。ISPやメールサービスを提供する事業者などでも使われています。Mailmanの特徴は、次の通りです。
- メーリングリストの作成やユーザの入会・退会などの処理は、コマンドラインからもWebからも管理可能
- メーリングリスト毎にWebページを提供する
- メーリングリスト毎にリスト管理者を置くことができる
- 過去に投稿されたメールをアーカイブし、閲覧することができる
- 会員自身によるメーリングリストへの参加と脱退が可能
- メーリングリストにモデレータを設置することもできる
- メーリングリストのメールをまとめ読みする機能がある
- メールフィルタリングが可能(SPAMとマークされたメールの除去などに利用)
- 添付ファイルを自動的に柵状することが可能
- リストの作成や削除に合わせて、Postfixの設定を自動的に連携することができる
Mailmanは非常に高機能です。Webからの管理も可能ですが、機能が多い分だけ管理も複雑になります。そのため、シンプルにメーリングリストを作りたい場合には、Sympaなどの別のソフトウェアを使った方が良い場合もあります。
Mailmanのインストール
Mailmanは、CentOSなどではパッケージで提供されています。そのため、yumコマンドなどで簡単にインストールすることができます。ただし、次のような初期設定が必要です。
- Mailmanの設定
Mailmanの設定ファイル(/etc/mailman/mm_cfg.py)に、メーリングリストサーバのホスト名、メールドメイン名などを設定します。それぞれ、DEFAULT_URL_HOST、DEFAULT_EMAIL_HOSTの値を設定するだけです。
- Postfixとの統合
Mailmanの設定ファイル(/etc/mailman/mm_cfg.py)に、MTAとしてPostfixを使うことを設定します。そして、Postfixの拡張アドレスを有効にし、Mailmanと連携するためのエイリアスデータベースを作成し、Postfixが参照するように設定します。
- Apacheの設定
CentOSでは、Mailmanのパッケージをインストールすると自動的に設定ファイル(/etc/httpd/conf.d/mailman.conf)がインストールされ、Apacheからの参照に必要な設定が行なわれます。TLSへの対応やアクセス制御などの設定が必要な場合には、設定を変更します。
- サイト管理用メーリングリストの作成
サイト管理者用のメーリングリスト(通常はMailman)を作成します。管理用メーリングリストの名称をMailmanの設定ファイル(/etc/mailman/mm_cfg.py)に設定し、newlistコマンドを使って登録します。
- サイト管理者のパスワード設定
mmsitepassコマンドで、サイト管理者のパスワードを登録します。
- Mailmanサービスの起動
CentOSやRedHat Enterprise Linuxでは、Mailmanに必要なプロセスを管理するためのサービスが用意されています。mailman.serviceを起動します。また、必要に応じて、自動起動の設定を行ないます。
メーリングリストの管理
メーリングリストの管理のために、次のようなコマンドが用意されています。
---------------------------------------------------- コマンド名 役割 ---------------------------------------------------- list_lists メーリングリストの一覧を表示します。 newlist メーリングリストの作成 rmlist メーリングリストの削除 add_members メーリングリストへのメンバーの登録 list_members メーリングリストのメンバーの表示 remove_members メーリングリストからのメンバーの削除 ----------------------------------------------------
サイト管理者は、これらのコマンドを使ってメーリングリストを管理することもできます。また、同様の機能をWebからも利用することができます。
Mailmanのサポート
Mailmanは、RedHat Enterprise LinuxやCentOSなどに同梱され、パッケージで提供されています。ディストリビューションに付属したパッケージを利用することで、ディストリビュータのサポートを受けることが可能です。
デージーネットでは、Mailmanを使ったメーリングリストサーバの構築サービスを提供しています。そして、デージーネットでサーバを構築した場合には、Open Smart Assistanceを利用することができます。Open Smart Assistanceでは、ソフトウェアの利用方法に関するQ&A、障害発生時の障害調査、セキュリティ情報の提供など、ソフトウェア単独ではなく、システム全体に対するサポートを受けることができます。
Mailmanを使ったメーリングリストサーバの関連ページ
メールシステム構築の事例一覧
- メールシステム・ActiveDirectory連携事例
- メールサーバ冗長化事例
- メールサーバのNFSメールスプール入れ替え事例
- postLDAPadminを利用したメールサーバ管理システム事例
- メールサーバのデータ移行(mbox形式→Maildir形式)事例
- メールサーバ(添付ファイル暗号化)事例
- 添付ファイルのPPAP問題を解決する代替としてSaMMAを利用事例
- メール転送時の添付ファイル削除システム事例
- 標的型メール攻撃対策システム事例
- Messasyを利用したメールアーカイブシステム事例
- メール承認システム(Mail Approval)事例
- RoundcubeによるWebメールサーバ事例
- RoundcubeによるWebメールサーバ(大学様向け)事例
- Sympaによるメーリングリスト管理システム事例
- SpamGuardによるメールサーバへのスパム攻撃対策事例
- SpamGuardによるメールサーバのパスワード漏洩対策事例
- HAproxyを利用したメール中継システム事例
- Sieveを利用したメールの振り分け機能つきメールシステムの導入事例
- Cockpitによるサーバ管理ツールの導入事例
- Mailmanを使ったメーリングリストサーバ事例
- Mailman 2を利用したメーリングリストサーバ構築事例
- MailAdmin2を利用したホスティングメールサーバ構築事例
- Googleメール送信者ガイドラインに対応したDMARC設定の導入事例
- fmlからSympaへメーリングリストサーバ移行事例
- 全文検索の仕組みを導入したメールアーカイブシステム事例