[PostgreSQL] Linux へインストール

 セキュアな PostgreSQL を実現するために --with-openssl をつけたのに、なかなかうまくいきません。
./configure --with-openssl -with-includes=/usr/kerberos/include --enable-multibyte=UNICODE --enable-syslog --with-java --with-perl
make
su
make install
UNICODE は EUC_JP でもOKです。後は、
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su -l postgres
cd /usr/local/pgsql/data

openssl req -new -text -out server.req
openssl rsa -in privkey.pem -out server.key
rm privkey.pem
openssl req -x509 -in server.req -text -key server.key -out server.crt
chmod og-rwx server.key

export PATH=/usr/local/pgsql/bin:${PATH}
initdb -D /usr/local/pgsql/data
pg_ctl -D /usr/local/pgsql/data -l logfile start
createuser foo
createdb -E EUC_JP sampledb
psql -U foo sampledb
 ALTER USER postgres WITH ENCRYPTED PASSWORD 'passwd';
でOK
以下のファイルに下記の内容を追記します。
~postgres/.bashrc
export POSTGRES_HOME=/usr/local/pgsql
export PATH="$PATH":$POSTGRES_HOME/bin
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man

/usr/loca/pgsql/data/postgres.conf
autovacuum = on
stats_start_collector = on
stats_row_level = on

listen_addresses = '*'
port = 5432
max_connections = 100

ssl = true
password_encryption = on

log_destination = 'syslog'
syslog_ident = 'postgres'
log_statement = 'all'

/etc/syslog.conf (ファイルの先頭に記述、セパレータはタブのみ)
local0.* /var/log/postgresql.log
syslog の設定をし終わったら killall -HUP syslogd して syslogdHUP シグナルを送ります。

/usr/loca/pgsql/data/pg_hba.conf
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
#host all all ::1/128 trust

# network
hostssl all foo 0.0.0.0/0 md5

設定が終わったら以下で TCP 接続を試してみます
psql -U foo -h localhost -p 5432 sampledb

これでいいと思うんだけど OpenSSL 接続だけうまくいかないです。configure も make も失敗してないのにどうしてでしょう?
コンピュータ > FreeBSD以外のOS | comments (0) | trackbacks (0)

Comments

Comment Form

icons:

Trackbacks