Postfix+Dovecot(バーチャルドメイン・メール)+pgsqlの設定の巻
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*** Postfix+Dovecot(バーチャルドメイン・メール)+pgsql...
- Postfixでバーチャルドメイン化し、[[vpopmail形式>Postfix...
設定としては意外と簡単でvpopmail形式よりこっちを先にやれ...
※COLOR(RED){Postfixにより配送される先は、vpopmailのままな...
- Postgresで設定するメリットは、データベースでありプログ...
バーチャルドメインのユーザを登録・変更・削除など作成可能...
- Dovecotで管理するテーブルは、create文をみると単純そのも...
と一番気になるのだか PLAIN, PLAIN-MD5, DIGEST-MD5, and CR...
: 前提条件 | COLOR(RED){''postgresql''}パッケージがインス...
パッケージの確認は、COLOR(RED){''rpm -q postgresql''}コマ...
*** Dovecotを再コンパイル [#k413bb0f]
- こちらも yum で既に導入済みのDovecotでは、pgsqlをサポー...
※yum で既に導入済みのDovecotがあるとしたら、それはそれで...
-- Dovecot : [[http://dovecot.org/>http://dovecot.org/]]
-- Dovecot 0.9xバージョンを[[ダウンロード>http://dovecot....
-- COLOR(RED){'''dovecot-0.99.14.tar.gz'''}をダウンロード...
% wget http://dovecot.org/releases/dovecot-0.99.14.tar.gz
% gzip -cd dovecot-0.99.14.tar.gz | tar xf -
% cd ddovecot-0.99.14/
# ./configure --with-vpopmail --with-pgsql --with-rawlog
: 注意!! | ''configure''で最終行にCOLOR(RED){''pgsql''}と...
configureを行うのは必ずCOLOR(RED){rootユーザ}で行うこと。~
それでもpgsqlが表示されていない場合は、Postgresqlの設定を...
Install prefix ...................... : /usr/local
File offsets ........................ : 64bit
Building with SSL support ........... : no
Building with IPv6 support .......... : yes
Building with pop3 server ........... : yes
Building with user database modules . : static passwd pa...
Building with password lookup modules : passwd passwd-fi...
--- インストールしましょう
# make
# make install-strip
# make install
# cp /usr/local/sbin/dovecot /usr/sbin/dovecot
※上記を行う場合は、オリジナルのdovecotを必ず退避しておく...
*** バーチャルドメインユーザの管理アカウントの作成とPostg...
-- バーチャルドメインユーザを管理する専用のアカウントを作...
# /usr/sbin/groupadd -g 21000 virtual
# /usr/sbin/useradd -g 21000 -u 21000 virtual
-- COLOR(RED){''virtual''}アカウントがPostgresqlのデータ...
$ su - postgres
postgres$ /usr/bin/createuser virtual
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? ...
CREATE USER
-- バーチャルドメインユーザの管理データベース''virtual''...
postgres$ /usr/bin/createdb virtual
CREATE DATABASE
-- ''virtual''アカウントが''virtual''データベースの全権限...
※説明が・・・判りずらいですか?(^^
postgres $ psql virtual
virtual=# grant all on virtual.* to virtual
-- ''virtual''アカウントにて''virtual''バーチャルドメイン...
$ su - virtual
virtual$ psql virtual
CREATE TABLE users (
userid VARCHAR(128) NOT NULL,
password VARCHAR(64) NOT NULL,
home VARCHAR(256) NOT NULL,
uid INTEGER NOT NULL,
gid INTEGER NOT NULL,
active CHAR(1) DEFAULT 'Y' NOT NULL
);
*** Postgresqlのリスナー生成と接続先の設定 [#d34dc5a5]
- yumによってインストールされたPostgresqlは、初期設定では...
そんな訳で当然リスナーも起動していません。~
※リスナーが起動されている場合は、5432portで接続要求待ちと...
-- COLOR(RED){''/etc/rc.d/init.d/postgresql''}ファイルを...
※postmasterの起動オプションに COLOR(RED){''-i''} を追加し...
$SU -l postgres -c "$PGENGINE/postmaster -i -p ${PGPORT}...
: 接続できない場合などは | PGLOG=/var/log/postgres.log ...
エラーの原因が特定できるかもしれません。
-- COLOR(RED){''pg_hba.conf''}ファイルを修正しクライアン...
※yumでインストールした場合、''/var/lib/pgsql/data/pg_hba....
host all all 192.168.0.0 255.2...
: 注意! | 接続可能なネットワークを指定しますが、間違って...
-- 上記の修正が終わったらPostgresqlを再起動します。
# /etc/rc.d/init.d/postgresql restart
- Dovecotでのpgsql認証は、PQconnectdbコマンドによってユー...
そのためサーバであってもリスナーとやりとりしますので、上...
アクセスがうまくいかない場合は、下記をみてがんばってくだ...
-- [[pgAdmin III>http://www.pgadmin.org/]] か [[つきみWeb...
-- 手前ミソだけどこんな風に確認する [[PostgreSQL+CSEを設...
-- [[PQconnectdb データベースサーバーとの接続を新たに確立...
*** Dovecotをpgsql形式に対応させる [#lb0f2a13]
- COLOR(RED){''/usr/local/etc/dovecot.conf''} の認証形式...
auth_userdb = pgsql /usr/local/etc/dovecot-pgsql.conf
auth_passdb = pgsql /usr/local/etc/dovecot-pgsql.conf
- pgsql形式でのアクセス方法等の指定を ''/usr/local/etc/do...
COLOR(RED){./dovecot-0.99.14/doc} の下からコピーしてきま...
# バーチャルドメインユーザの管理データベース・テープルの...
# password は、virtualアカウントを指定する
connect = dbname=virtual user=virtual password=xxxxxx
# password を取得するsql文を指定
password_query = SELECT password FROM users WHERE userid...
# バーチャルドメインユーザのディレクトリ、gid/uid を取得...
# Postfixで指定したディレクトリのuid/gidと同じ物にする
# Postfixでは、gid/uid共に20001/20001としているので固定...
user_query = SELECT home, 20001 AS uid, 20001 AS gid FRO...
# passwdの格納方式
# DES, MD5 を使うのが良いがとりあえず生のパスワードで(...
default_pass_scheme = PLAIN
- ここまできたら、Dovecotを再起動しておきます。(/var/log...
# /etc/rc.d/init.d/dovecot restart
*** バーチャルドメインユーザ管理データベースにデータを入...
- 問題もなくここまでこれていればokっす。あとはバーチャル...
- ''virtual'' アカウントでhogeアカウントを追加するSQLを実...
$ psql virtual
virtual=> insert into users values ('hoge@sea-bird.org',...
-- hoge設定内容は、以下のとおり
|CENTER:項目|CENTER:値|CENTER:意味|h
|userid|hoge@sea-bird.org|バーチャルメールアカウントを指...
|password|hoge|passwordですが、default_pass_schemeに依存...
|home|/home/vpopmail/domains/sea-bird.org/hoge|バーチャル...
|uid|0|user_queryで、20001固定を返しているのでなんでもい...
|gid|0|user_queryで、20001固定を返しているのでなんでもい...
|active|Y|有効なユーザの場合 'Y'を指定します。default='Y'|
-- ドメインのpostmasterと、バーチャルドメイン指定している...
$ psql virtual
virtual=> insert into users values ('postmaster@sea-bird...
virtual=> insert into users values ('postmaster@window-s...
-- POP3でメールを受信するときには、ユーザIDを必ず ''user@...
*** パスワード認証をPLAIN-MD5にしてみる [#i3e40662]
- いくらローカルの環境とはいえ、データベースに生のパスワ...
気持ちが悪いので、PLAIN-MD5 認証を設定してみます。
- hoge@sea-bird.org のパスワードを、''hoge'' とした場合は...
md5_hex("hoge") 部分に、パスワードを設定しコマンドを実行...
この実行で得られた結果が、PLAIN-MD5 認証の値になります。
$ perl -MDigest::MD5 -e 'printf "{PLAIN-MD5}%s\n", Diges...
{PLAIN-MD5}ea703e7aa1efda0064eaa507d9e8ab7e
- hogeのパスワードを更新します。
virtual=> update users set password = '{PLAIN-MD5}ea703e...
where userid = 'hoge@sea-bird.org';
- かんたんSQLコマンド
|CENTER:コマンド|CENTER:用途|h
|drop table テーブル名|テーブルの削除|
|update テーブル名 set 項目名 = '内容' where 項目名 = '条...
|select 項目名 from テーブル名|テーブル項目内容の参照|
|delete from テーブル名 where 項目名 = '条件'|テーブル項...
*** その他の認証 [#ne9afd98]
- ./doc/auth.txt からの抜粋
DES:
mkpasswd
perl -e 'printf "%s\n", crypt("pass", "two-letter-salt...
MD5:
mkpasswd --hash=md5
perl -e 'printf "%s\n", crypt("pass", "\$1\$6-8-letter...
PLAIN-MD5:
perl -MDigest::MD5 -e 'printf "{PLAIN-MD5}%s\n", Diges...
DIGEST-MD5:
perl -MDigest::MD5 -e 'printf "{DIGEST-MD5}%s\n", Dige...
*** COLOR(RED){注意点} [#k13ca181]
- ここでは、メール受信のための設定を行うのです。上記で説...
追加しただけでは外部からメールを受け取ることはできません...
受け取るための設定を行います。
-- /etc/postfix/vmailbox に、受け取るべきアカウントとドメ...
hoge@window-shop.biz window-shop.biz/hoge/Maildir/
-- hash を作成します。この作業を行わないと上記で記述した...
# /usr/sbin/postmap /etc/postfix/vmailbox
-- Postfix を再起動します。
# /etc/rc.d/init.d/postfix restart
*** 参考にさせて頂いたサイト様 [#gb205fe4]
- [[PostgreSQLをコマンドラインで操作する>http://www.atmar...
- [[http://www.atmarkit.co.jp/flinux/rensai/postgres02/po...
終了行:
*** Postfix+Dovecot(バーチャルドメイン・メール)+pgsql...
- Postfixでバーチャルドメイン化し、[[vpopmail形式>Postfix...
設定としては意外と簡単でvpopmail形式よりこっちを先にやれ...
※COLOR(RED){Postfixにより配送される先は、vpopmailのままな...
- Postgresで設定するメリットは、データベースでありプログ...
バーチャルドメインのユーザを登録・変更・削除など作成可能...
- Dovecotで管理するテーブルは、create文をみると単純そのも...
と一番気になるのだか PLAIN, PLAIN-MD5, DIGEST-MD5, and CR...
: 前提条件 | COLOR(RED){''postgresql''}パッケージがインス...
パッケージの確認は、COLOR(RED){''rpm -q postgresql''}コマ...
*** Dovecotを再コンパイル [#k413bb0f]
- こちらも yum で既に導入済みのDovecotでは、pgsqlをサポー...
※yum で既に導入済みのDovecotがあるとしたら、それはそれで...
-- Dovecot : [[http://dovecot.org/>http://dovecot.org/]]
-- Dovecot 0.9xバージョンを[[ダウンロード>http://dovecot....
-- COLOR(RED){'''dovecot-0.99.14.tar.gz'''}をダウンロード...
% wget http://dovecot.org/releases/dovecot-0.99.14.tar.gz
% gzip -cd dovecot-0.99.14.tar.gz | tar xf -
% cd ddovecot-0.99.14/
# ./configure --with-vpopmail --with-pgsql --with-rawlog
: 注意!! | ''configure''で最終行にCOLOR(RED){''pgsql''}と...
configureを行うのは必ずCOLOR(RED){rootユーザ}で行うこと。~
それでもpgsqlが表示されていない場合は、Postgresqlの設定を...
Install prefix ...................... : /usr/local
File offsets ........................ : 64bit
Building with SSL support ........... : no
Building with IPv6 support .......... : yes
Building with pop3 server ........... : yes
Building with user database modules . : static passwd pa...
Building with password lookup modules : passwd passwd-fi...
--- インストールしましょう
# make
# make install-strip
# make install
# cp /usr/local/sbin/dovecot /usr/sbin/dovecot
※上記を行う場合は、オリジナルのdovecotを必ず退避しておく...
*** バーチャルドメインユーザの管理アカウントの作成とPostg...
-- バーチャルドメインユーザを管理する専用のアカウントを作...
# /usr/sbin/groupadd -g 21000 virtual
# /usr/sbin/useradd -g 21000 -u 21000 virtual
-- COLOR(RED){''virtual''}アカウントがPostgresqlのデータ...
$ su - postgres
postgres$ /usr/bin/createuser virtual
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? ...
CREATE USER
-- バーチャルドメインユーザの管理データベース''virtual''...
postgres$ /usr/bin/createdb virtual
CREATE DATABASE
-- ''virtual''アカウントが''virtual''データベースの全権限...
※説明が・・・判りずらいですか?(^^
postgres $ psql virtual
virtual=# grant all on virtual.* to virtual
-- ''virtual''アカウントにて''virtual''バーチャルドメイン...
$ su - virtual
virtual$ psql virtual
CREATE TABLE users (
userid VARCHAR(128) NOT NULL,
password VARCHAR(64) NOT NULL,
home VARCHAR(256) NOT NULL,
uid INTEGER NOT NULL,
gid INTEGER NOT NULL,
active CHAR(1) DEFAULT 'Y' NOT NULL
);
*** Postgresqlのリスナー生成と接続先の設定 [#d34dc5a5]
- yumによってインストールされたPostgresqlは、初期設定では...
そんな訳で当然リスナーも起動していません。~
※リスナーが起動されている場合は、5432portで接続要求待ちと...
-- COLOR(RED){''/etc/rc.d/init.d/postgresql''}ファイルを...
※postmasterの起動オプションに COLOR(RED){''-i''} を追加し...
$SU -l postgres -c "$PGENGINE/postmaster -i -p ${PGPORT}...
: 接続できない場合などは | PGLOG=/var/log/postgres.log ...
エラーの原因が特定できるかもしれません。
-- COLOR(RED){''pg_hba.conf''}ファイルを修正しクライアン...
※yumでインストールした場合、''/var/lib/pgsql/data/pg_hba....
host all all 192.168.0.0 255.2...
: 注意! | 接続可能なネットワークを指定しますが、間違って...
-- 上記の修正が終わったらPostgresqlを再起動します。
# /etc/rc.d/init.d/postgresql restart
- Dovecotでのpgsql認証は、PQconnectdbコマンドによってユー...
そのためサーバであってもリスナーとやりとりしますので、上...
アクセスがうまくいかない場合は、下記をみてがんばってくだ...
-- [[pgAdmin III>http://www.pgadmin.org/]] か [[つきみWeb...
-- 手前ミソだけどこんな風に確認する [[PostgreSQL+CSEを設...
-- [[PQconnectdb データベースサーバーとの接続を新たに確立...
*** Dovecotをpgsql形式に対応させる [#lb0f2a13]
- COLOR(RED){''/usr/local/etc/dovecot.conf''} の認証形式...
auth_userdb = pgsql /usr/local/etc/dovecot-pgsql.conf
auth_passdb = pgsql /usr/local/etc/dovecot-pgsql.conf
- pgsql形式でのアクセス方法等の指定を ''/usr/local/etc/do...
COLOR(RED){./dovecot-0.99.14/doc} の下からコピーしてきま...
# バーチャルドメインユーザの管理データベース・テープルの...
# password は、virtualアカウントを指定する
connect = dbname=virtual user=virtual password=xxxxxx
# password を取得するsql文を指定
password_query = SELECT password FROM users WHERE userid...
# バーチャルドメインユーザのディレクトリ、gid/uid を取得...
# Postfixで指定したディレクトリのuid/gidと同じ物にする
# Postfixでは、gid/uid共に20001/20001としているので固定...
user_query = SELECT home, 20001 AS uid, 20001 AS gid FRO...
# passwdの格納方式
# DES, MD5 を使うのが良いがとりあえず生のパスワードで(...
default_pass_scheme = PLAIN
- ここまできたら、Dovecotを再起動しておきます。(/var/log...
# /etc/rc.d/init.d/dovecot restart
*** バーチャルドメインユーザ管理データベースにデータを入...
- 問題もなくここまでこれていればokっす。あとはバーチャル...
- ''virtual'' アカウントでhogeアカウントを追加するSQLを実...
$ psql virtual
virtual=> insert into users values ('hoge@sea-bird.org',...
-- hoge設定内容は、以下のとおり
|CENTER:項目|CENTER:値|CENTER:意味|h
|userid|hoge@sea-bird.org|バーチャルメールアカウントを指...
|password|hoge|passwordですが、default_pass_schemeに依存...
|home|/home/vpopmail/domains/sea-bird.org/hoge|バーチャル...
|uid|0|user_queryで、20001固定を返しているのでなんでもい...
|gid|0|user_queryで、20001固定を返しているのでなんでもい...
|active|Y|有効なユーザの場合 'Y'を指定します。default='Y'|
-- ドメインのpostmasterと、バーチャルドメイン指定している...
$ psql virtual
virtual=> insert into users values ('postmaster@sea-bird...
virtual=> insert into users values ('postmaster@window-s...
-- POP3でメールを受信するときには、ユーザIDを必ず ''user@...
*** パスワード認証をPLAIN-MD5にしてみる [#i3e40662]
- いくらローカルの環境とはいえ、データベースに生のパスワ...
気持ちが悪いので、PLAIN-MD5 認証を設定してみます。
- hoge@sea-bird.org のパスワードを、''hoge'' とした場合は...
md5_hex("hoge") 部分に、パスワードを設定しコマンドを実行...
この実行で得られた結果が、PLAIN-MD5 認証の値になります。
$ perl -MDigest::MD5 -e 'printf "{PLAIN-MD5}%s\n", Diges...
{PLAIN-MD5}ea703e7aa1efda0064eaa507d9e8ab7e
- hogeのパスワードを更新します。
virtual=> update users set password = '{PLAIN-MD5}ea703e...
where userid = 'hoge@sea-bird.org';
- かんたんSQLコマンド
|CENTER:コマンド|CENTER:用途|h
|drop table テーブル名|テーブルの削除|
|update テーブル名 set 項目名 = '内容' where 項目名 = '条...
|select 項目名 from テーブル名|テーブル項目内容の参照|
|delete from テーブル名 where 項目名 = '条件'|テーブル項...
*** その他の認証 [#ne9afd98]
- ./doc/auth.txt からの抜粋
DES:
mkpasswd
perl -e 'printf "%s\n", crypt("pass", "two-letter-salt...
MD5:
mkpasswd --hash=md5
perl -e 'printf "%s\n", crypt("pass", "\$1\$6-8-letter...
PLAIN-MD5:
perl -MDigest::MD5 -e 'printf "{PLAIN-MD5}%s\n", Diges...
DIGEST-MD5:
perl -MDigest::MD5 -e 'printf "{DIGEST-MD5}%s\n", Dige...
*** COLOR(RED){注意点} [#k13ca181]
- ここでは、メール受信のための設定を行うのです。上記で説...
追加しただけでは外部からメールを受け取ることはできません...
受け取るための設定を行います。
-- /etc/postfix/vmailbox に、受け取るべきアカウントとドメ...
hoge@window-shop.biz window-shop.biz/hoge/Maildir/
-- hash を作成します。この作業を行わないと上記で記述した...
# /usr/sbin/postmap /etc/postfix/vmailbox
-- Postfix を再起動します。
# /etc/rc.d/init.d/postfix restart
*** 参考にさせて頂いたサイト様 [#gb205fe4]
- [[PostgreSQLをコマンドラインで操作する>http://www.atmar...
- [[http://www.atmarkit.co.jp/flinux/rensai/postgres02/po...
ページ名: