VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

VPS(レンタル)サーバー上のMySQL初期設定確認

VPSサーバーのMySQLの初期設定状態を確認し、セキュリティ的に問題のある設定項目は修正します。
管理人の環境は、”お名前.com”のVPSサーバーでCentOS6.2です。

MySQLのパッケージの確認


 
MySQLのどのパッケージがインストールされているか確認します。
 
(実行例)
$ rpm -qa | grep mysql
mysql-5.1.67-1.el6_3.x86_64
mysql-devel-5.1.67-1.el6_3.x86_64
php-mysql-5.3.3-14.el6_3.x86_64
mysql-libs-5.1.67-1.el6_3.x86_64
mysql-server-5.1.67-1.el6_3.x86_64

 

設定ファイルの保存場所の確認


 
(実行例)
$ rpm -qc mysql-libs
/etc/my.cnf
 

起動スクリプトの配置場所の確認


(実行例)
 
$ rpm -ql mysql-server | grep init
/etc/rc.d/init.d/mysqld
 

MySQLアカウントの初期状態


 
デフォルト状態では、”root”ユーザーと匿名ユーザー(ユーザー名を指定せずにMySQLサーバーに接続できる)がパスワードを設定せずに作られています。
 
MySQLサーバーに接続する際は、通常は(ユーザーにパスワードが設定されている)
“mysql -u ユーザー名 -p”
と入力してパスワードを入力しますが、初期状態では、
“mysql -u root”や”mysql”(匿名ユーザー、ユーザー名を指定しない)と入力しただけで接続できる状態になっています。
 
(匿名ユーザーの実行例)
$ mysql
 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 30
   :

 

初期状態の設定確認


 
MySQLサーバーが起動していない場合は、”/etc/rc.d/init.d/mysqld start”で起動します。
 
MySQLの”root”ユーザーでサーバーに接続し、ユーザーの設定状況を確認します。
(実行例)
$ mysql -u root
mysql> SELECT Host, User,Password FROM mysql.user;
+--------------------+---------------+-------------+
| Host               | User          | Password    |
+--------------------+---------------+-------------+
| localhost          | root          |             |
| test.example.com   | root          |             |
| 127.0.0.1          | root          |             |
| localhost          |               |             |
| test.example.com   |               |             |
| 127.0.0.1          |               |             |
+--------------------+---------------+-------------+

“root”ユーザー、匿名ユーザー(User欄が空欄)のパスワード欄が空欄になっています。
 

MySQLのrootユーザーにパスワード設定


 
上記の各ホスト(localhost,test.example.com,127.0.0.1)のrootユーザーに対してパスワードを設定します。
 
(実行例)パスワードを’newpwd’とした場合
mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘newpwd’);
mysql> SET PASSWORD FOR ‘root’@’test.example.com’ = PASSWORD(‘newpwd’);
mysql> SET PASSWORD FOR ‘root’@’127.0.0.1’ = PASSWORD(‘newpwd’);
 

匿名ユーザーにパスワード設定、または匿名ユーザーを消去


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

設定後の確認


 
・パスワードが設定されているか確認
 
mysql> SELECT Host, User,Password FROM mysql.user;
 
パスワード欄に文字列が入力されている事を確認します。
 
・MySQLサーバーへの接続確認
 
mysqlコマンドラインを一度終了し、再度、パスワードを指定してログインできるか確認します。
 
(実行例)
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
  :
モバイルバージョンを終了