Webサーバーにもアクセス制限がいろいろありますが、一番容易で一番堅牢で一番信頼できるのは.htaccessファイルの設定です。元よりレンタルサーバーで.htaccessファイルの設定が許可されていないと使えませんが。この.htaccessはホストベースとIPベースのアクセス制限ができます。ぶっちぇけ、Basic認証なんかはたかがcryptで保護しているだけなのですぐに破られますのでご注意。その点.htaccessはIPアドレスでアクセス制限してしまうので安心。
注意点が一つあります。上記の例でもそうであるようにできるだけIPベースで指定した方がよいです。allow from omnioo.comみたいな書き方もできるのですが、アクセス制限と許可を細かくしかもかなりの量の文字列で指定している場合なんかはホストベースで記述するとかなりのサーバー負荷になります。これは、Apache自身はデフォルトではサーバー負荷軽減のためにDNSの逆引きを行っていないためです。(簡単にサーバーを作る場合は、Webサーバーの場合特に逆引きのゾーンファイルを作成する必要がないのはそのためです。)ホストベースで記述すると、一つ一つ全部を逆引きしようとするのでこれは結構大変な作業になります。なので、できるだけそのホストのIPを事前に調べてIPベースで記述するのが賢いやり方です。2、3行だったら問題ないと思いますが。
.htaccessの設定では滅法細かい指定もできますので、続きはミケネコ研究所をご覧ください。ここにはさらに詳しく解説が載っています。
自分自身からのアクセス以外はすべてダメにする
には以下のような設定になります。orderでは、アクセスの順序を理論和で設定してくれます。つまり、ここでの設定では全部をアクセス制限する(deny)けど一部をアクセス許可する(allow)よということになります。これを記述したファイルをアクセス制限したいディレクトリに放り込んでおくだけでOK。そのディレクトリ以下はすべてこの設定でのアクセス制限がかかり、「403 Forbidden」で返されます。# .htaccess file全く私ごとですが、かつて高校生だった頃、「Deny: でない、でないと否定(deny)する」と単語帳に書いてあったのを思い出します。そしてつい最近までunited allowsだと思っていました。united arrowsでした。
order deny,allow
deny from all
allow from 121.2.73.119 # 自身のグローバルIPアドレス
allow from 127.0.0.1 # localhost
注意点が一つあります。上記の例でもそうであるようにできるだけIPベースで指定した方がよいです。allow from omnioo.comみたいな書き方もできるのですが、アクセス制限と許可を細かくしかもかなりの量の文字列で指定している場合なんかはホストベースで記述するとかなりのサーバー負荷になります。これは、Apache自身はデフォルトではサーバー負荷軽減のためにDNSの逆引きを行っていないためです。(簡単にサーバーを作る場合は、Webサーバーの場合特に逆引きのゾーンファイルを作成する必要がないのはそのためです。)ホストベースで記述すると、一つ一つ全部を逆引きしようとするのでこれは結構大変な作業になります。なので、できるだけそのホストのIPを事前に調べてIPベースで記述するのが賢いやり方です。2、3行だったら問題ないと思いますが。
.htaccessの設定では滅法細かい指定もできますので、続きはミケネコ研究所をご覧ください。ここにはさらに詳しく解説が載っています。



