前回は、リモート管理に関する機能について、iptalesを用いたファイアウォールで、IPアドレスによる発信元制限をかけることについて触れましたが、httpサーバーである、Apacheにも似たような機能があります。例えば、ログ閲覧等の管理者のみがアクセスすべきページやスクリプトなどに、制限をかけることができます。
Apacheの設定ファイルはetc/httpd/conf/httpd.confですが、この設定ファイルに、<Directory>ディレクティブや<Files>ディレクティブで、指定のディレクトリやファイルを指定し、Deny Allowディレクティブ等で、アクセスの許可、不許可を記述します。
例)
<Directory /var/www/html/admin/>
Order Deny,Allow
Deny from all
Allow from 222.222.222.222
</Direcroty>
※adminというディレクトリについて、ホストがIPアドレス222.222.222.222の場合だけ閲覧を許可し、それ以外のホストは拒否(Forbidden)する。という例。
サーバーホスティングの設定でよく見かける、「.htaccess」というファイルは、このhttpd.confファイルの、<Directory>ディレクティブ等の記述を、ディレクトリごとに記述できるファイルのことです。共有サーバー等、自分でhttpd.confの編集ができない場合に用いる場合が多いです。逆、httpd.confファイルを編集できる場合は、できるだけ.htaccessファイルを用いずに、httpd.confファイルで指示した方が良いそうです。
但し、あまりにもディレクティブが増えすぎると、httpd.confも乱雑になってしまうので、いくつかのconfファイルに分けて、登録する方法もあるようです。特にヴァーチャルホストの設定をした場合、それぞれのドメインごとに設定が分かれますので、ドメインごとにconfファイルをつくるのが良いようです。Plesk等の場合は自動的にvhosts.confの様な設定ファイルを生成してくれるので、便利なんですが。