11.7.1 PAM認証の環境設定
- 〈この項の構成〉
(1) 環境設定の流れ
PAM認証の環境設定の流れを次の表に示します。
項番 |
作業項目 |
説明 |
実行者 |
作業対象のマシン |
---|---|---|---|---|
1 |
PAMの設定 |
OSのPAMの認証機能をHADBサーバが使用するためにPAM設定ファイルを準備します。 |
OSのスーパユーザ |
サーバマシン |
2 |
/etc/shadowファイルの読み取り権限の許可 |
/etc/shadowファイルに対する読み取り権限を持っているOSのグループに,HADB管理者であるOSユーザを追加します。 OSユーザ名とパスワードを使用してPAM認証をする場合に必要な作業です。 |
||
3 |
SSSDの設定 |
OSのSSSDのサービスを設定します。 LDAPサーバなど,外部の認証サーバを使用してPAM認証をする場合に必要な作業です。 |
||
4 |
HADBユーザの作成 |
CREATE USER文でHADBユーザを作成します。 |
DBA権限を持っているHADBユーザ |
|
5 |
秘密鍵ファイルの作成 |
HADBクライアントからHADBサーバに送信した暗号化されたパスワードの復号に使用する秘密鍵ファイルを作成します。 |
HADB管理者 |
|
6 |
公開鍵ファイルの作成 |
HADBクライアントからHADBサーバへパスワードを暗号化して送信するために,パスワードの暗号化に使用する公開鍵ファイルを作成します。 |
||
7 |
サーバ定義の指定 |
PAM認証に関するオペランドを指定します。 |
||
8 |
HADBクライアントでの環境設定 |
サーバマシンで作成した公開鍵ファイルをクライアントマシンにコピーします。また,クライアント定義にPAM認証に関するオペランドを指定します。 |
HADBクライアントを管理するOSユーザ |
クライアントマシン |
上記の各作業については,以降で順次説明します。
(2) PAMの設定
OSのPAMの認証機能をHADBサーバが使用するためには,/etc/pam.dディレクトリにPAM設定ファイルを格納する必要があります。PAM設定ファイルのサンプルファイル($ADBDIR/sample/pam/hadb)を/etc/pam.dディレクトリ下にコピーして,パーミッションを設定してください。設定手順を次に示します。
手順
次のすべての操作は,OSのスーパユーザで実行してください。
-
PAM設定ファイルのサンプルファイルをコピーする
PAM設定ファイルのサンプルファイル($ADBDIR/sample/pam/hadb)を,/etc/pam.dディレクトリ下にコピーしてください。
- 重要
-
PAM設定ファイルのサンプルファイル($ADBDIR/sample/pam/hadb)の内容は変更しないでそのままコピーしてください。
-
PAM設定ファイルの所有者と所有グループを変更する
chown root:root /etc/pam.d/hadb
上記のコマンドを実行して,PAM設定ファイル(/etc/pam.d/hadb)の所有者と所有グループをOSのスーパユーザに変更します。
-
PAM設定ファイルに対するパーミッションを設定する
chmod 644 /etc/pam.d/hadb
上記のコマンドを実行して,PAM設定ファイル(/etc/pam.d/hadb)に対して,OSのスーパユーザが読み取りおよび書き込みが実行できるようにパーミッションを設定します。また,OSのスーパユーザ以外のユーザには,PAM設定ファイルに対する読み取り権限だけを設定します。
- メモ
-
PAM設定ファイルのサンプルファイル($ADBDIR/sample/pam/hadb)の内容を次に示します。
#%PAM-1.0 auth sufficient pam_sss.so auth required pam_unix.so account sufficient pam_sss.so account required pam_unix.so
(3) /etc/shadowファイルの読み取り権限の許可
OSユーザ名とパスワードを使用してPAM認証をする場合は,/etc/shadowファイルに対する読み取り権限を持っているOSのグループに,HADB管理者であるOSユーザを次の手順で追加してください。
手順
/etc/shadowファイルに対する読み取り権限を持つグループshadowを作成し,このグループにHADB管理者であるOSユーザ(adbmanager)を追加する手順を説明します。
次のすべての操作は,OSのスーパユーザで実行してください。
-
/etc/shadowファイルに対する読み取り権限を許可するOSユーザの所属グループshadowを作成する
groupadd shadow
-
/etc/shadowファイルの所有グループをshadowに変更する
chgrp shadow /etc/shadow
-
/etc/shadowファイルのパーミッションを設定する
/etc/shadowファイルに,所有グループに対して読み取り権限だけを許可するようにパーミッションを設定してください。
chmod g+r /etc/shadow
-
/etc/shadowファイルの所有グループshadowにHADB管理者(adbmanager)を追加する
gpasswd -a adbmanager shadow
上記の設定をしないと,HADB管理者以外のOSユーザ名とパスワードを使用してPAM認証を行った際に,ユーザ名とパスワードが正しくてもPAM認証に失敗します。
- メモ
-
PAM認証の際にLDAPサーバなど外部の認証サーバを使用する場合は,上記の作業を実施する必要はありません。
(4) SSSDの設定
LDAPサーバなど外部の認証サーバを使用してPAM認証をする場合は,OSのSSSDのサービスを設定してください。SSSDの設定方法については,OSのマニュアルを参照してください。
SSSDの設定が完了したあとに,次のコマンドをOSのスーパユーザで実行し,SSSDのサービスを起動してください。
systemctl start sssd
SSSDのサービスがすでに起動している場合は,次のコマンドをOSのスーパユーザで実行し,SSSDのサービスを再起動してください。
systemctl restart sssd
SSSDのサービスの起動または再起動が完了したあとに,SSSDのサービスを使用して,LDAPサーバなどの外部の認証サーバを使用するユーザでOSに正しくログインできることを確認してください。
- メモ
-
OSユーザ名とパスワードを使用してPAM認証をする場合は,上記の作業を実施する必要はありません。
(5) HADBユーザの作成
外部ユーザ名(OSユーザ名やLDAPユーザ名など)と同じ名称の認可識別子のHADBユーザを作成してください。DBA権限を持っているHADBユーザで,次のSQL文を実行してください。
CREATE USER "OSUSER01" IDENTIFIED WITH PAM
下線部分には,外部ユーザ名(OSユーザ名やLDAPユーザ名など)を指定します。
上記のCREATE USER文を実行すると,認可識別子がOSUSER01のHADBユーザが作成されます。
- 重要
-
作成したHADBユーザには,権限は付与されていません。「11.8.1 HADBユーザにユーザ権限とスキーマ操作権限を付与する方法」を参照して,必要な権限を付与してください。
- メモ
-
-
ユーザ認証方式をPAM認証からデータベース認証に,またはデータベース認証からPAM認証にあとで変更できます。詳細については,「11.6.4 HADBユーザのユーザ認証方式を変更する方法」を参照してください。
-
HADBユーザのユーザ認証方式を確認したい場合は,「付録B.22 ディクショナリ表の検索」の「(40) HADBユーザのユーザ認証方式を調べる方法」を参照してください。
-
(6) 秘密鍵ファイルの作成
PAM認証を使用する場合,HADBクライアントからHADBサーバへパスワードを送信します。暗号化したパスワードの復号に使用する秘密鍵ファイルを次の手順で作成してください。
手順
次のすべての操作は,HADB管理者で実行してください。
-
秘密鍵ファイルの保存先ディレクトリをサーバマシン上に作成する
mkdir /HADB/.private_key
上記のコマンドを実行すると,秘密鍵ファイルの保存先ディレクトリとして/HADB/.private_keyが作成されます。
-
秘密鍵ファイルの保存先ディレクトリに対する権限を設定する
秘密鍵ファイルの保存先ディレクトリに対する書き込み権限,読み取り権限,および実行権限をHADB管理者だけに設定してください。
chmod 700 /HADB/.private_key
-
秘密鍵ファイルを作成する
OpenSSLのコマンドを実行して,秘密鍵ファイルの保存先ディレクトリ下に秘密鍵ファイルを作成してください。
openssl genrsa -out /HADB/.private_key/adb_privkey.pem 4096
上記のコマンドを実行すると,RSA暗号方式の鍵長4,096ビットの秘密鍵ファイルadb_privkey.pemが作成されます。
- メモ
-
-
秘密鍵ファイルには,任意のファイル名を指定できます。adb_privkey.pem以外でもかまいません。
-
鍵長は4,096ビットにしてください。
-
秘密鍵ファイルには,パスフレーズを設定しないでください。
-
OpenSSLのコマンドの詳細については,OpenSSLのドキュメントを参照してください。
-
秘密鍵ファイルに対する読み取り権限をHADB管理者にだけ設定する
chmod 400 /HADB/.private_key/adb_privkey.pem
- メモ
-
秘密鍵ファイルの保存先ディレクトリおよび秘密鍵ファイルは,PAM認証をやめるときなど不要になった場合は,ユーザが削除してください。
(7) 公開鍵ファイルの作成
HADBクライアントからHADBサーバへパスワードを暗号化して送信するために,パスワードの暗号化に使用する公開鍵ファイルを次の手順で作成してください。
手順
次のすべての操作は,HADB管理者で実行してください。
-
公開鍵ファイルの保存先ディレクトリをサーバマシン上に作成する
mkdir /HADB/public_key
上記のコマンドを実行すると,公開鍵ファイルの保存先ディレクトリとして/HADB/public_keyが作成されます。
-
公開鍵ファイルの保存先ディレクトリに対する権限を設定する
公開鍵ファイルの保存先ディレクトリに対する書き込み権限,読み取り権限,および実行権限をHADB管理者に設定してください。
chmod 755 /HADB/public_key
-
公開鍵ファイルを作成する
OpenSSLのコマンドを実行して,公開鍵ファイルの保存先ディレクトリ下に公開鍵ファイルを作成してください。
openssl rsa -in /HADB/.private_key/adb_privkey.pem -pubout -out /HADB/public_key/adb_pubkey.pem
上記のコマンドを実行すると,秘密鍵ファイル(/HADB/.private_key/adb_privkey.pem)に対応した公開鍵ファイル(/HADB/public_key/adb_pubkey.pem)が作成されます。
- メモ
-
-
秘密鍵ファイルには,「(6) 秘密鍵ファイルの作成」で作成した秘密鍵ファイルを指定してください。
-
公開鍵ファイルには,任意のファイル名を指定できます。adb_pubkey.pem以外でもかまいません。
-
OpenSSLのコマンドの詳細については,OpenSSLのドキュメントを参照してください。
-
公開鍵ファイルに対する読み取り権限を全OSユーザに設定する
chmod 444 /HADB/public_key/adb_pubkey.pem
- メモ
-
公開鍵ファイルの保存先ディレクトリおよび公開鍵ファイルは,PAM認証をやめるときなど不要になった場合は,ユーザが削除してください。
(8) サーバ定義の指定
サーバ定義に次のオペランドを追加してください。
-
adb_auth_passwd_privkey_path
-
adb_cmd_passwd_pubkey_path
- 指定例
-
set adb_auth_passwd_privkey_path = /HADB/.private_key/adb_privkey.pem ...1 set adb_cmd_passwd_pubkey_path = /HADB/public_key/adb_pubkey.pem ...2
-
「(6) 秘密鍵ファイルの作成」で作成した秘密鍵ファイルの絶対パスを指定します。
-
「(7) 公開鍵ファイルの作成」で作成した公開鍵ファイルの絶対パスを指定します。
-
- 重要
-
-
adb_auth_passwd_privkey_pathオペランドを指定しない場合,PAM認証の使用時にパスワードは暗号化されません。このとき,パスワードは平文でHADBクライアントからHADBサーバへ送信されます。パスワードを平文で送信した場合,パスワードが外部に流出するリスクが高まるため,秘密鍵ファイルおよび公開鍵ファイルを作成してパスワードを暗号化することを推奨します。
-
マルチノード機能を使用する場合,adb_auth_passwd_privkey_pathオペランドおよびadb_cmd_passwd_pubkey_pathオペランドの指定に注意が必要です。詳細については,「7.2.12 PAM認証に関するオペランド(set形式)」を参照してください。
-
(9) HADBクライアントでの環境設定
HADBクライアントで必要な環境設定について説明します。
(a) 公開鍵ファイルの保存先ディレクトリの作成
公開鍵ファイルの保存先ディレクトリを作成して権限を設定します。ここで説明している操作は,HADBクライアントを管理するOSユーザで実行してください。
-
Linux版のHADBクライアントの場合
手順
-
公開鍵ファイルの保存先ディレクトリをクライアントマシン上に作成する
mkdir /HADBCLT/public_key
上記のコマンドを実行すると,公開鍵ファイルの保存先ディレクトリとして/HADBCLT/public_keyが作成されます。
-
公開鍵ファイルの保存先ディレクトリに対する権限を設定する
公開鍵ファイルの保存先ディレクトリに対する書き込み権限,読み取り権限,および実行権限をHADBクライアントを管理するOSユーザだけに設定してください。
chmod 700 /HADBCLT/public_key
-
-
Windows版のHADBクライアントの場合
手順
-
公開鍵ファイルの保存先フォルダをクライアントマシン上に作成する
-
公開鍵ファイルの保存先フォルダに対する権限を設定する
公開鍵ファイルの保存先フォルダに対する書き込み権限,読み取り権限,および実行権限を,HADBクライアントを管理するOSユーザだけに設定してください。
-
(b) 公開鍵ファイルの保存
「(a) 公開鍵ファイルの保存先ディレクトリの作成」で作成したディレクトリ下に公開鍵ファイルを保存します。
-
Linux版のHADBクライアントの場合
手順
-
公開鍵ファイルを保存する
次のどちらかの方法で公開鍵ファイルをクライアントマシン上に保存してください。
-
HADBクライアントを管理するOSユーザでサーバマシンにアクセスします。「(7) 公開鍵ファイルの作成」で作成した公開鍵ファイルを,クライアントマシン上に作成した公開鍵ファイルの保存先ディレクトリ下にOSのscpコマンドなどを実行してコピーしてください。
-
「(7) 公開鍵ファイルの作成」で作成した公開鍵ファイルのコピーをHADB管理者から受け取ります。受け取ったファイルをクライアントマシン上に作成した公開鍵ファイルの保存先ディレクトリ下に保存してください。
-
-
公開鍵ファイルに対する読み取り権限をHADBクライアントを管理するOSユーザに設定する
chmod 400 /HADBCLT/public_key/adb_pubkey.pem
-
-
Windows版のHADBクライアントの場合
手順
-
公開鍵ファイルを保存する
次のどちらかの方法で公開鍵ファイルをクライアントマシン上に保存してください。
-
HADBクライアントを管理するOSユーザでサーバマシンにアクセスします。「(7) 公開鍵ファイルの作成」で作成した公開鍵ファイルを,クライアントマシン上に作成した公開鍵ファイルの保存先フォルダ下にOSのscpコマンドなどを実行してコピーしてください。
-
「(7) 公開鍵ファイルの作成」で作成した公開鍵ファイルのコピーをHADB管理者から受け取ります。受け取ったファイルをクライアントマシン上に作成した公開鍵ファイルの保存先フォルダ下に保存してください。
-
-
公開鍵ファイルに対する読み取り権限をHADBクライアントを管理するOSユーザに設定する
-
- メモ
-
公開鍵ファイルの保存先ディレクトリ(公開鍵ファイルの保存先フォルダ)および公開鍵ファイルは,PAM認証をやめるときなど不要になった場合は,ユーザが削除してください。
(c) クライアント定義の指定
クライアント定義に次のオペランドを追加してください。
-
adb_clt_passwd_pubkey_path
- 指定例
-
set adb_clt_passwd_pubkey_path = /HADBCLT/public_key/adb_pubkey.pem
「(b) 公開鍵ファイルの保存」で保存した公開鍵ファイルの絶対パスを指定します。