0

phpMyAdmin 導入 セキュリティ対策 通信経路の暗号化(SSL)とAliasディレクティブでのアクセス制御

目的

phpMyAdminの設定を変更して、より安全に運用する

phpMyAdminは便利なツールですが、たびたび脆弱性が指摘されており、外部からの悪意ある攻撃も多い。
万が一クラックされ中に入られてしまうと、DB内データの盗聴リスクがある。

対策①

http://xxx.xxx.xxx.xxx/phpmyadmin というURLは他人が推測しやすく
「サーバーにphpMyAdmnがインストールされている」と外部にわざわざ言っているようなもんです。
URLを分かりにくくします。

cp -ai phpMyAdmin.conf phpMyAdmin.conf.`date +%Y%m%d-%H%M%S`
vi phpMyAdmin.conf
- - - 
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
↓
#Alias /phpMyAdmin /usr/share/phpMyAdmin
#Alias /phpmyadmin /usr/share/phpMyAdmin
Alias /phpmyadmin_hoge /usr/share/phpMyAdmin
         ↑
- - - 
diff_mysqladmin.conf

httpd 再起動
service httpd stop
service httpd start

これで、ブラウザでhttp://xxx.xxx.xxx.xxx/phpmyadmin へのアクセスはNOT FOUNDとなり、
http://xxx.xxx.xxx.xxx/phpmyadmin_hoge でのアクセスできます。

が、通信経路が暗号化されてないので、対策②を実施します。

対策②通信経路が暗号化し、パスワードの漏洩を防止

phpMyAdminにログインするときに、データベースのユーザー/パスワードを入力してログインすることになりますが、
通常のHTTPアクセス(http:// で始まるURL)だと、通信経路が暗号化されていないため、情報が第三者に盗み見られる可能性がある。

ApacheでSSLを使うにはmod_sslが必要
yumでいれましょう。

# yum -y install mod_ssl
# service httpd rstart
# httpd -M | grep ssl
 ssl_module (shared) ⇐ OK!

これでapacheにsslモジュールが組み込まれたので、httpsアクセスしてみましょう。

https://xxx.xxx.xxx.xxx/phpmyadmin_hoge

ブラウザから信頼されてないサイトへのアクセスという内容の警告がでるかと思いますが、
今回は通信経路の暗号化が目的であるので、正規のSSL証明までとる必要はないかと思います。
#今回の要件(暗号化通信)ではサイト信頼性は不要といういみです。。念のため。
ff

これで、通信経路上が暗号化通信が担保され、セキュアアクセスが可能となります。
SSLで通信する限りにおいては、通信経路上でユーザー名/パスワードが第三者に漏れることはありませんので、phpMyAdminを使うときはhttpではなくSSL(https://)で接続するようにしましょう。

以上です。

コメントを残す

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