レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

MySQLインストール直後のセキュリティー設定(mysql_secure_installation)

MySQLをインストールした直後は管理者(root)アカウントの
パスワードが未設定であったり、everyoneユーザーへのアクセス権があったりと、
そのまま利用するにはあまり良くない状態で構成されています。
そんな設定を一括して行う事ができる
「mysql_secure_installation」の実行は忘れずに行っておくべきプログラムです。

 

MySQLインストール直後のセキュリティー設定(mysql_secure_installation)

MySQLインストール直後のセキュリティー設定を一括して行える
「mysql_secure_installation」は単なる実行ファイルです。

MySQLサーバーをインストールすると「mysqlやmysqld」と同じ実行ディレクトリに、
一緒にインストールされています。

そのプログラムを実行して「Y/n(Yes or No)」に答えていくだけで、
最低限のセキュリティー設定を行う事ができます。

インストール直後にMySQLサーバーの起動・終了、接続確認が行えたところで、
すぐに実行して設定の変更を行っておくといいでしょう。

この実行を行うまでに以下の手順を済ませておく必要があります。

MySQLサーバーの起動・終了の確認まで行えたら、
作業を楽にするためにも、MySQLWorkbenchで接続可能な状態にしておくと便利でしょう。

MySQLWorkbenchはMacOSXの対応バージョンが明確に公開されていませんでした。
その為、以下で対応するであろうバージョンを紹介しています。

インストールを済ませたら、接続設定を行って
「mysql_secure_installation」実行前の状態で接続ができることを確認しておくと、
実行後に接続ができないと言った場合にも、問題の切り分けが容易になります。

 

なお、実行前のアカウント設定は以下のような状態でした。

mysql_secure_installation_st01

実行前のユーザー権限の例・mysql_secure_installation実行例

 

「mysql_secure_installation」の実行

では、実際に「mysql_secure_installation」を実行します。

mysql_secure_installation実行ファイルは、
インストール済みの「mysql/mysqld」実行ファイルディレクトリにあります。

インストールした「mysql/mysqld」の実行ディレクトリが分からない場合は、
以下の手順で調べて、Finderに表示しておくとドロップするだけで楽にパスの入力できます。

ターミナルを開き「mysql_secure_installation」までの
ファイルフルパスを入力するか、
ターミナル画面にmysql_secure_installation実行ファイルをドロップします。

mysql_secure_installation_st02

コマンドの入力と実行・mysql_secure_installation実行例

 

rootユーザーによるログイン・空パスワード(Enter)の入力

実行して最初にrootパスワードの入力を求められます。
MySQLサーバーをインストールした直後であれば、パスワードは設定されていません。

何も入力せず、Enterを押下します。

mysql_secure_installation_st03

rootパスワード(空)の入力・mysql_secure_installation実行例

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we’ll need the current password for the root user. If you’ve just installed MySQL, and you haven’t set the root password yet, the password will be blank, so you should just press enter here.

Enter current password for root (enter for none):(Enter)
OK, successfully used password, moving on…

(意訳)注:このスクリプトのすべての部分を実行することは、使用されているすべてのMySQLサーバで推奨されています! それぞれの手順を注意深くお読みください!

パスワードを確保するためにMySQLにログインするには、rootユーザーの現在のパスワードが必要です。 MySQLをインストールしたばかりで、まだrootパスワードを設定していない場合、パスワードは空白になりますので、ここでenterを押すだけです。
rootの現在のパスワードを入力します(noneの場合はenter)。

 

rootパスワードの設定

続けて、rootパスワードを設定します。

「Y」を入力して、
続けて新しくrootに設定するパスワードを2回入力します。

mysql_secure_installation_st04

rootパスワードの設定と入力・mysql_secure_installation実行例

Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation.
Set root password? [Y/n] Y

New password: (新しいパスワード)
Re-enter new password: (新しいパスワード)
Password updated successfully!
Reloading privilege tables..
… Success!

(意訳)rootパスワードを設定すると、誰も適切な権限なしにMySQL rootユーザにログインできなくなります。
ルートパスワードを設定しますか? [Y/n]

 

匿名ユーザーの削除

次に匿名ユーザー(anonymous)アカウントの削除を行います。
通常は特に必要はありませんので削除します。

mysql_secure_installation_st05

anonymousアカウントの削除確認・mysql_secure_installation実行例

By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.

Remove anonymous users? [Y/n] Y
… Success!

(意訳)デフォルトでは、MySQLインストールには匿名ユーザーが存在するため、誰でもMySQLにログインできるようになり、ユーザーアカウントを作成する必要はありません。 これは、テストのためのもので、インストールを少しスムーズにするためのものです。 プロダクション環境に移行する前に削除する必要があります。
匿名ユーザーを削除しますか?[Y/n]

 

