MariaDB 10.1: CentOS 7でパスワードセキュリティを強化!古いパスワードから新しいパスワードに変更 & secure-authを有効化
MariaDB 10.1 で古いパスワードを新しいパスワードに変更し、secure-auth を有効にする方法
このチュートリアルでは、CentOS 7 で実行されている MariaDB 10.1 の古いパスワードを新しいパスワードに変更し、secure-auth を有効にする方法を説明します。
secure-auth は、MariaDB の認証メカニズムを強化するセキュリティ機能です。有効にすると、パスワードハッシュがより安全な方法で保存され、ブルートフォース攻撃のリスクが軽減されます。
手順
- MariaDB サーバーを停止します。
sudo systemctl stop mariadb
- mysql セッションを開きます。
sudo mysql
- 現在のパスワードを使用してログインします。
mysql> USE mysql;
mysql> ALTER USER 'root'@'localhost' PASSWORD('old_password');
- 新しいパスワードを入力します。
mysql> ALTER USER 'root'@'localhost' PASSWORD('new_password');
- secure-auth を有効にします。
mysql> UPDATE mysql.user SET plugin='auth_socket' WHERE user='root' AND host='localhost';
- 変更を保存して終了します。
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
sudo systemctl start mariadb
これで、MariaDB 10.1 のパスワードが変更され、secure-auth が有効になりました。
注:
- 上記の手順を実行する前に、MariaDB サーバーをバックアップすることをお勧めします。
- 新しいパスワードは安全な場所に保管してください。
- secure-auth を有効にした後、古いクライアントアプリケーションがデータベースに接続できなくなる場合があります。その場合は、クライアントアプリケーションを更新する必要があります。
#!/bin/bash
# MariaDB サーバーを停止
sudo systemctl stop mariadb
# mysql セッションを開く
sudo mysql
# 現在のパスワードを使用してログイン
mysql> USE mysql;
mysql> ALTER USER 'root'@'localhost' PASSWORD('old_password');
# 新しいパスワードを入力
mysql> ALTER USER 'root'@'localhost' PASSWORD('new_password');
# secure-auth を有効にする
mysql> UPDATE mysql.user SET plugin='auth_socket' WHERE user='root' AND host='localhost';
# 変更を保存して終了
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
# MariaDB サーバーを再起動
sudo systemctl start mariadb
実行方法
- 上記のコードを
change_password.sh
という名前のファイルに保存します。 - 以下のコマンドを使用してスクリプトを実行します。
sudo sh change_password.sh
注意事項
phpMyAdmin は、Web ブラウザを使用して MariaDB を管理するためのツールです。phpMyAdmin を使用してパスワードを変更するには、以下の手順を実行します。
- phpMyAdmin にログインします。
- 左側のメニューから サーバー > ユーザー を選択します。
- 編集 をクリックして、root ユーザーのパスワードを変更します。
- 新しいパスワード と 確認用パスワード フィールドに新しいパスワードを入力します。
- 実行 をクリックして変更を保存します。
- 左側のメニューから スーパーバイザ > グローバル設定 を選択します。
- 認証 タブをクリックします。
- 認証プラグイン ドロップダウンリストから auth_socket を選択します。
mysqlslap ツールを使用する
mysqlslap は、MariaDB サーバーと対話するために使用できるコマンドライン ツールです。mysqlslap を使用してパスワードを変更するには、以下のコマンドを実行します。
mysqlslap --user=root --password=old_password -e "ALTER USER 'root'@'localhost' PASSWORD('new_password'); UPDATE mysql.user SET plugin='auth_socket' WHERE user='root' AND host='localhost'; FLUSH PRIVILEGES;"
- 上記のコマンドを実行する前に、old_password と new_password を実際のパスワードに置き換えてください。
MariaDB 設定ファイルを編集する
MariaDB 設定ファイルを編集して、パスワードを変更することもできます。MariaDB 設定ファイルは通常、/etc/my.cnf
または /etc/mysql/my.cnf
にあります。
MariaDB 設定ファイルを編集するには、以下の手順を実行します。
- 以下のコマンドを使用して、MariaDB 設定ファイルをテキストエディタで開きます。
sudo nano /etc/my.cnf
- 以下の行を見つけます。
[client]
user=root
password=old_password
[mysql]
default-authentication-plugin=auth_socket
- 以下のコマンドを使用して、テキストエディタを保存して閉じます。
Ctrl+O
Ctrl+X
- 以下のコマンドを使用して、MariaDB サーバーを再起動します。
sudo systemctl restart mariadb
mysql database mariadb