インストール直後のXAMPPにパスワードの設定やIPアドレスによるアクセス制限といった最低限のセキュリティ設定を行う方法をまとめました。
以前のバージョンのXAMPPでは専用のセキュリティページが設けられており、ブラウザから視覚的に分かりやすく設定できたのですが、現在の最新バージョン(令和3年2月時点)のXAMPPではセキュリティページは廃止されておりShellというコマンドベースを使って設定していくことになります。
XAMPPを使ってWordpressをローカル環境に構築する方法は別の記事にまとめておりますので、必要な方はそちらもご参照ください。
この記事の目次
XAMPPのセキュリティ設定方法
この記事ではXAMPPの最低限のセキュリティ設定として、
- MySQL(MariaDB)にパスワードを設定する
- phpMyAdminのログイン方法を変更する
- ローカル環境を構築したPCでしかアクセスできなくする
以上の3点を設定する方法を解説しています。
ローカル環境なので本番サイト程のセキュリティは不要かと思いますが、これらの設定はすぐに終わるので悪意のあるプログラムに攻撃されるリスクを少しでも減らしておきましょう。
事前に準備するものは正常動作しているXAMPPだけで大丈夫です。
Shellというコマンドベースもザンプに付属していますので問題なし。
phpファイルの編集作業もありますがメモ帳などで対応可能です。
本記事で取り扱う作業と流れは以下です。
- 1.データベースにパスワードを新規設定する
1-2.データベースに設定したパスワードを変更する
- 2.phpMyAdminのログイン認証形式を変更する
2-2.非公開パスフレーズを設定する方法
- 3.Apacheのhttpd.confファイルでIPアドレスを制限
太字のところがメインの作業となります。
「1-2と2-2」は参考です。飛ばしてもらってもOK!
では早速やっていきましょう!
MySQL(MariaDB)にパスワードを設定する
始めに...XAMPPで使用されるデータベースはMySQLでしたが、その後MySQLから派生したより高性能なMariaDBというものに変更されました。
ただデータベースは同じように利用できるため、XAMPPのコントロールパネルの名前もMySQLとなっております。ここではMySQL≒MariaDBで問題ありません。
XAMPPのデータベースにパスワードを新規設定する方法です。
では早速設定していきましょう!
まずはXAMPPのApacheとMySQLが起動していることを確認します。
まだ起動していない場合はStartを押して両方起動します。
続いてShellボタンをクリックしてコマンド端末を起動し、一行ずつコマンドを入力していきます。
(画像が離れると分かりにくくなりますので各コマンドの内容は割愛します。)
cd mysql\bin
上のコマンドを入力してエンターを押します。(コピペでOK)
mysql -u root
続いて上のコマンドを入力してエンター、最後にMariaDB [(none)]>と出ればOK!
set password=password('新規パスワード');
新規パスワードはもちろん任意のパスワードです!
半角コロンの中に入れて入力し、エンターを押します。
「Query OK」と出ればデータベースの新規パスワードの設定完了です。
quit
上のコマンドを入力してエンターを押し、データベースからログアウトしましょう。
冷たくByeされればOKです・w・
データベースに設定したパスワードを変更する
「set password」で入力したデータベースのパスワードを変更する方法です。
XAMPPに設定してあるデータベースのパスワードの変更方法です。
インストール直後の方は先ほどの新規設定のみでOKなので
「phpMyAdminのログイン認証形式を変更する」に進んで下さい。
必要な方が少なそうなので簡略して一気にいきます!
XAMPPのApacheとMySQLを起動し、Shellアイコンをクリックしてコマンドラインインターフェイスを起動し、コマンドを打ち込んで既存のパスワードを変更します。
cd mysql\bin
でフォルダ移動します。
mysql -u root -p
パスワードが設定されている場合は最後に「-p」を付けます。
エンターを押すとパスワードの入力が求められるので設定してあるパスワードを入力してMySQL(MariaDB)にログイン。
use mysql;
で使用するデータベースを選択。
alter user 'root'@'localhost' identified BY '変更後のパスワード';
を実行してパスワードを変更しましょう。
quit
でログアウトすればパスワード変更完了です。
Wordpressのデータベース情報の編集
XAMPPのデータベースを含め、Wordpressに使用しているデータベースの情報を変更するとサイトアクセス時に「データベース接続確立エラー」が出てしまいます。
Wordpressは「wp-config.php」というファイルにデータベースに接続する為の情報を保存しておりますので、こちらを新しいパスワードに書き換えます。
XAMPPの場合は
C: > xampp > htdocs > wordpress > wp-config.php
にあります。インストール先を変更している場合は変わってます。
コチラを開いて35行目あたり(画像参照)の「define( 'DB_PASSWORD', '');」の「''」の中にあるパスワードを設定したものに変更しましょう。
(今回の例ではパスワードは設定していないので空になっています。)
phpMyAdminのログイン認証形式を変更する
これでXAMPPのデータベースにパスワードが設定できました。
続いてphpMyAdminのログイン認証方法を変更しましょう。
XAMPPのコントロールパネルよりMySQL欄の「Admin」をクリックするとphpMyAdminのトップページに飛ぶことが出来ます。
インストール直後のパスワードを設定していない状態だと、ログインした状態でそのまま管理画面が開きましたが...
データベースにパスワードを設定した後は、エラーが発生するようになります。
そこで先ほど設定したパスワードとユーザー名の入力画面が出るように設定します。
phpファイルを編集するので、いったんApacheとMySQLを停止します。
インストールしたxamppフォルダ内の「config.inc.php」というファイルにログイン情報が保存されていますのでコチラを編集します。
C: > xampp > phpMyAdmin > config.inc.php
と辿り、開きます。(メモ帳などでもOK)
画像を参考に「'auth_type'」と「user」の値をそれぞれ書き換えます。
- config → cookie
- root → 削除
書き換えが完了したら、保存して閉じましょう。
再度XAMPPのコントロールパネルからApacheとMySQLを起動し、MySQLの欄にあるAdminボタンをおしてphpMyAdminページを開いてみます。
これでログイン画面が出現します。
ユーザー名は「root」パスワードに先ほどのコマンドラインインターフェイスで設定したパスワードを入力すればログインできます。
非公開パスフレーズを設定する
コチラはおまけです。やってもやらなくてもXAMPPは動きます。
気になったので解決しときました。
phpMyAdminにログインするとページの下に何やらエラーが…
「設定ファイルの中に記述されているパスフレーズ(blowfish_secret)が短すぎます」
とのことでした。この警告の意味は、
セキュリティ向上の為に自分の持っているファイルに非公開パスフレーズを設定し、そのフレーズをもとに暗号化します。
といった内容です。
簡単に消せたのでパスフレーズの設定方法も書いておきます。
先ほど「cookie」と書き換え「root」を削除するために編集したphpファイルをもう一度開きます。
C: > xampp > phpMyAdmin > config.inc.php
こちらの「'blowfish_secret'」の中に'xampp'という文字列が入っていますが、これがパスフレーズです。
短すぎますとあるので調べてみると32文字以上にすればOKらしいです。
覚える必要はないのでネットで文字列ランダム生成システムなるものをお借りして適当な英数字の組み合わせを32文字分作り、これをパスフレーズとして設定しました。
再度アクセスしてみると消えていました。
めでたしめでたし。
ローカル環境にアクセスできるIPを制限する
ここまでのセキュリティ設定でひとまず安心ですが、更にApacheのhttpd.confファイルでIPアドレスを制限し、ローカル環境を構築したパソコンでしかアクセスできないように設定変更します。
セキュリティについてあまり詳しくないのですが、XAMPPを使ってローカル環境を構築したパソコンがオンラインで更にApacheとMySQLが起動している状態だと同じ回線を使用しているユーザーがアクセスできるようです。
PCを仮想WEBサーバーにしているのでlocalhostの代わりにそのパソコンが使用しているIPアドレスを直接指定してあげればページにアクセスが可能です。
つまるところこれが「これらのXAMPPページは一般的にネットワーク経由でアクセス可能です」と言われている所以でしょうか?
実証実験
暇なので気になったので実験してみました。
同じ回線(同じWiFi)で繋がれているスマホからPCのローカル環境にアクセスできるかやってみます。
まずWindowsのコマンドプロンプトを立ち上げ「ipconfig」コマンドでローカル環境を構築したPCが使用しているIPアドレスを調べます。
ここでは「123.456.78.9」がパソコンで使用しているIPアドレスとします。
続いて、パソコンのXAMPPを起動した状態でスマホでURLのlocalhostの部分を先ほどのIPアドレスに変更してアクセスします。
「http://localhost/wordpress」→「http://123.456.78.9/wordpress」
という感じ。アクセスできました。
XAMPPを構成した端末以外からでも一応ローカル環境にアクセスが可能ということで、セキュリティ的にはあまりよくないようです。
そこで念のためにIPアドレスでアクセス制限をかけておきます。
Apacheのhttpd.confファイルでIPアドレスを制限する
XAMPPをインストールしている端末からしかアクセスできないように設定します。
コントロールパネルでApacheのConfigを右クリック、Apache(httpd.conf)を開く。
Listen 80となっている部分に#を付けてコメントアウトし、その下に↓を追加して保存します。(Listen 80は削除してもOK)
Listen 127.0.0.1:80
※保存してもApacheを再起動しないと設定が有効になりません。
これでローカル環境を持つパソコン自身でしかアクセスできなくなります。
ちなみにこの「127.0.0.1」というのはローカルループバックアドレスと呼ばれ、自分自身を指す特別なIPアドレスになります。
「localhost=127.0.0.1」で置き換えることが可能ですヨ!
再度スマホで「http://123.456.78.9/wordpress」にアクセスするとうまくいきました!
まとめ
XAMPPでやっておきたい最低限のセキュリティ設定方法でした。
僕が初めてインストールしたときはセキュリティ設定ページがあってとても分かりやすかったのですが、今はコマンドを叩かないとできないようになったんですね~便利な機能をなくしてしまうなんて大人の事情でしょうか...とてもいいソフトなのですが敷居が上がると大変ですね。
長文お付き合いありがとうございました・w・
前記事のXAMPPのインストール方法から読んできてもらっている方は、途中で必須ではない内容も入っていて見にくかったかもしれませんね...
■インストール途中の方はこちらから戻れます。
次の項目(WordPress用のデータベースを作成する)
■関連記事
- XAMPP終了時に「応答なし」のエラーが出る時の対処方法。
続きを見る
- Wordpressの画像にフルサイズしかない!特にXAMPPの初期設定時は他の画像サイズが作成されない。
続きを見る