Apache2.4での.htaccessによるアクセス制御

VMware上のCentOS7で実験している時にApacheの.htaccessによるアクセス制御がなんか変わってたのでメモ。書き方が変わってるっぽい。参考サイト→人間とウェブの未来 – Apache 2.4系でのモダンなアクセス制御の書き方 Upgrading to 2.4 from 2.2 – Apache HTTP Server Version 2.4 mod_authz_core – Apache HTTP Server Version 2.4

もくじ

  • 書き方の基本
  • 自分のIPやHostだけアクセスを許可する
  • ちょっとだけ応用編

書き方の基本

まずは全てのアクセスを許可/拒否するときの書き方から入ります。以前(Apache2.2)ではそれぞれこのように書きました。 [VIM] #全て許可 Order allow,deny Allow from all #全て拒否 Order deny,allow Deny from all [/VIM] Apache2.4ではこのように書きます。 [VIM] #全て許可 Require all granted #全て拒否 Require all denied [/VIM] これだけならだいぶシンプルです。次は色々と条件を設定してみます。まずはリクエストメソッドの限定(GET,POST,HEADだけ受け付けるようにする)です。Apache2.4ではこのように書きます。 [VIM] Require method GET POST HEAD [/VIM] リクエストメソッドの限定は、セキュリティの向上に役立つかもしれません。

自分のIPやHostだけアクセスを許可する

セキュリティの都合上、自分以外の他人にアクセスされると都合が悪いディレクトリというものはよく出てきます(例えばphpMyAdminが置いてあるディレクトリとか)。そのようなディレクトリにはアクセス制限をかけておきたいところです。IPやHostでアクセス制限をかけてみましょう(ホワイトリスト方式・IPは192.168.1.2のみ許可・Hostはhogehoge.comのみ許可)。Apache2.2ではこのように書きます。 [VIM] Order Deny,Allow Deny from all Allow from 192.168.1.2 Allow from hogehoge.com [/VIM] これがApache2.4だとこうなります。 [VIM] Require ip 192.168.1.2 Require host hogehoge.com #ローカル(127.0.0.1など)からのアクセスを許可する Require local [/VIM] ルールの記述が用意になったので、頑張って.htaccessでアクセス制限をかけてセキュリティを確保しましょう。

ちょっとだけ応用編

この辺で色々とやってみましょう。ブラックリスト方式(いったん全部許可して特定のIPやHostだけ遮断する)のアクセス制御はこうやります(遮断するIPは192.168.1.3・Hostはfugafuga.com)。 [VIM] Require all granted Require not ip 192.168.1.3 Require not host fugafuga.com [/VIM] 何かの時のために知っておいて損はないと思います。

最後にHTTP/1.0でアクセスしてくるユーザーを遮断します。最近のブラウザはHTTP/1.1が使えるので、一般ユーザーがこれでアクセスを遮断されることはまずありません。もっぱらBotをアクセスさせないための設定です。 [VIM] SetEnvIfNoCase Request_Protocol “HTTP/1.0” http10 Require all granted Require not env http10 [/VIM] 多分こんな感じでいけると思います。

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin:

この記事のトラックバック用URL

コメント