MTAを新しくするにあたり実現したいことは決まった。
ただ、中でも厄介そうなのが「メールアカウントをOSのアカウントから分離」というお題。
しかし、OSのセキュリティー向上を考えるとなんとしても実現させたい。
とりあえず思いついたのはLDAPを使う方法。
そもそもLDAPはユーザーアカウントを管理するためのモノなので適任と言えば適任。
PostfixもLDAPに対応しているし、最近のPOP3/IMAP4サーバやSMTP AUTHの認証機構もLDAPに対応しているので、メールシステム全体でユーザー管理の一元化が可能になる。
これまでLDAPを使ったことがないので、まずはLDAPサーバを動かして見ることにした。
まずは自宅のメインPCにVirtual PC 2007を入れ、FreeBSD 7.0の環境を用意。
OpenLDAPのインストールを行い認証機能のテストを始めて見た。
動かしてみて感じたことだが、案外と管理が煩雑だった。
慣れの問題もあるだろうけど、そもそも組織だった管理をしたい訳ではないのでディレクトリ構造でのアカウント管理はオーバースペックとも言える。
それに、遠隔地にあるサーバで動かすのでコマンドラインで操作するのは面倒臭い。
Webベースのツールを用意して簡単な管理がしたい所だが、目的にあったLDAP用のツールが見つからない。かといって、LDAP用のツールを自分で作るとなると、これもまた面倒臭いというのが本音。
ちょっと行き詰まってしまった。
で、他に方法がないかと調べていたら、Postfixのバーチャルホストのアカウント管理にMySQLやPostgreSQLが使用できることが判明した。
更に調べていくと、POP3/IMAP4サーバでもDBを使った認証が可能だし、SMTP AUTHでもDBを使った認証が可能なようだ。
となればDBを使ったユーザー管理の方が断然簡単に思えた。
なんせ仕事柄DBを使うWebアプリを作るのは慣れたモノ。ユーザー管理用のツールだって自分で作れてしまうし、利用者向けのパスワード変更Webページなんてのも自分で作れてしまう。
自分で作るのだから使い勝手だって自分の好みに合わせられるので、こんな良いことはない。
と言うことで、ユーザーアカウントの管理はDBを使用することに決定。
で、使用するRDBMSはプライベートでは使い慣れているPostgreSQLを使うことにした。
なんせ今稼働しているサーバーにはPostgreSQLが動いているので新たにインストールする必要はなく、今の環境に新しいテーブル等を用意するだけで住むので簡単だ。
しかし、ここでも問題が...
本を読んだりWebで調べたりするがPostgreSQLを使ったPostfixの設定に関する情報が少ない。
というか皆無に等しい。
Postfixに付属のドキュメントが一部和訳されて出ていたりするが、実例といえるような内容の記述がないので具体的に何をしたらいいのか分からない。
困った...