phpMyAdminに対するセキュリティ対策としては下記の様な物があります
下記にその設定方法を解説します。
また上記変更した結果、phpMyAdminアクセスで下図の様なエラーメッセージがでた場合は、下記のドキュメントを参照してください。
1.アクセスできる人の制限を強化する
phpMyAdminをアクセスできる人はMariaDBの中で定義されています。
現在、誰にアクセス権を与えたか?はphpMyAdminの「ユーザアカウント」で確認して下さい。
一般的には「root」と「DSMサーバ管理者」が登録されていると思います。
アクセスできる人のセキュリティ対策のポイントは下記になります。
①ログインできるユーザは「DSMサーバ管理者」とは別のIDにする。
この方がIDが複雑になりセキュリティ強化になります。
②誰でも知っているrootは利用不可にする。
これを行う為には「config.inc.php」の一番下に下記コードを追加します。
/**********************/ /* ユーザカスタマイズ *****/ /**********************/ $cfg['Servers'][$i]['AllowRoot'] = false;//rootの利用を禁止
※一番下に記述する理由は、上記コマンドはMariaDBを読み込んだ後に指定する必要がある為です。
2.アクセスできるIPアドレスを制限する
この設定はローカルLANからしか「phpMyAdmin」にアクセスできない様にする設定です。
これは完璧なセキュリティ対策になりますが、外出先からVPN接続でも「phpMyAdmin」に接続できなくなる事が難点です。
これを行う為には「config.inc.php」の一番下に下記コードを追加します。
/**********************/ /* ユーザカスタマイズ */ /**********************/ $cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow'; //アクセスIPの制限① $cfg['Servers'][$i]['AllowDeny']['rules'] = array('deny % from all','allow % from 192.168.1.0/24');//アクセスIPの制限②
※上記の赤字のIPアドレスは私の自宅環境です。貴方の自宅のLAN環境に合わせて修正して下さい。
メモ
上記で「config.inc.php」をカスタマイズしましたが、Synologyのパッケージは定期的にバージョンUPがあります。
上記で修正した「config.inc.php」ファイルは「phpMyAdmin」がバージョンUPされるとデフォルトに戻りますので、その時は再度、設定し直す必要があります。
3.プログラムの名前を変える
ドメイン名はWebサーバで公開しているので、その下に「phpMyAdmin」がある事は容易に想像できます。
この「phpMyAdmin」が別名になっていると、これを知っている人しかアクセスできなくなりますのでセキュリティは更に向上します。
しかしこの方法は色々な制限がある為にあまりお勧めはしません。
下記にそのやり方を解説します。
1-1.「phpMyAdmin」のフォルダ名を変更する
■Webフォルダの下にある「phpMyAdmin」のフォルダ名を変更します。
メモ
phpMyAdminをコピー&ペーストして改名するとファイル所有者が変わる為に動きません。必ずリネームで実施して下さい。
1-2.パッケージセンターから「phpMyAdmin」をアンインストールします。
パッケージセンターのインストール済みをクリックすると「phpMyAdmin」がエラー表示されています。
■「phpMyAdmin」をクリックします。下記画面が出ます。
■アンインストールをクリックします。
以上で「phpMyAdmin」アプリケーションが無くなり、Webフォルダに別名にした「phpMyAdmin」のプログラムだけが残った状態になります。
1-3.「config.inc.php」の修正
今の状態は「phpMyAdmin」を別名にしただけで、まだこのプログラムは動きません。
そこで下記修正を行います。
「Web→改名したphpMyAdmin」フォルダの中にある「config.inc.php」をEmEditorで開いてください。
現在のDBサーチ設定は下記になっています。
$i = 0;
$servers_json_str = file_get_contents('/var/packages/phpMyAdmin/target/synology_added/etc/servers.json');
foreach (json_decode($servers_json_str, true) as $server) {
$i++;
$cfg['Servers'][$i] = $server;
}
※上記の赤字の所がフォルダ名です。ここを修正したフォルダ名に変更します。
※変更を保存します
1-4.改名した「phpMyAdmin」の起動方法
新しい「phpMyAdmin」の起動方法は下記になります。
http(s)://貴方のURL/改名した「phpMyAdmin」名
この方法はインポートのファイルサイズに制限があります。
この方法は32MB以下のSQLファイルのインポートは問題なくできます。
しかし32MB以上のSQLファイルをインポートする為には「phpMyAdminパッケージ」を一時的にインストールしてこちらで行ってください。
32MB以上のファイルをインポートする為には下記ドキュメントを参照して下さい。
以上で「phpMyAdmin」のセキュリティ対策は完璧になりました。