skillup

技術ブログ

Database

MySQLのセキュアな設定

投稿日:2017年3月6日 更新日:

以前SSHの設定についていろいろ書いたんで今回はMySQLに関して。

基本的な処方箋(MySQLに限らないかも)

  • ウィルスソフトのインストール
  • できればデータベースサーバーとアプリのサーバーは分ける
  • ポートを閉じる
  • 入れるソフトは必要最小限
  • アップデートやパッチは最新のものを取り入れよう
  • 基本的な考え方としては権限をなるべく小さくする

ホストのアクセスを制限する

全て /etc/my.cnf へ入力です。

ローカルのみの接続にする

上記を/etc/my.cnfにいれるとローカルのみの接続になります。

また下記のように書くとつなげることのできるホストを制限できます。

LOCAL INFILEコマンドを無効にする

これまた不正な攻撃を許してしまうので、使用不能にしてしまいましょう。

昔はCSVを入れたりしたときに使ったんですけど、今はあまり使わないですな。

rootのユーザー名とパスワードを変更

rootユーザーは最大の権限を持つユーザーであり、非常に危険なので、絶対に使われてはいけません。

そこでセキュアな設定としてはrootユーザーの名称とパスワードを変更してしまうことです。

パスワードを変更するのはよくあることだけどユーザー名を変更するという発想はなかったですね。

テストデータベースや匿名ユーザーの消去

普段、使っているとあまり気づきませんが、ディフォルトでtest databaeやパスワード無しの匿名ユーザーが設定されています。特に意図がなければ消してしまいましょう。MySQL5.7からは最初の設定のrootパスワード変更時オプションで消えるようになっております。

設定できる範囲であらゆる権限を低くする

例えばmysqlディレクトリですが、こちらもrootユーザーやmysqlユーザー以外には入れないようにしましょう。

ディレクトリやファイルの権限を弱くしましょう。

またshow databasesは簡単に全データベースの情報を与えてしまうコマンドなのでできればセーブしましょう。下記で使えなくすることが可能です。

他にもありますが、とりあえずこれぐらいで。

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Webの高速化に関して

Webの高速化に関してメモ。 高速化って言っても幅広いんですけどね。自分が行なっている対策に関して。 一応LAMP環境を前提にしてます。 Contents1 一番大事なのは測定2 DB対策3 フロント …

no image

O/Rマッパー iciqlについて

以前、このブログでも紹介したO/Rマッパーのiciqlについて、使い方や問題点がある程度わかったので書いておきます。 Contents1 インストール2 自動生成3 注意点3.1 Date型のインポー …

no image

slow-query-logについて

データベースを伴う部分でののチューニングですが、大きく分けると SQLを書き直す インデックスを張りなおす プログラム内部でキャッシュを有効化する 設定ファイルの修正 上記のようなかんじになるのではな …

no image

Postgres リモートホストからの接続他

今まで使ってきたデータベースはMySQLがほとんどなのですが、最近少し、Postgresを触っています。 今回はパスワードの設定とリモートからの接続など。 Contents1 postgresへのログ …

no image

HAVING句がらみの計算式

「達人に学ぶSQL徹底指南書」読んでますが、かなり難しいものがでてきましたね。 テーブルは前回のものと同じ以下のものを使います。 name | income ————+——– サンプソン | 4000 …

アーカイブ