Apache/アクセス制御

提供:maruko2 Note.
移動: 案内, 検索

目次

Order ディレクティブ

http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order

Order Deny,Allow
先に、全ての Deny のアドレスを評価した後、全ての Allow のアドレスを評価する。(Deny と Allow で重複するアドレスは、Allow で上書きされる。)
Deny と Allow で指定しなかったアドレスは許可になる。
ブラックリスト方式。
Order Allow,Deny
先に、全ての Allow のアドレスを評価した後、全ての Deny のアドレスを評価する。(Allow と Deny で重複するアドレスは、Deny で上書きされる。)
Allow と Deny で指定しなかったアドレスは拒否になる。
ホワイトリスト方式。

Order Allow,Deny / Order Allow,Deny どちらの場合でも、あとに続く Allow from と Deny from の順番(先に書くか後に書くか)は問題にならない。

Order Allow Deny の設定例

特定のアドレスからのアクセスを拒否する(ブラックリスト)

例えば、1.2.3.4 と 5.6.7.8 など特定のアドレスからのアクセスを拒否したい場合は、Order Deny,Allow で書くと分かりやすい。

Order Deny,Allow
Deny from 1.2.3.4
Deny from 5.6.7.8

Order Allow,Deny にすると Allow from all が必要になる。

Order Allow,Deny
Allow from all
Deny from 1.2.3.4
Deny from 5.6.7.8

特定のアドレスからのアクセスのみ許可する(ホワイトリスト)

例えば、192.168.0. からのアクセスのみ許可したい場合は、Order Allow,Deny で書くと分かりやすい。

Order Allow,Deny
Allow from 192.168.0.

Order Deny,Allow にすると Deny from all が必要になる。

Order Deny,Allow
Deny from all
Allow from 192.168.0.

Allow from と Deny from が重複している場合

192.168.0.123 を除く 192.168.0.* を許可し、それ以外は拒否。

order allow,deny.png
Order Allow,Deny
Allow from 192.168.0.
Deny from 192.168.0.123

192.168.0.123 を除く 192.168.0.* を拒否し、それ以外は許可。

order deny,allow.png
Order Deny,Allow
Allow from 192.168.0.123
Deny from 192.168.0.

Allow Deny ディレクティブの行末にコメントを書くと HostnameLookups が有効になってしまう

Allow と Deny ディレクティブの行末にコメントを書くと、HostnameLookups off としていても強制的に HostnameLookups on になってしまい、IPアドレスの2重逆引きが行われ、レスポンスが悪くなる。(ログにもホスト名が記録される。)[1] [2]

 Allow from 192.168.1.1   #comment

Allow と Deny ディレクティブ以外であれば、行末にコメントを書くとシンタックスエラーになるようだが、Allow と Deny ディレクティブではシンタックスエラーにならないので、気づかないうちにレスポンスの低下を引き起こす事になるので注意。

環境変数でアクセス制限する

ホットリンクを禁止する方法

画像などのファイルに直リンクされるのを防ぐ。リファラ付きアクセスのみ Allow する。[3]

  1. SetEnvIfNoCase Referer "^http://www\.example\.com" referer_ok
  2. <FilesMatch ".(gif|png|jpe?g|mov|wmv|avi|flv)$">
  3.   Order Allow,Deny
  4.   Allow from env=referer_ok
  5. </FilesMatch>

同じような事は mod_rewrite でもできる。[4]

  1. RewriteEngine On
  2. RewriteCond %{HTTP_REFERER} !^http://www\.example\.com" [NC]
  3. RewriteRule \.(gif|png|jpe?g|mov|wmv|avi|flv)$ - [F]

脚注

  1. HostnameLookups Off でも逆引きしてしまう - ろば電子が詰まっている (d.hatena.ne.jp)
  2. Apache httpd.conf の Allow from .. にコメントを書いてしまうとDNSの逆引きが行われてレスポンスが悪化するので注意の件 + コメントが書けるようになるパッチ - blog.nomadscafe.jp (blog.nomadscafe.jp)
  3. 404 Blog Not Found:Apache - ホットリンクを禁止する (blog.livedoor.jp/dankogai)
  4. .htaccess - Rewrite (webtech.akijapan.com)

Apache 関連のページ

LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数