ページ

2012-06-13

[logwatch]サーバのログを読む [phpmyadmin]

”ろぐほー”のAPIに使用しているサーバはさくらインターネットのVPSを使っています。
サーバにはlogwatchというソフトウェアをインストールして、毎日ログをメールで見ています。


そんなログの一部を紹介するとともに、注意するべき点を紹介したいと思います。

下に貼りつけたのは、ある日のWEBサーバのログです。
 --------------------- httpd Begin ------------------------

 Requests with error response codes
   403 Forbidden
      /: 4 Time(s)
   404 Not Found
      /PMA2005/scripts/setup.php: 1 Time(s)
      /SQL/: 1 Time(s)
      /admin/: 1 Time(s)
      /admin/phpmyadmin/scripts/setup.php: 1 Time(s)
      /admin/pma/scripts/setup.php: 1 Time(s)
      /admin/scripts/setup.php: 1 Time(s)
      /db/: 1 Time(s)
      /db/scripts/setup.php: 1 Time(s)
      /dbadmin/: 1 Time(s)
      /dbadmin/scripts/setup.php: 1 Time(s)
      /myadmin/: 1 Time(s)
      /myadmin/scripts/setup.php: 1 Time(s)
      /mysql-admin/scripts/setup.php: 1 Time(s)
      /mysql/: 1 Time(s)
      /mysql/scripts/setup.php: 1 Time(s)
      /mysqladmin/: 2 Time(s)
      /mysqladmin/scripts/setup.php: 2 Time(s)
      /mysqlmanager/scripts/setup.php: 1 Time(s)
      /p/m/a/scripts/setup.php: 1 Time(s)
      /padmin/: 1 Time(s)
      /php-my-admin/scripts/setup.php: 2 Time(s)
      /php-myadmin/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.2.3/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.2.6/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.4/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.5-pl1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.5-rc1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.5-rc2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.5/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.6-rc1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.6-rc2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.6/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.7-pl1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.5.7/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0-alpha/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0-alpha2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0-beta1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0-beta2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0-pl1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0-pl2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0-pl3/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0-rc1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0-rc2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0-rc3/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.0/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.1-pl1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.1-pl2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.1-pl3/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.1-rc1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.1-rc2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.2-beta1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.2-pl1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.2-rc1/scripts/setup.php: 2 Time(s)
      /phpMyAdmin-2.6.2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.3-pl1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.3-rc1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.3/scripts/setup.php: 2 Time(s)
      /phpMyAdmin-2.6.4-pl1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.4-pl2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.4-pl3/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.4-pl4/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.4-rc1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.6.4/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.7.0-beta1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.7.0-pl1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.7.0-pl2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.7.0-rc1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.7.0/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.0-beta1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.0-rc1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.0-rc2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.0.1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.0.2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.0.3/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.0.4/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.0/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.1-rc1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.1/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2.8.2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin-2/scripts/setup.php: 1 Time(s)
      /phpMyAdmin/: 1 Time(s)
      /phpMyAdmin/scripts/setup.php: 2 Time(s)
      /phpadmin/: 1 Time(s)
      /phpadmin/scripts/setup.php: 1 Time(s)
      /phpdb/: 1 Time(s)
      /phpmanager/scripts/setup.php: 1 Time(s)
      /phpmy-admin/scripts/setup.php: 1 Time(s)
      /phpmyadmin/: 1 Time(s)
      /phpmyadmin/scripts/setup.php: 2 Time(s)
      /phpmyadmin1/scripts/setup.php: 1 Time(s)
      /phpmyadmin2/scripts/setup.php: 1 Time(s)
      /pma/: 1 Time(s)
      /pma/scripts/setup.php: 1 Time(s)
      /pma2005/scripts/setup.php: 1 Time(s)
      /pmadmin/: 1 Time(s)
      /robots.txt: 2 Time(s)
      /sqlmanager/scripts/setup.php: 1 Time(s)
      /sqlweb/scripts/setup.php: 1 Time(s)
      /typo3/phpmyadmin/scripts/setup.php: 1 Time(s)
      /w00tw00t.at.blackhats.romanian.anti-sec:): 1 Time(s)
      /web/phpMyAdmin/scripts/setup.php: 1 Time(s)
      /web/scripts/setup.php: 1 Time(s)
      /webadmin/scripts/setup.php: 1 Time(s)
      /webdb//scripts/setup.php: 1 Time(s)
      /webdb/scripts/setup.php: 1 Time(s)
      /websql/scripts/setup.php: 2 Time(s)
      /xampp/phpmyadmin/scripts/setup.php: 1 Time(s)

 ---------------------- httpd End -------------------------


なんか、めっちゃエラー(404 Not Found)で返っているリクエストがありますね…


私のサーバにはMySQLの管理ソフトである”phpmyadmin”はインストールしていないので、全く無意味なリクエストなのですが、誰かが無作為にサーバに対してリクエストを行いアクセスを試みているようです。


”setup.php”にアクセスしていることを考えると、phpmyadminの初期設定を行い、MySQLを乗っ取ろうとしているのようです。太いやつですね!


もしも、MySQLのrootパスワードを設定せずにphpmyadminをWEBサーバの公開ディレクトリに置いてしまうと、知らないうちに乗っ取られる場合があるので気をつけたほうがよいです。


また、初期設定の瞬間を狙うだけでなく、普通にログインを狙ってくる攻撃もあるので、インターネット上にphpmyadmin等の管理用ツールを公開する場合は強力なパスワードを使用したほうが良いです。


参考になるか分かりませんが、私が以前phpmyadminを使用していたときは以下のように運用していました。
  1. MySQLのrootユーザに強靭な長いパスワードを使用する
  2. 無闇にどこからでもアクセスできるMySQLのユーザを作らない
  3. 普段はphpmyadminを公開ディレクトリに置かない
  4. phpmyadminを使用するときだけ、公開ディレクトリにシンボリックリンクする
”公開ディレクトリ”とは、WEBサーバにインターネット上に公開すると指定したディレクトリのことです。
上のようにすれば、リスクはだいぶ減ると思います。


後、SSHのポート番号の変更やファイアウォールの設定は非常に有効なので必ずしておいたほうが良いです。


VPSがお手頃になってきて、誰でも使えるようになりましたが、その反面セキュリティが考えられていないサーバも増えているようです。


個人情報を取り扱うようなWebサービスを公開する場合には、Webに詳しい人やセキュリティに詳しそうな人に相談すると良いと思います。


でも、そんなに深く考えなくても大丈夫です。
セキュリティを心配して、良い感じのWebサービスのアイディアが潰れてしまうほうがもったいなのでとりあえず公開しちゃいましょう。


そして、後から対策しましょう。

0 件のコメント:

コメントを投稿