XAMPP for Mac OS X 1.7.3 のセキュリティ対策 PHP
XAMPPは開発環境を手軽に構築することを目的としているので、インストール直後のセキュリティ対策はあまりなされていません。テスト環境として最低限必要なセキュリティ設定をしていこうと思います。
※これから記述する内容はあくまでもテスト環境として最低限のセキュリティ対策になります。
XAMPPのセキュリティ画面へアクセス
XAMPPのセキュリティ画面へアクセスします。
-
XAMPPのコントロールパネルでApacheとMySQLが起動していることを確認します。
-
XAMPPの管理画面(http://localhost/xampp/)を表示させ、左メニューの「セキュリティ」をクリックします。
-
XAMPPのセキュリティ画面が表示されたら、ステータスに「要注意」があることを確認します。
ApacheのXAMPPディレクトリへのアクセス制限
現段階ではXAMPPでインストールしたApacheサーバへ、誰もがアクセスできる状態になっています。テスト時にはアクセス制限をかけ、第三者に不用意にアクセスされないようにしましょう。
-
「アプリケーション」 > 「ユーティリティ」フォルダ内の「ターミナル.app」をダブルクリックして起動させます。
-
ターミナルを起動したら、以下のコマンドを入力していきます。
$に続いて「su -」と入力してエンターキーを押し、管理者権限を持つスーパーユーザになります。
su -
-
管理者権限のパスワードを入力しエンターキーを押します。
※入力しても画面に変化がありませんが、きちんと入力されています。Password:
-
下記のパスを入力、エンターキーを押しXAMPPのセキュリティ設定ツールを起動します。
/Applications/XAMPP/xamppfiles/xampp security
-
下記の文字が表示されたらエンターキーを押します。
Do you want to set a password? [ja]
-
XAMPPの管理画面に設定したいパスワードを入力しエンターキーを押します。
※入力しても画面に変化がありませんが、きちんと入力されています。Password:
-
確認のため先程入力したパスワードと同じものを入力しエンターキーを押します。
※入力しても画面に変化がありませんが、きちんと入力されています。Password (again):
-
下記の文字が表示されたらエンターキーを押します。
Normaly [ja]
-
下記の文字が表示されたらエンターキーを押します。
Do you want to change the password anyway? [nein]
-
下記の文字が表示されたら完了です。
Done.
-
「exit」と打って管理者権限からログアウトします。
exit
-
「exit」と打ってターミナルでの作業を完了させます。「[Process completed]」と表示されたらターミナルを閉じます。
exit
-
上記の操作により以下のようなターミナル結果になります。
Last login: Fri Dec 4 01:06:12 on ttyp1
Welcome to Darwin!
-bash: rt: command not found
localhost:~ [ユーザ名]$ su -
Password:[管理者権限パスワード入力(画面には表示されません)]
localhost:~ root# /Applications/XAMPP/xamppfiles/xampp security
XAMPP: Quick security check...
XAMPP: Your XAMPP pages are NOT secured by a password.
XAMPP: Do you want to set a password? [ja]
XAMPP: Password: [管理画面表示時のパスワード入力をして設定(画面には表示されません)]
XAMPP: Password (again): [管理画面表示時のパスワードを入力して確認(画面には表示されません)]
XAMPP: Password protection active. Please use 'xampp' as user name!
XAMPP: MySQL is accessable via network.
XAMPP: Normaly [ja]
XAMPP: Turned off.
XAMPP: Stopping MySQL...ok.
XAMPP: Starting MySQL...ok.
XAMPP: MySQL has to run before I can check the security.
XAMPP: MySQL has to run before I can check the security.
XAMPP: MySQL has a root passwort set. Fine! :)
XAMPP: ProFTPD has a new FTP password. Great!
XAMPP: Do you want to change the password anyway? [nein]
XAMPP: Done.
localhost:~ root# exit
logout
localhost:~ [ユーザ名]$ exit
logout
[Process completed]
ApacheのXAMPPディレクトリへのアクセス制限後に管理画面にアクセスすると・・・
-
ユーザ名とパスワードを入力する画面が表示されるので、ユーザ名「xampp」、パスワードは「ApacheのXAMPPディレクトリへのアクセス制限」で設定したパスワードを入力します。
MySQLの管理者パスワードを設定
MySQLの管理者パスワードを設定し、データベースを不用意に操作されないようにします。
-
「アプリケーション」 > 「ユーティリティ」フォルダ内の「ターミナル.app」をダブルクリックして起動させます。
-
ターミナルを起動したら、以下のコマンドを入力していきます。
$に続いて「su -」と入力してエンターキーを押し、管理者権限を持つスーパーユーザになります。
su -
-
管理者権限のパスワードを入力しエンターキーを押します。
※入力しても画面に変化がありませんが、きちんと入力されています。Password:
-
下記のパス+コマンドとパスワードを入力、エンターキーを押しMySQLにパスワードを設定します。
/Applications/XAMPP/xamppfiles/bin/mysqladmin -u root -p password [設定したいパスワード]
もし、設定したいパスワードが「admin」だったら以下のように入力します。
/Applications/XAMPP/xamppfiles/bin/mysqladmin -u root -p password admin
-
下記の文字が表示されたらエンターキーを押して設定完了です。
Enter password:
-
「exit」と打って管理者権限からログアウトします。
exit
-
「exit」と打ってターミナルでの作業を完了させます。「[Process completed]」と表示されたらターミナルを閉じます。
exit
-
上記の操作により以下のようなターミナル結果になります。
Last login: Fri Dec 4 01:06:12 on ttyp1
Welcome to Darwin!
-bash: rt: command not found
localhost:~ [ユーザ名]$ su -
Password:
localhost:~ root# /Applications/XAMPP/xamppfiles/bin/mysqladmin -u root -p password [MySQLに設定するパスワードを入力]
Enter password:
localhost:~ root# exit
logout
localhost:~ [ユーザ名]$ exit
logout
[Process completed]
-
上記で設定したパスワードをphpMyAdminにも設定します。
「アプリケーション」 > 「XAMPP」 > 「xamppfiles」 > 「phpmyadmin」フォルダ内にある「config.inc.php」をテキストエディタで編集します。 -
phpMyAdminにパスワードを設定する
「config.inc.php」ファイルの34行目「$cfg['Servers'][$i]['password'] = '';」にパスワードを記述して保存します。
/* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; $cfg['Servers'][$i]['connect_type'] = 'socket'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = true;
/* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = '[設定したパスワード]'; $cfg['Servers'][$i]['connect_type'] = 'socket'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = true;
もし設定したパスワードが「admin」だった場合は下記のように記述します。
/* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'admin'; $cfg['Servers'][$i]['connect_type'] = 'socket'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = true;
修正したファイルを保存してphpMyAdminの設定は完了です。
-
設定を変更したので「Apache」と「MySQL」を再起動して、再度XAMPPの管理画面(http://localhost/xampp/)を表示させます。
ユーザ名とパスワードを入力する画面が表示されるので、ユーザ名「xampp」、パスワードは「ApacheのXAMPPディレクトリへのアクセス制限」で設定したパスワードを入力します。 -
管理画面の左メニューから「セキュリティー」を選択して表示される画面のステータスが「安全」になっていればセキュリティ設定完了です。