MariaDB(MySQL)のセキュリティ関連まとめ

MariaDB(MySQL)のセキュリティに関係する箇所を備忘録としてまとめてみました。

初期設定

/etc/my.cnf.d/server.cnfの設定

参照:https://centosinstall.com/centos/database/mariadb#etcmycnfdservercnf

mysql_secure_installation実行時の設定

MariaDBの初期設定(mysql_secure_installationを実行時)に、 以下の点の設定をしておくこと。
参照:https://centosinstall.com/centos/database/mariadb#mysql_secure_installation ①rootのパスワードの設定
②匿名ユーザーを削除
③rootユーザーのリモートログインをブロック
④testのデータベースを削除

ユーザーの確認

以下のコマンドで確認できる。 ※「SequelPro」などで接続し、データーベース名「mysql」、テーブル名「user」で閲覧することもできる。

初期設定後(rootユーザーの状態)

初期設定後は、以下のようになっている。
①(ホスト)localhost (user)root
②(ホスト)127.0.0.1 (user)root
③(ホスト)::1 (user)root
基本的に3つとも同じで自分自身(サーバー)を意味する。
「Sequelpro」などで接続するときは、「127.0.0.1」を利用する。
外部から接続できないようにすること

ユーザーの追加

同一のユーザー名が存在しない場合は、下記のGRANT文、1行でユーザーを作成できる。 2行で書くと下記のようになる。
①ホスト名をlocalhostにしておき外部から接続できないようにしておく。
②ユーザーに必要以上の不要な権限を与えない。
//外部の第3者が接続する場合は、権限のところを「all」にしてはいけない。allだとファイルを作成することも可能。

ユーザーの権限

現在データベースにログインしているユーザーの権限確認

特定のユーザーを指定して権限確認

①何かしら権限が与えらているゆーざーは以下のように表示される。
※USAGEは何も権限がないことを意味する。

②create userコマンドでユーザーを作成して、何も権限を与えられていない状態では、以下のように表示される。

権限の種類

「ALL」にすると、すべての権限が与えられる。第3者が利用できるユーザーは、できるだけ不必要な権限を与えないこと。以下の公式ページで各々の権限は確認。
参照:MySQL公式ページ
参照:MariaDB公式ページ

権限の付与(範囲)

MariaDBのアップデート・更新

MariaDBの現在のバージョンの確認

MariaDB停止

リポジトリ設定

公式サイトは以下で確認。
参照:MariaDBの公式サイト
以下のコマンド実行。

yum実行

MariaDB起動

バージョンがアップデートされているか、確認。

MySQLの一般的なセキュリティ

以下のページで一般的な情報をチェック。
参照:https://dev.mysql.com/doc/refman/5.6/ja/general-security-issues.html