セキュリティを考慮し、MySQLの匿名ユーザーにパスワードを設定、または削除

MySQLサーバーに接続する際にはMySQLのユーザー名とパスワードが必要になりますが、MySQLインストール時にデフォルトで匿名ユーザーが作られています。この匿名ユーザーのパスワードは設定されていない状態で誰でもログインできてしまう状態なので、匿名ユーザーのパスワードを設定するか、匿名ユーザーが不要ならば削除する事が推奨されています。

 

1)匿名ユーザーにパスワードが設定されていないと・・・


 
匿名ユーザーは、ユーザー名が空で名前がないユーザーで、パスワードが設定されていないと下記のようにユーザー名、パスワードを入力しなくてもMySQLサーバーに接続できてしまいます。
 
$ mysql
 
Welcome to the MySQL monitor. Commands end with ; or \g.
  :
  :
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
 
mysql>

 

2)匿名ユーザーにパスワードを設定


 
①現状の設定確認
 
MySQLのユーザーは”mysql”という名前のデータベースの”user”テーブルに保存されています。
 
(確認結果)
mysql> SELECT Host, User,Password FROM mysql.user where User = ” and Host = ‘localhost’;

+-----------+------+----------+
| Host      | User | Password |
+-----------+------+----------+
| localhost |      |          |
+-----------+------+----------+
1 row in set (0.00 sec)

上記のようにユーザー名が空の匿名ユーザーが存在し、パスワードが設定されていない事が分かります。
 
②匿名ユーザーにパスワードを設定
 
下記のように匿名ユーザーにパスワードを設定します。
  
(実行結果)
mysql> SET PASSWORD FOR ”@’localhost’ = PASSWORD(‘newpwd’);
Query OK, 0 rows affected (0.00 sec)
 

mysql> SELECT Host, User,Password FROM mysql.user where User = '' and Host = 'localhost';
+-----------+------+---------------------------------------+
| Host      | User | Password                              |
+-----------+------+---------------------------------------+
| localhost |      | *1FA85AA204CC・・・          |
+-----------+------+---------------------------------------+
1 row in set (0.00 sec)

 
 
③ログイン確認
 
・ユーザーを指定せずにログイン
 
(確認結果)
$ mysql
ERROR 1045 (28000): Access denied for user ‘rails’@’localhost’ (using password: NO)

 
ログイン出来なくなりました。
 
・匿名ユーザー”を指定してログイン
 
$ mysql -u ” -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g
.
   :
パスワードを入力するとログインできます。
 
 

3)匿名ユーザーの削除


 
匿名ユーザー自体が不要であれば削除します。
下記のようにして実行します。
 
(実行結果)
mysql> DELETE FROM mysql.user WHERE User = ”;
Query OK, 2 rows affected (0.00 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
 
mysql> SELECT Host, User,Password FROM mysql.user where User = ” and Host = ‘localhost’;
Empty set (0.00 sec)

関連記事の目次
VPSサーバーでスナップショットを取得
~障害に備え、リカバリーポイントを作成。
VPSサーバーにログインして、設定内容を確認
~グローバルIPアドレス確認、SSHキーを作成。
VPSサーバーにSSHでログイン
~Tera Term、SSH、公開鍵認証方式
yumコマンドで最新のパッケージにアップデート
~全パッケージを最新にアップデート
Apacheのインストール
~yumコマンドでApacheインストール、iptablesでファイアウォールの設定
PHPとMySQLをインストール
~yumコマンドでPHP、MySQLインストール
WinSCPを使ってWordPressをアップロード
~WinSCPをクライアントPCにインストール、ファイルアップロード方法
WordPressをインストール
~MySQLでWordPress用データベース作成、wp-config.phpファイルの設定
CentOSのファイアウォール設定
~iptablesを使ってネットワークフィルタリング設定を一から行う
OpenSSHの設定をよりセキュアに
~ログイン制限、ポート変更、認証方式
ApacheでTCPのTraceメソッドを無効にする
~Apacheの設定変更、Telnetで動作確認
ヘッダーにApacheバージョンが表示されないようにする
~Apacheの設定変更、Telnetで動作確認
Apacheでディレクトリ内一覧表示を無効にする
~autoindex_moduleのロードを無効にする
セキュリティを考慮し、MySQLの匿名ユーザーにパスワードを設定、または削除
~MySQLの匿名ユーザーにパスワードを設定、または削除
PHPのバージョンが表示されないようにする
~php.iniの設定変更
WordPressディレクトリのパーミッションをセキュアに
~WordPress用ディレクトリの所有グループ、ユーザー、パーミッション設定
パーマリンク設定時のApache設定
~WordPressパーマリンクの設定、Apache .htaccessの設定
WordPressテーマの選定
~テーマ追加の特徴フィルターの項目、テンプレートキング
WordPressで画像のアップロード、サイズ調整、リンクを設定
~アップロード画像の画像サイズ、サムネイル、画像編集、リンク設定
更新可能なRPMパッケージのリストをメールで送信する
~yumコマンド、Bashスクリプト、Cron
Linuxでディスク使用量が多いディレクトリを調べる方法(1)
~du --max-depth
Linuxでディスク使用量が多いディレクトリを調べる方法(2)
~duコマンド、sortコマンド
WordPressデータベースのバックアップとリストア
~コマンドラインでバックアップ、リストア
WordPressのバージョンアップと旧バージョンへの戻し
~データベースとディレクトリのバックアップ、リストア
BashスクリプトでWordPressデータベースを自動バックアップ
~MySQLデータベースをBash、Cronを使って自動バックアップ、メール通知
BashスクリプトでDos攻撃など大量アクセスのログを検知
~Apacheアクセスログ、Dos、Cron、メール通知
テーマ作成
 
ブートストラップ3を使って自作テーマ作成
~Bootstrap3、自作テーマ作成、TwentyFourteen
Bootstrapのフリーのテーマを使ってデザインを簡単にカスタマイズ
~Bootstrap3のスタイルをカスタマイズ
 
WordPresssショートコード
 
簡単なショートコードを作ってみる
~ショートコードの作り方
ショートコードを使って関連記事のリンクを自動で挿入
~ショートコードの簡単なサンプル
ショートコードを使ってディレクトリ内のファイル名を取得し、投稿内にリンクを挿入
~カスタムフィールド利用、PHPで日本語文字列検索などのコーディング
 
AJAX、AngularJSなどその他応用
 
WordPress投稿内でAngularJSを使用
~AngularJS、Bootstrap、アコーディオン
Bootstrap3で作成したナビゲーションメニューをAngularJSに変更
~AngularJS、Bootstrap、自作テーマheder.php
WordPressでAngularJSを使ったGoogleマップを使えるようにする
~AngularJSを使って投稿内にGoogleマップ

コメントを残す

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