Mail Admin Ver1.0 Copyright (c) 2006 ASKA Systems,Ltd. |
2006/07/10
最新情報は http://www.askasystems.com/soft/soft2.html を確認してください。
JSP/Servletで作成したMailアカウント管理用Webアプリケーションです。
レンタルサーバのサービスを積極的に提供していなくても、お客様のドメインを 預かり運営をさせていただくことが良くあります。メールアカウントの管理も 行うことになりますが、数が増えてくると大変です。 このような状況は多いのではないでしょうか?
さらに、サーバ(OS)のアップグレードを行った際に、SMTPを管理しやすい postfixに変えたのは良いとして、ディストリビューションにそれらしい 名前のパッケージが無かったことから、devecotの存在に気づかずに cyrus-imapdを採用してしまって後戻りできなくなってしまった方も 多いのではないでしょうか。
このMailアカウント管理用Webアプリケーションの特徴を示します。
- postfix + cyrus-imapd + MySQL のシステムで動作します。
- aliases、virtual_alias_maps、及びSASLのためパスワードファイルを MySQLのテーブルとして管理します。
- Mailアカウントの管理はドメイン毎の管理者が行う形体となります。
- 従って、Mailアカウントのパスワードは管理者がすべて把握できるように なっています
- ドメインに所属するユーザアカウントには、ドメイン特有の接頭辞、接尾辞を 付加して識別します。cyrus-imapdのvirtdomain 機能で識別することもできます。
- ユーザが自分のパスワードを変更する機能は今のバージョンにはありません。
動作を確認しているのは次の環境です。
OS CentOS 4.3 SMTP postfix-2.1.5 (MYSQL 1 rebuild) imapd cyrus-imapd-2.2.12 DB mysql(-server)-4.1.12 java jdk-1.5.0 servlet jakarta-tomcat-5.5.9
MailAdminConfig.txtも確認してください。
- DATABASE_MYSQL.TXTを参考にしてデータベースとテーブルを作成してください。 データソースを設定していただきますのでデータベース名やusername、password は変更できます。
- データソース(MySQL)を "java:comp/env/jdbc/MailAdmin" という名前でリソースとして登録してください。 ドライバは各自ご用意ください。
登録例<Context path="/MailAdmin"> <Resource name="jdbc/MailAdmin" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/MailAdmin?autoReconnect=true" username="mailadmin" password="mailadmin"/> </Context>- appBase(webapps)にMailAdmin.war ファイルを配置してください。 手動で展開する場合はにMailAdminディレクトリを作成しその中へ展開します。
- cyradm用スクリプト[MailAdmin]/WEB-INF/script/cyradmagent.plの13行目 までを、環境に合わせて/etc/imapd.confなどを参考にして修正してください。
- 設定ファイル[MailAdmin]/WEB-INF/MailAdminConfig/MailAdminConfig.xmlを MailAdminConfig.htmlを参考にして 作成してください。運用中のサーバに導入する場合は、 データベースを作成する間cyradm_agentをfalseにします。
- [MailAdmin]/WEB-INF/script/cyradmagent.plに実行属性を与えます。運用中の サーバに導入する場合はデータベース作成後に実行属性を与えましょう。
- MailAdminを起動します。必要であればapacheなどhttpdの設定を行ってください。 公開する場合は是非SSLを検討してください。
- https://[ホストアドレス]/MailAdmin/Login?domain=[admin_domain] にアクセスし、default_admin、default_passwordでログインします。
- データベースを作成します。「メールボックス」がSASLの認証用に使用され cyrus-imapdの実際のメールボックスを反映します。「配送設定」が virtual_alias_mapsにあたります。運用中のサーバに導入する場合は、 運用中の情報を忠実に反映してください。
- cyrus-imapdの認証方法を変更します。/etc/imapd.confの次の項目を 変更してください。
sasl_pwcheck_method: auxprop sasl_auxprop_plugin: SQL sasl_sql_user: postfix sasl_sql_passwd: postfix sasl_sql_database: mailadmin sasl_sql_select: SELECT password FROM mailboxes WHERE id = '%u' and active = 1 sasl_mech_list: PLAIN- cyrus-imapd再起動後、認証できることを確認してください。
- postfixの設定を変更します。main.cfの次の項目を書き換えてください
alias_maps = mysql:/etc/postfix/mysql-alias.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-map.cfmysql-alias.cf、mysql-virtual-map.cfの場所を設定してください mysql-alias.cf、mysql-virtual-map.cfは同梱のものを使用してください。- postfixを再起動します。
- URLを推測した攻撃を受けにくくするために、admin_domain は defaultから 変更することを推奨します
- quota管理は重い処理となりますので、使用する予定が無いのであればfalse にしてください
[cyrus_imapd の virtdomain 機能を利用する場合]
- MailAdminConfig.xml(admin_domain、admin_realm、virtdomains)及び、 cyradm用スクリプト[MailAdmin]/WEB-INF/script/cyradmagent.plを適切に 設定する必要があります
- admin_realmは、admin_domainとは一致しません。admin_realmにはhostname を設定してください。認証がうまくいかない場合は、 mysqlのクエリログを確認してください
- /etc/imapd.confの検索文は、以下のように変更します。
sasl_sql_select: SELECT password FROM mailboxes WHERE id = '%u@%r' and active = 1
- https://[ホストアドレス]/MailAdmin/Login?domain=[ドメイン名]に アクセスし、ログインしてください。 [ホストアドレス]はhttpdの設定でコントロールしてください。 [ホストアドレス]を例えばサーバ管理会社のものとし[ドメイン名]とは 別のドメインにしておくとURLを推測した攻撃を受けにくくなります。
- 使い方はhelpを参照してください。
- mailboxを削除すると復活できませんので特に注意してください。
サーバの環境やプログラムの不具合などによって問題が生じる場合があります。 それにより損害が生じても損害に対する保証はできません。 稼動中のサーバに導入する場合は特に注意してください。
- このプログラムは、シェアウエアとして配布しております。
動作することを十分に確認のうえ、ご利用いただける場合のみお支払いください。- ソースを添付してありますので改造はご自由に行ってください。
- 本品又は改造品の再配布は禁止いたします。
- このプログラムは、apache ソフトウエアライセンスの製作物を利用しています。
This product includes software developed by the
Apache Software Foundation (http://www.apache.org/)."
2006/07/10 Ver1.0 リリース