ユーザ用ツール

サイト用ツール


サイドバー

Index

はじめてのおつかい






DokuWiki整形記法


PlayGround



serverapps:postfix:ldap2mysql

LDAPの認証データをDovecot用DBに入れる

このページは

Courier-imapのLDAP認証からDovecotのMysql(PostfixAdmin)に変更するにあたっての手順記録です。

※今回LDAP上のSHAパスワードがそのまま利用可能でしたが、暗号化形式によっては利用できない可能性もありますのでご注意ください。

なお、インストール等についてはpostfix + mysql + Dovecot + PostfixAdminを参照してください。

必要なデータ

Dovecotでの認証に必要なデータは以下の通り。

  • ドメイン名
  • ユーザのメールアドレス
  • hash化されたパスワード

LDAPデータのExport

今回は手を抜いて、Apache Directory StudioからExportしました。
同様のデータが取れれば、slapsearchやLL系の言語でも構いません。

データについて

他は大したことありませんがパスワードには注意が必要。

Apache Directory Studio等で見ると以下のように見えますが、この場合はそのままDBにもっていって大丈夫です。

{SHA}IOQCvLkhjTsKOllzHanmYaVUp1w=

LDIFなどで取得すると以下のようになります。この場合はBASE64でエンコードされてますので、デコードの上でDBに格納してください。

e1NIQX1JT1FDdkxraGpUc0tPbGx6SGFubVlhVlVwMXc9

SQL文

取得したデータをもとにSQL文を生成してMySQLに格納します。
データは、以下の通り。実際の環境に合わせて変更してください。

  • ドメイン名:example.com
  • ユーザ名:mailuser@example.com
  • パスワード:{SHA}IOQCvLkhjTsKOllzHanmYaVUp1w=

domainテーブル

INSERT INTO 
`domain` (`domain`, transport, created, modified) 
VALUES   ( "example.com", "virtual", now(), now());

さらに細かい指定をしたい場合には以下のカラムを設定します。1)

カラム内容
description説明
aliases転送アドレス数上限
mailboxesメールアドレス数上限
maxquotaメールアドレスの容量上限(MByte)
quotaドメインの容量上限(MByte)
active利用の可否(1:利用可)

aliasテーブル

INSERT INTO
`alias` ( address, `goto`, `domain`, created, modified, active) 
VALUES ( "mailuser@example.com", "mailuser@example.com", "example.com", now(), now(), 1);

転送アドレスを管理するテーブルですが、このテーブルでaddressとgotoが一致している場合にMailboxへ配送されます。

mailboxテーブル

INSERT INTO 
mailbox( username, password, name, maildir, quota, local_part, `domain`, created, modified, active) 
VALUES ( "mailuser@example.com", "{SHA}IOQCvLkhjTsKOllzHanmYaVUp1w=", "おなまえ", "path/to/maildir", 1024000000, "mailuser", "example.com", now(), now(), 1);

ここのQuotaはByte単位です

おまけ

メールデータを移した際、Courier-imapとDovecotでは、フォルダの命名規則が若干違う。
具体的にはCourier-imapで”.Trash”がDovekotでは”.INBOX.Trash”となる。
いちいち治すのは面倒なので、shellのワンライナーで2)

ls -d .[^.I]* | sed "s/^\(.*\)/mv '\1' '\.INBOX\1'/g" | /bin/sh
1)
PostfixAdminからも操作できます。
2)
Trashのようなもの以外は受信トレイの下にあるかで変わります
serverapps/postfix/ldap2mysql.txt · 最終更新: 2017/07/20 14:28 by hayashi