MySQL での SHA 認証設定
概要
MySQL バージョン 8 以降、データベースユーザパスワードのハッシュはデフォルトで https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password caching_sha2_password
に変更されました。この方法は、廃止されたプロトコル (SHA 256) と現在のプロトコルおよび将来のプロトコルの両方を網羅し、暗号化メカニズム全体のキャッシュ機能とユーザ資格情報の有効な比較を組み合わせます。
新しい MySQL 8 インストールではこれがデフォルトの方法ですが、以前のバージョンからアップグレードした MySQL サーバでは、以前の方法である mysql_native_password
が保持されます。これにより、クライアント側で接続と認証プロセスを更新して設定する必要がありますが、古いユーザがリモート接続を失うことがなくなります。
Pandora FMS では、Web コンソールと PFMS サーバ (モノリシック環境) 間の接続は、Unix タイプの接続ファイル (Unix ソケットファイル) と 共有メモリプロトコル を介して行われます。これらは、ローカル環境は保護され安全であると見なされているため、この特定のケースでは、パスワードとデータの暗号化、エンコード、および送信に使用されるプロトコルは不明確です。
このような状況を考慮し、セキュリティのベストプラクティスを最新の状態に保つために、このチュートリアルでは、デフォルトユーザ pandora
の暗号化プロトコルを mysql_native_password
から caching_sha2_password
に変更することをお勧めします。
前提条件
次のコマンド (長いバージョン) を使用して、MySQL 8.0.4 以降のバージョンがインストールされているかどうかを確認する必要があります。
mysql --version
あるいは短縮版では次のようになります。
mysql -V
次のような内容が表示されます:
mysql Ver 8.0.39-30 for Linux on x86_64 (Percona Server (GPL), Release '30', Revision '41ebc5d9')
ここでは、pandora
という名前のユーザ名と Pandor4!
というパスワードを使用します。
それぞれの特定のケースでは、次の方法でこれらの値を参照できます。
cat /var/www/html/pandora_console/include/config.php | grep dbuser cat /var/www/html/pandora_console/include/config.php | grep dbpass
次のような結果が得られます。
すべてのオペレーティングシステム向けの手順
- PFMS サーバの停止
ターミナルウィンドウで実行する必要があります:
systemctl stop pandora_server
- アクティブなユーザ確認
データベース接続のアクティブユーザ (デフォルトでは pandora
) が mysql_native_password
を使用しているかどうかを確認する必要があります。これを行うには、root
として MySQL にログインし、次のクエリを実行します。
SELECT USER, host, plugin FROM mysql.user WHERE USER = 'pandora';
次のような応答が得られます。
- パスワードタイプの変更
次のステートメントを使用して認証方法を変更し、パスワードを定義します。
ALTER USER 'pandora'@'%' IDENTIFIED WITH caching_sha2_password BY 'Pandor4!';
- 変更の確認
再度実行した場合:
SELECT USER, host, plugin FROM mysql.user WHERE USER = 'pandora';
次のような出力が得られます。
サーバレベルで変更を確認したら、exit;
コマンドを使用して MySQL インターフェイスを閉じ、クライアントレベルで次の手順に進みます。
クライアント設定
概要で説明したように、クライアント側では、使用するオペレーティングシステムの種類(EL 8 /EL 9またはUbuntu)に応じて接続を更新および設定する必要があります。
EL8 / EL9
ほとんどの EL8 および EL9 環境ではデフォルトでインストールされている mariadb-connector-c
パッケージがインストールされている必要があります。
ファイルの存在は次のように確認できます:
ls -l /usr/lib64/mariadb/plugin/caching_sha2_password.so
次のような応答が得られます。
次のステップは、次のコマンドを使用してそのファイルへのシンボリックリンクを作成することです。
ln -s /usr/lib64/mariadb/plugin/caching_sha2_password.so /usr/lib64/mysql/plugin/caching_sha2_password.so
作成されたリンクは次のように確認します:
ls -l /usr/lib64/mysql/plugin/caching_sha2_password.so
次のような応答が得られます。
すべての手順が正常に完了したら、あとは PFMS サーバの再起動 のみです。
Ubuntu
libmariadb3
パッケージをインストールする必要があります。インストールされたバージョンによっては、オペレーティングシステムに付属していない場合があります。その場合は、次のコマンドを使用してインストールする必要があります。
apt-get install libmariadb3
パッケージ caching_sha2_password.so
のインストールにより、必要なファイルが生成されたことが確認できます。
ls -l /usr/lib/x86_64-linux-gnu/libmariadb3/plugin/caching_sha2_password.so
次のコマンドを使用して、フォルダ /usr/lib64/mysql/plugin/
を作成する必要があります。
mkdir -p /usr/lib64/mysql/plugin/
ここで、シンボリックリンクを作成する必要があります。
ln -s /usr/lib/x86_64-linux-gnu/libmariadb3/plugin/caching_sha2_password.so /usr/lib64/mysql/plugin/caching_sha2_password.so
この手順により、サーバは SHA2 認証を使用してデータベースに接続できるようになります。次のステップ (Pandora FMS サーバの再起動) に進み、設定を完了します。
PFMS サーバの再起動
以下を実行します:
systemctl restart pandora_server
しばらくしたら、Web コンソールからステータスを確認します。(メニュー 管理(Management) → サーバ(Servers) → サーバの管理(Manage servers)):