.
WEB/DB 関連 => DAViCAL > 2-1.SQL-DB 作成 と 接続制限
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

davical データベース作成 と 接続制限 ~ DAViCAL

前ページに引き続き、DAViCAL サーバーの環境設定を行います。DAViCAL はHTTPプロトコルを拡張したファイル共有機能である WebDAV と PostgreSQL データベースとの橋渡しを行いカレンダー情報の共有を行います。そのため、環境設定の大半はPostgreSQLサーバーと Apache Web サーバーの設定によって行う事になります。

PGSQL-Server への一時的なアクセス制限の変更

作成した davical データベースのアクセス制限を行います。セキュリティにも関わってきますので注意が必要です。ここでは既に PostgreSQL サーバーを運用している事を前提に説明します。初期PostgreSQLのセットアップはマニュアルを参照してください。

また PostgreSQL サーバーとCalDAVホストが同一で、ファイアウォール(iptables)で PostgreSQL が使用するポートが遮断されている環境を想定しています。環境に応じて設定してください。

pg_hda.conf

PostgreSQL DBサーバーへのアクセス制限は /var/lib/pgsql/data/pg_hda.conf で行います。一時的に local に対して無条件(trust)で PostgreSQL への接続を許可するように /var/lib/pgsql/data/pg_hda.conf を以下のように修正しまします。

/var/lib/pgsql/data/pg_hda.conf

#local all all md5 ← 一時的にコメント
local all all trust ← 追記

変更内容を反映させるため、以下のコマンドを実行します。

$ sudo su - postgres
$ pg_ctl reload -D /var/lib/pgsql/data

Apache と PostgreSQL が同一ホストである事を前提とした場合、TCPソケットで指定する方法もあります。(こちらの方がいいかも)

/var/lib/pgsql/data/pg_hda.conf

host all all 127.0.0.1/32 trust

TCP/IPソケット接続(上記設定)を有効にするには postgres.conf の listen_addresses を有効にする必要があります。(PostgreSQL-7.x の tcpip_socket に該当)

/var/lib/pgsql/data/postgres.conf

#listen_addresses = 'localhost'

listen_addresses = 'localhost'

'localhost' と指定した場合、127.0.0.1(ループバックアドレス)、つまり、自分自身のみに対してTCP/IP 接続を待ち受けます。listen_addresses を変更した場合、PostgreSQL を再起動する必要があります。

# /sbin/service postgresql restart

詳しくは 8.1 マニュアルを参照して下さい。該当ページは 第 20章クライアント認証 になります。

davical データベースとDBユーザーの作成.

CentOS で PostgreSQL をパッケージでインストールしている場合、PostgreSQL は Linux アカウント postgres ユーザー権限で動作しています。PostgreSQL データベースユーザーは慣例として postgres であると仮定しています。

PostgreSQL を実行している Linux ユーザー postgres に切り替えます。

$ sudo su - postgres

postgres ユーザーで rscds (DAViCAL) 初期化スクリプトを実行します。

$ cd ~
$ /usr/share/rscds/dba/create-database.sh
省略
--------------------------------------------------------------------
* * * * ERROR * * * *
The database administration utility failed. This is usually due to the Perl YAML
library not being available.

See: http://wiki.davical.org/w/Install_Errors/No_Perl_YAML
--------------------------------------------------------------------
NOTE
====
* The password for the 'admin' user has been set to 'oGb5tfVq'"

Perl YAML library が使えない旨のエラーが出るのですが、データベース、ユーザーは作成されていました。(完全かどうかは不明) 一応、このままセットアップを進めても使えています。

Web サイトにカレンダーを出力する用途で問題が起きる可能性があります。特に必要としない機能なので未確認です。

最後にブラウザで接続した場合の管理者権限のアカウント情報、admin と パスワードが表示されていますので、メモしてください。このアカウントは DAViCAL システムにブラウザでログインするための管理者アカウントです。

ユーザー管理や共有管理を行う際に必要なアカウントになります。admin ユーザーのパスワードは DAViCAL システムにログイン後に変更する事が出来ます。この作業でデータベース davical と、このデータベース用の posgresql (db)ユーザー davical_dba と davical_app が作成されます。

ドキュメントでは db ユーザーを事前に作成するようになっていますが、rscds-0.9.5-2.noarch.rpm のスクリプトでは適切な権限を持つユーザーも作成されています。

追加された情報の削除.

アンインストールする場合、以下の要領で create-database.sh で作成された情報を削除する必要があります。

[@root] # su - postgres
[@postgres] $ dropdb davical
[@postgres] $ dropuser davical_dba
[@postgres] $ dropuser davical_app
[@postgres] $ /usr/share/rscds/dba/create-database.sh

何らかのエラーにより、再度 create-database.sh を実行する場合も一度、削除してから実行してください。

PGSQL-Server へのアクセス制限

create-database.sh 実行前に修正した local all all trust (pg_hda.conf) ではセキュリティ上好ましくありませんので戻しておきます。

/var/lib/pgsql/data/pg_hda.conf

/var/lib/pgsql/data/pg_hda.conf
local davical davical_dba trust
local davical davical_app trust ← これがいるのかどうかは良く分からない
local all all md5

この例では、Unix ソケットによる全てのユーザーの接続に対し、md5 パスワード認証を求めます。例外として davical_dba ユーザーが davical データベースへ接続する場合は認証を求めない設定です。

設定ファイルを再読み込みします。

$ sudo su - postgres
$ pg_ctl reload -D /var/lib/pgsql/data

以上でデータベース周辺の設定はおしまいです。設定例ですので、そのまま写さないで、それぞれのポリシに応じて設定してください。

CentOS-4.x のインストール直後の PostgreSQL の設定は ident sameyuser だったと思います。 http://www.postgresql.jp/document/pg810doc/html/auth-methods.html#AUTH-IDENT

続いて Apache の公開設定と DAViCAL の設定ファイルを作成します。

CalDAV サーバー構築


PHP に関する書籍案内


MySQL に関する書籍案内

bottom_mark
ページ最上部
ページ最上部 前のページ