Apache/アクセス制御
目次 |
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 Allow from 192.168.0. Deny from 192.168.0.123 |
192.168.0.123 を除く 192.168.0.* を拒否し、それ以外は許可。
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]
SetEnvIfNoCase Referer "^http://www\.example\.com" referer_ok
<FilesMatch ".(gif|png|jpe?g|mov|wmv|avi|flv)$">
Order Allow,Deny
Allow from env=referer_ok
</FilesMatch>
同じような事は mod_rewrite でもできる。[4]
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://www\.example\.com" [NC]
RewriteRule \.(gif|png|jpe?g|mov|wmv|avi|flv)$ - [F]
- 2行目: リファラが http://www.example.com から始まるリクエスト以外。[NC] は No Case の意味で、大文字小文字を区別しない。
- 3行目: [F] は HTTP レスポンス 403: Forbidden でアクセス禁止します。
脚注
- ↑ HostnameLookups Off でも逆引きしてしまう - ろば電子が詰まっている (d.hatena.ne.jp)
- ↑ Apache httpd.conf の Allow from .. にコメントを書いてしまうとDNSの逆引きが行われてレスポンスが悪化するので注意の件 + コメントが書けるようになるパッチ - blog.nomadscafe.jp (blog.nomadscafe.jp)
- ↑ 404 Blog Not Found:Apache - ホットリンクを禁止する (blog.livedoor.jp/dankogai)
- ↑ .htaccess - Rewrite (webtech.akijapan.com)
Apache 関連のページ
- Apache/HTTP TRACE の無効化 . . カテゴリ: Apache | セキュリティ
- Apache/HTTPユーザー認証の設定 . . カテゴリ: Apache | アクセス制御 | セキュリティ
- Apache/SSL自己証明書の作成とmod sslの設定 . . カテゴリ: Apache | セキュリティ
- Apache/WebDAVの設定 . . カテゴリ: Apache | ファイルサーバ
- Apache/バーチャルホストのログをリモートのrsyslogに集約する . . カテゴリ: Apache | syslog
- Apache/リバースプロキシ . . カテゴリ: Apache
- Apache/ログのローテーション . . カテゴリ: Apache
- Let's EncryptのSSLサーバー証明書を、使用するサーバーとは別のマシンで作成する . . カテゴリ: Apache | セキュリティ
- ModSecurity のインストール . . カテゴリ: Apache | Webアプリ | セキュリティ
- RT Request Tracker を CentOS 5 にインストールする . . カテゴリ: Apache | CentOS | Webアプリ | メール
- WAF-FLE(ModSecurity Console)のインストールとセットアップ . . カテゴリ: Apache | Webアプリ | セキュリティ
- eAccelerator をインストールする . . カテゴリ: Apache | Webアプリ
- ベリサイン SSL サーバ証明書取得から apache mod ssl 設定までの流れ . . カテゴリ: Apache | セキュリティ