rootユーザーのリモートログイン可否

rootユーザーでリモート(MySQLサーバー以外の端末からのアクセス)操作を
許可するか否かの設定です。

mysql_secure_installation_st06

rootユーザーのリモートアクセス無効化・mysql_secure_installation実行例

Normally, root should only be allowed to connect from ‘localhost’. This ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
… Success!

(意訳)通常、ルートは「localhost」からの接続のみが許可されるべきです。 これにより、誰かがネットワークからのルートパスワードを推測できなくなります。
リモートからのrootログインを拒否しますか?[Y/n]

 

testデータベースの削除

インストール時にテスト用データベースが自動的に作成されています。
通常、このテストデータベースは必要ありませんので削除します。
※必要があればテスト用に後から作成するだけです。

mysql_secure_installation_st07

testデータベースの削除確認・mysql_secure_installation実行例

By default, MySQL comes with a database named ‘test’ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.

Remove test database and access to it? [Y/n] Y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

(意訳)デフォルトでは、MySQLには誰でもアクセスできる ‘test’という名前のデータベースが付属しています。 これはテスト専用のものでもあり、運用環境に移行する前に削除する必要があります。
テストデータベースとそのアクセスを削除しますか?[Y/n]

 

権限テーブル(アクセス権)の更新確認

rootユーザーのパスワード設定、匿名ユーザーの削除など、
これまでに行った権限テーブルに対しての変更を有効化します。

mysql_secure_installation_st08

権限テーブルの更新確認・mysql_secure_installation実行例

Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

Reload privilege tables now? [Y/n] Y
… Success!

Cleaning up…

(意訳)特権テーブルをリロードすると、これまでに行われたすべての変更がすぐに有効になります。
今すぐ特権テーブルを再ロードしますか?

 

以上で設定がすべて終了します。

mysql_secure_installation_st09

設定の完了メッセージ・mysql_secure_installation実行例

All done! If you’ve completed all of the above steps, your MySQL installation should now be secure.
Thanks for using MySQL!

(意訳)すべて完了! 上記の手順をすべて完了した場合は、MySQLのインストールが安全になるはずです。
MySQLをご利用いただきありがとうございます!

 

最後に「All done!」と表示されていれば、
「mysql_secure_installation」の処理はすべて終了です。

すべて終了した後に実際にMySQLデータベースにログインして確認します。

 

プロモーション

Google or AdMax Promotion (srvpos)

MySQLへ接続し確認

MySQLWorkbenchを開き「mysql_secure_installation」実行前に、
接続していたコネクションからログインします。

mysql_secure_installation_st10

Workbenchからのログイン・mysql_secure_installation実行例

 

rootパスワードを設定しましたのでパスワードの入力画面が表示されます。
設定した新しいパスワードを入力し、ログインします。

mysql_secure_installation_st11

rootパスワード入力・mysql_secure_installation実行例

 

ログインしたらサイドメニューの「Users and Privileges」を選択し、
ユーザー権限の状態を確認します。

以下のように「<anonymous>」アカウントが削除され、
「root@」の後ろのホスト部分がローカルのみに変更されています。

mysql_secure_installation_st12

ユーザー権限の更新・mysql_secure_installation実行例

 

後は、必要に応じて推測されにくいユーザーの追加やパスワード設定を行います。

 

参考

5.4.4 mysql_secure_installation — Improve MySQL Installation Security

This program enables you to improve the security of your MySQL installation in the following ways:

  • You can set a password for root accounts.
  • You can remove root accounts that are accessible from outside the local host.
  • You can remove anonymous-user accounts.
  • You can remove the test database (which by default can be accessed by all users, even anonymous users), and privileges that permit anyone to access databases with names that start with test_.

mysql_secure_installation helps you implement security recommendations similar to those described at Section 2.10.4, “Securing the Initial MySQL Accounts”.

(引用)MySQL :: MySQL 5.7 Reference Manual :: 5.4.4 mysql_secure_installation — Improve MySQL Installation Security

 

MacPortでも「mysql_secure_installation」の実行を推奨しています。

Step 5: Optional security configuration

There is an interactive program to secure a MySQL installation.

The following is a more detailed process that may achieve the same results as the interactive program. Place the following into mysql_security.sql and replace the 'MyNewPass' with your root password. Note that the SQL will remove all access for root from any location other than ‘localhost’. You might like to keep this SQL file – all the lines beginning with ‘–‘ are doc-comments about how to use it.

Wrapper no longer exists…

The server startup options --skip-networking and --skip-grant-tables may be useful while implementing security.

See also http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html#resetting-permissions-unix

(引用)howto/MySQL – MacPorts

 


AdMax Promotion

公開日:

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。