さくらVPS && LAMP && Windows10 ~おまけ~

さて。
前回までで、基本的なLAMP設定はやりました。

…が、もう1つおまけ。


phpMyAdminをもう少しセキュアにしてあげたいと思います。


phpMyAdminはとても便利な反面、けっこう攻撃の対象になります。

実際にapacheaccess_logを見ると、「phpmyadmin」やら「pma」にアタックしてきているのが見て取れると思います。


対策はいくつかあって。

そもそも予想されやすいディレクトphpMyAdminを置かないとか。
上の様に攻撃されやすい名前ではなく、何か他のものにするとか。
認証を掛けて、phpMyAdminにアクセスできなくするとか。


中でもスタンダードなのは、最後の1つ。
Basic認証やDigest認証を掛けるというもの。


Basic認証でも十分と言う人もいますが。
せっかくなので今回は、パスワードがハッシュ化されていてよりセキュアなDigest認証を設定する方法について書いていこうと思います。



これまで…


さくらVPS && LAMP && Windows10 ~その1~

さくらVPS && LAMP && Windows10 ~その2~

さくらVPS && LAMP && Windows10 ~その3~


==============================
Condition
==============================
・さくらVPS
・Windows10
・ターミナルはTera Term使用
LAMPは比較的新しめ

Linux (CentOS7)
Apache 2.4
MySQL 5.6
PHP 7.1


==============================
Step
==============================
(雑ですが…色々とやります)
CentOSをインストール
②一般ユーザーの設定
③鍵認証の設定

================
④ファイヤーウォールの設定
Apacheのインストール
PHPのインストール
MySQLのインストール
phpMyAdminのインストール

================
postfixでメールの設定
⑩任意ドメインの設定
サブドメインの設定
HTTPS

================
⑬Digest認証の設定



==============================
Procedure
==============================

パスワードファイルを作成する。
場所は任意でいいが、ドキュメントルートよりは上が良い。
※今回は「/var/www」とする。

cd /var/www/

htdigest -c .htdigest {領域名} {ユーザー名}

※領域名/ユーザー名共に任意で良い。
今回はphpmyadminに対してなので、「phpmyadmin」とかでもOK。

上のコマンドを実行するとパスワードを聞かれるので、今後認証に使用するパスワードを入力する。


phpMyAdminディレクトリー内に「.htaccess」ファイルを作成し、Digest認証を要求する記載をする。

vi /var/www/html/phpmyadmin/.htaccess

以下を記載。

AuthType Digest
AuthName {領域名}
AuthUserFile /var/www/.htdigest
require valid-user

これだけで、完了。


ちなみにこのままだと、Digest認証でユーザー名/パスワードを聞かれ。
更にphpMyAdminのログインでもユーザー名/パスワードを聞かれ…ちょっと面倒なことになる。

その為よくやるのが、phpMyAdminの方は認証をスキップしてやるということ。

phpMyAdminディレクトリ内を見ると「config.sample.inc.php」みたいなのがある。
(はず…無ければ自作。でも書くことはそんなにないので、安心してください。)

ひとまず、オリジナルファイルから複製。

cd /var/www/html/phpmyadmin
cp config.sample.inc.php config.inc.php

中身で以下の箇所を追記、または変更。

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['user'] = '{MySQLのユーザー名}';
$cfg['Servers'][$i]['password'] = '{MySQLのパスワード}';

さくらVPS && LAMP && Windows10 ~その2~の⑧を参照。



おしまい( ˘ω˘ )