質問: お世話になっております。 AWSのEC2でサーバー構築をしております。 apache,php,mysqlのよくあるWebサービスを作る想定です。 インストールしたphpmyadminに外部から入れないようにIP制限をかけようと、設定ファイルの「phpMyAdmin.conf」を探しているんですが、 findで検索しても出てきません。 ググると大概は「/etc/httpd/conf.d/phpMyAdmin.conf」 にいるようなんですがいなかったのと、 $ find / -name phpMyAdmin.conf などとしてみても存在しませんでした。 やった作業についてなんですが、サブドメインを割り振り phpadmin.example.co.jp /var/www/phpadmin.example.co.jp 上記のようにwww下に配置し、 /etc/httpd/conf/httpd.conf ` DocumentRoot "/var/www/phpadmin.example.co.jp" ServerName phpadmin.example.co.jp AllowOverride All ` のように記述しております。 問題なく表示も操作もできておりますが、Basic認証やIP制限のかけ方がわかりません。 「phpMyAdmin.conf」というファイルは、どこかのタイミング生成しなければいけないのでしょうか? ご存知方がいらっしゃいましたらご教示いただきたいです。 よろしくお願いいたします。
回答: > > /etc/httpd/conf.d/phpMyAdmin.conf > > > それはApacheのコンフィグファイルなので自分で作るものではないでしょうか。 ファイル名をそうしているだけで、`/etc/httpd/conf.d/`の配下にあるファイルは`/etc/httpd/httpd.conf`でIncludeしているため拡張子が.confで終わっていれば任意のファイル名にできます。 IP制限はApacheでもかけられますが、せっかくAWS使っているならセキュリティグループでかけるべきです。 Apacheで制限するとサーバ側でやることが増えるのと、アクセスに対して制限対象か否かの判断が入るためサーバのリソースを消費します。つまり制限をかけたIPからのアクセスからでもDoS攻撃でサーバを落とすことが可能になってしまいます。(一応AWS自体にDoSの対策の仕組みがあるとかないとか、という話ですがアテにしすぎないほうがいいかなと) Basic認証については調べればたくさん出てくるので割愛します。 ちなみにBasic認証はセキュリティとしては気休め程度にしかならないのでセキュリティのために使うのはあまりオススメしません。 総当たり攻撃や辞書攻撃に対しては別途対策する必要があるのと、パスワードが平文で流れるのでhttpsでないならパケットキャプチャされるとパスワードがバレてしまうからですね。 * DBユーザのパスワードを十分複雑にしておく * できればhttpsにする * IP制限をする(セキュリティグループで) あたりが現実的なところでしょう。 そもそもの話をするとphpMyAdminを使わないでポートフォワードしてローカルからアクセスするほうがいいと思いますけどね...。