Fedora11でPostfixadmin+Postgresql+Courier-IMAP

postfixadmin+postgreSQL+Courier-IMAPという構成で、メールサービスを構築しようと思います。

fedora9では既に構築済みですが、fedora11ではどうにも勝手が違うようで、てこずったので

下記のメモに残しておきます。

1) postgresql-serverのインストールと設定

rootにスイッチしてyumコマンド実行。

# yum install posgresql-server

ユーザ名「postgres」のパスワード設定。

# passwd postgres

新しいパスワード:psql1234

「postgres」にスイッチ。

# su – postgres

データベースクラスタの作成をする。

作成する場所と、デフォルトのデータベースの文字コードを「utf8」に指定。 「-D」 「–encoding」 のオプションを付ける

データベースで日本語を扱いたいので、「–no-locale」 のオプションを付ける。

$ initdb –no-locale –encoding=UTF8 -D /var/lib/pgsql/data

で、続きはまた後日。

2)postfix(postgresql用)のインストール

ネットでいろいろ調べていると、yum コマンドでインストールするpostfixは、

postgresql対応じゃないようです。ですので今村は、postgresql対応用のpostfixを

インストールするんですが、RPMからビルドする必要があるとのこと。

端折ってpostgresql対応用postfixを手に入れたとします。

# rpm -ivh postfix-2.5.1-2.fc9.i386.rpm

エラーが出た。

———————————————————————————————–
エラー: 依存性の欠如:
libcrypto.so.7 は postfix-2:2.5.1-2.fc9.i386 に必要とされています
libdb-4.6.so は postfix-2:2.5.1-2.fc9.i386 に必要とされています
libmysqlclient.so.15 は postfix-2:2.5.1-2.fc9.i386 に必要とされています
libmysqlclient.so.15(libmysqlclient_15) は postfix-2:2.5.1-2.fc9.i386 に必要とされています
libssl.so.7 は postfix-2:2.5.1-2.fc9.i386 に必要とされています
———————————————————————————————————

よくわからん・・・fedora11にインストール中なんだけど、今村が持っているrpmはfedora9用だし、もしかしてそれが原因かも・・・

なので、fedora11用にSRPMのダウンロード、postgresql対応用にリビルドすることにした。

http://ftp.riken.jp/Linux/fedora/releases/11/Fedora/source/SRPMS/ に行って、

postfix-2.5.6-3.fc11.src.rpmをダウンロード。インストール。

# rpm -ivh postfix-2.5.6-3.fc11.src.rpm

すると、ディレクトリ内に rpmbuild というディレクトリができる。

SPECSディレクトリに移動。

# cd rpmbuild/SPECS/

vi でpostfix.specを編集。

# vi postfix.spec

%{?!PGSQL: %define PGSQL 1} ここだけ変更してみる

で、リビルドしたいんだけど、rpm-buildを事前にインストールしておく。

# yum install rpm-build

依存性の欠如だらけ。

db4-devel

zlib-devel

openldap-devel

cyrus-sasl-devel

pcre-devel

mysql-devel

postgresql-devel

openssl-devel

こんなにもない。全部 yum でインストール。

そのあと、rpmbuildを実行。

# rpmbuild -ba postfix.spec

で、RPMS/i386 ディレクトリの中に、

postfix-2.56-3.fc11.i386.rpm

ができているので、早速インストール。

# rpm -ivh postfix-2.5.6-3.fc11.i386.rpm

で、とりあえずインストールOKなので、

main.cfの設定を変更する。ここでは、smtp auth の設定のみ記述。

———————————————————————————————————

### virtual mailuser ###

local_transport = virtual
virtual_transport = virtual

virtual_mailbox_base = /var/mail/vmailbox
virtual_alias_maps = pgsql:/etc/postfix/pgsql_virtual/pgsql_virtual_alias_maps.cf
virtual_alias_domains = $virtual_alias_maps
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql_virtual/pgsql_virtual_domains_maps.cf
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql_virtual/pgsql_virtual_mailbox_maps.cf
virtual_minimum_uid = 500
virtual_uid_maps = static:500
virtual_gid_maps = static:500

### mail size quota ###

message_size_limit = 10240000

virtual_mailbox_limit = 0
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = pgsql:/etc/postfix/pgsql_virtual/pgsql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user’s maildir has overdrawn his diskspace quota,
virtual_overquota_bounce = yes
virtual_mailbox_limit_inbox = yes

disable_vrfy_command = yes

### smtp auth ###

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated
,permit_mynetworks
,reject_unauth_destination
———————————————————————————————————

で、ここでpostfixとpostgresqlの接続に必要な設定情報を格納するディレクトリ「pgsql_virtual」を作成する。

そして、

pgsql_virtual_alias_maps.cf

——————————————————————-

user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix

query = SELECT goto FROM alias WHERE address=’%s’

——————————————————————-

pgsql_virtual_domains_maps.cf

——————————————————————-

user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix

query = SELECT domain FROM domain WHERE domain=’%s’

——————————————————————-

pgsql_virtual_mailbox_limit_maps.cf

——————————————————————-

user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix

query = SELECT quota FROM mailbox WHERE username=’%s’

——————————————————————-

pgsql_virtual_mailbox_maps.cf

——————————————————————-

user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix

query = SELECT maildir FROM mailbox WHERE username=’%s’

——————————————————————-

をpgsql_virtualディレクトリに格納する。

で、バーチャルメールボックス用ディレクトリを作成する。

# mkdir /var/mail/vmailbox/

グループを変更。

# chown 500:500 /var/mail/vmailbox/

で、とりあえずOK.

3) Courier-IMAPのインストール

眠くなってきたので、続きはまた今度。

著者:bouya Imamura