PostgreSQLのポート番号を変更する
PostgreSQLのポート番号はデフォルト5432/TCPを使うようになっているんですが、デフォルトのままだと攻撃対象になりやすいので変更した。(なお本来は、そもそも物理的に攻撃対象にならないPrivate IP のポートを使うべきです、はい)
簡単簡単、と思ったら意外にハマった/(^o^)\のでメモメモ。
まず、普通に考えてPostgreSQLの設定ファイルを変更する。設定ファイルは、通常、
/var/lib/pgsql/data/
にある
postgresql.conf
である。
この中の2行を変更すればよい。
#listen_address = 'localhost'
となっているところを、例えば、
listen_address = 'localhost,192.168.0.100'
のように変更する。複数のアドレスはカンマで区切り、両端を'で囲めばよい。
次にポート番号を変更する。
#port = 5432
とデフォルトではコメントアウトされているので、#を外し、任意のポート番号を記述する。
変更したらpostgresqlを再起動する。
> sudo /etc/init.d/postgresql restart
さて、これで変更できたかな?と思ったら甘かったw 繋がらない。
よくよく調べたら、postgresqlの起動スクリプト中に起動時ポート番号が
ハードコードされていたよ\(^o^)/なんだよそれw
/etc/init.d/postgresql
を開いて、
PGPORT=5432
のところを上記のpostgresql.confと同じ値に変更する。
これでpostgresqlを再起動したら無事つながりました。