窓口は多いけど問い合わせ先は一つのソラリスに
やっとの事でftp、www、smtp、pop3、imapのアカウントを一つのmysqlのDBから読むようなシステムを作る事が出来た。
発行するクエリでwhere句でフィルタしてやれば、ftpアカウントだけ、メールだけ、wwwのベーシック認証だけ、あるいはそのいずれの組み合わせでも使えるような仮想アカウントが利用出来る。
これらの問い合わせ対象となるDBが全て同じテーブルであるって言うのがミソ。
当然、パスワードやらなんやらの変更はメールだろうがftpだろうが全てに共通する。
さらに、もう一つ外せないのは、全てを仮想ユーザーだけで運用するのではなく、実ユーザーも特別な運用無しに同じ環境で使える事である。
仮想ユーザーだけでなく、リモートからシェルをつかったり、XDMCPへXから接続してデスクトップを使ったりするための実ユーザーも同じように動作しないと。
仮想ユーザーだけ、実ユーザーだけっていう運用は意外に簡単やけど、これらの違いを意識せずに統合するってところは、一般的にはあまり要求されないけど、土偶家では必須であった。
概略を述べると、dovecotで動かしたpop3とimapはmysqlのDBからアカウント情報を取得し、SMTPを受信時にはPostfixのエイリアスマップを同じDBから取得し、外部へリレーするメール送信時はSMTP認証としてdovecot経由でDBに聞きに行く。
ftpはproftpd、WEBのベーシック認証はapacheのmod_auth_mysqlでDBに問い合わせと言う感じである。
ネット上の情報では、メールだけ、FTPだけっていうのが多々あるけど、これら全てを統合した説明は見た事がない。これは素晴らしいんじゃないだろうか?
結構苦労したので順jにエントリにしてゆこうと思う。