Debian7にphpMyAdminをインストールして保護する方法
phpMyAdmin
phpMyAdminは、Web上でMySQLを操作するための無料のWebソフトウェアです。 MySQL機能に便利なビジュアルフロントエンドを提供します。
設定
phpMyAdminを使用する前に、サーバーにLAMPをインストールする必要があります。 サーバーにLinux、Apache、MySQL、PHPスタックがない場合は、ここでセットアップするためのチュートリアルを見つけることができます。
ユーザーと必要なソフトウェアを入手したら、VPSへのphpMyAdminのインストールを開始できます。
phpMyAdminをインストールします
phpmyadminをインストールする最も簡単な方法は、apt-getを使用することです。
sudo apt-get install phpmyadmin
インストール中に、phpMyAdminが基本的な構成を案内します。 プロセスが開始したら、次の手順に従います。
- サーバーにApache2を選択します
- dbconfig-commonを使用してphpmyadminのデータベースを構成するかどうかを尋ねられたら、[はい]を選択します
- プロンプトが表示されたらMySQLパスワードを入力します
- phpmyadminへのログインに使用するパスワードを入力します
インストールが完了したら、phpmyadminをapache構成に追加します。
sudo nano /etc/apache2/apache2.conf
phpmyadmin設定をファイルに追加します。
Include /etc/phpmyadmin/apache.conf
apacheを再起動します。
sudo service apache2 restart
次に、youripaddress/phpmyadminに移動してphpmyadminにアクセスできます。 画面はthisのようになります。
安全
残念ながら、古いバージョンのphpMyAdminには深刻なセキュリティの脆弱性があり、リモートユーザーが最終的に基盤となる仮想プライベートサーバーのrootを悪用できるようになります。 これらの攻撃の大部分は、Apacheのネイティブユーザー/パスワード制限でディレクトリ全体をロックダウンすることで防ぐことができます。これにより、これらのリモートユーザーが古いバージョンのphpMyAdminを悪用することさえできなくなります。
.htaccessファイルを設定する
これを設定するには、最初に.htaccessファイルがphpmyadminディレクトリ内で機能するようにします。 これは、phpmyadmin構成ファイルで実行できます。
sudo nano /etc/phpmyadmin/apache.conf
ディレクトリセクションの下の「ディレクトリインデックス」の下に「AllowOverrideAll」という行を追加して、セクションを次のようにします。
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All [...]
.htaccessファイルを構成します
.htaccessファイルを許可すると、phpmyadminログインページにアクセスするためにもログインが必要なネイティブユーザーの設定に進むことができます。
phpmyadminディレクトリに.htaccessページを作成することから始めます。
sudo nano /usr/share/phpmyadmin/.htaccess
.htaccessファイル内でユーザー認証を設定してフォローアップします。 次のテキストをコピーして貼り付けます。
AuthType Basic AuthName "Restricted Files" AuthUserFile /path/to/passwords/.htpasswd Require valid-user
以下に、各行の簡単な説明を示します。
- AuthType:これは、パスワードのチェックに使用される認証のタイプを指します。 パスワードはHTTPを介してチェックされ、キーワードBasicは変更しないでください。
- AuthName:これは、パスワードプロンプトに表示されるテキストです。 ここには何でも入れることができます。
- AuthUserFile:この行は、パスワードファイル(次の手順で作成します)へのサーバーパスを指定します。
- Require valid-user:この行は、パスワードファイルで定義されたユーザーのみがphpMyAdminログイン画面にアクセスできることを.htaccessファイルに通知します。
htpasswdファイルを作成します
次に、有効なユーザー情報を作成します。
htpasswdファイルを作成することから始めます。 htpasswdコマンドを使用して、ブラウザからアクセスできない限り、選択したディレクトリにファイルを配置します。 パスワードファイルには任意の名前を付けることができますが、慣例では.htpasswdという名前を付けます。
sudo htpasswd -c /path/to/passwords/.htpasswd username
パスワードの入力と確認を求めるプロンプトが表示されます。
ユーザー名とパスワードのペアが保存されると、パスワードがファイルで暗号化されていることがわかります。
apacheを再起動して終了します。
sudo service apache2 restart
phpMyAdminへのアクセス
承認されたユーザーのみがログインページにアクセスできるようになるため、phpMyAdminの安全性が大幅に向上します。 youripaddress / phpmyadminにアクセスすると、thisのような画面が表示されます。
生成したユーザー名とパスワードを入力します。 ログイン後、MySQLのユーザー名とパスワードを使用してphpmyadminにアクセスできます。