phpMyAdminのセキュリティ対策を3種類実施(エイリアス変更/アクセス制限/SSL通信)

2014/11/30[公開]

 WordPressのセットアップやバックアップでMySQLの操作をするのにPhpMyAdminはとても便利ですね。ブラウザからサーバーのデータベースに簡単にアクセスできるということは、セキュリティがパスワードだけだと少し不安です。今回は、自宅のDebianサーバーで私が実施しているphpMyAdminの不正侵入対策を3つ紹介します。

 前提として

 3つの対策ともすべて /etc/phpmyadmin/apache.conf の設定ファイルを書き換えるだけなので簡単です。

このページの目次

スポンサー リンク

エイリアスの変更

 これはDebianならではの対策です。

 Debian標準でインストールしたphpmyadminは、HPのアップロードディレクトリではなく、/usr/share/phpmyadminに本体があります。ブラウザからphpmyadminにアクセスするときにアドレスを入れるのは、ただのエイリアス設定なのです。これを~/phpmyadmin/ から変更するだけで、かなりの効果があります。知らない人が、http://ホスト名/phpmyadminと入れてもログイン画面が出るってのを防ぐだけでも安心感が違います。

 /etc/phpmyadmin/apache.conf の3行目を変更します。

例として、エイリアスを/testnameとした場合です。

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /testname /usr/share/phpmyadmin

 apache再起動後から有効になります

/etc/init.d/apache2 restart

 これで、http://ホスト名/testname がphpmyadminだと知ってる人しかログイン画面に行けなくなります。

ローカルLAN内からのアクセスに限定する

 自宅内や事務所内のサーバーと同じルーターに接続しているときだけ、phpmyadminにログインできるようにする方法です。

 私の場合は、WordPressのバックアップを取るときくらいしかアクセスしないので、自宅内限定でも問題なしです。外からもアクセスが必要だという場合でも、VPN接続などと組み合わせればローカル限定でもいけるでしょうか。

  /etc/phpmyadmin/apache.conf の8行目あたりに追記します。

 ルーターのDHCPアドレスが192.168.22.*** の場合の例です。

# phpMyAdmin default Apache configuration

Alias /testname /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
	Options FollowSymLinks
	DirectoryIndex index.php

	<IfModule mod_php5.c>
		AddType application/x-httpd-php .php

 9-12行目に追加しています。

# phpMyAdmin default Apache configuration

Alias /testname /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php

        #ローカルLAN接続に限定
        Order Deny,Allow
          Deny from All
          Allow from 192.168.22.

        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php

 apache再起動後から有効になります

/etc/init.d/apache2 restart

 動作確認は、自宅外からphpmyadminにアクセスできなければOKです。

SSL通信のみに限定する

 https://~から始まるSSL通信に対応したサイト限定の対策です。

 SSL通信ができるならphpMyAdminのログインも、https://~のアドレスでアクセスしたほうが安全です。まちがえてもhttp://のほうからアクセスできないように、SSL通信限定にする方法です。

 /etc/phpmyadmin/apache.conf の8行目あたりに追記します。

# phpMyAdmin default Apache configuration

Alias /testname /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php

        #ローカルLAN接続に限定
        Order Deny,Allow
          Deny from All
          Allow from 192.168.22.

        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php

 9-10行目に追加しています。

# phpMyAdmin default Apache configuration

Alias /testname /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php

        #SSL接続に限定
        SSLRequireSSL

        #ローカルLAN接続に限定
        Order Deny,Allow
          Deny from All
          Allow from 192.168.22.

        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php

 apache再起動後から有効になります

/etc/init.d/apache2 restart

 すでにSSL通信対応ならば簡単ですね。ここのブログはサイト全体をSSL通信にしていますので、phpMyAdminでもSSL通信にしています。

最後にひとこと

 Debianの標準で入るphpMyAdminでの方法ですが、他のLinuxでも設定方法が違うだけで基本的な方針は同じです。こうしてみるとDebianの初心者向けというか、親切さに関心します。

スポンサー リンク

コメントを残す

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