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)ではそれぞれこのように書きました。

Apache2.4ではこのように書きます。

これだけならだいぶシンプルです。次は色々と条件を設定してみます。まずはリクエストメソッドの限定(GET,POST,HEADだけ受け付けるようにする)です。Apache2.4ではこのように書きます。

リクエストメソッドの限定は、セキュリティの向上に役立つかもしれません。

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

セキュリティの都合上、自分以外の他人にアクセスされると都合が悪いディレクトリというものはよく出てきます(例えばphpMyAdminが置いてあるディレクトリとか)。そのようなディレクトリにはアクセス制限をかけておきたいところです。IPやHostでアクセス制限をかけてみましょう(ホワイトリスト方式・IPは192.168.1.2のみ許可・Hostはhogehoge.comのみ許可)。Apache2.2ではこのように書きます。

これがApache2.4だとこうなります。

ルールの記述が用意になったので、頑張って.htaccessでアクセス制限をかけてセキュリティを確保しましょう。

ちょっとだけ応用編

この辺で色々とやってみましょう。ブラックリスト方式(いったん全部許可して特定のIPやHostだけ遮断する)のアクセス制御はこうやります(遮断するIPは192.168.1.3・Hostはfugafuga.com)。

何かの時のために知っておいて損はないと思います。

最後にHTTP/1.0でアクセスしてくるユーザーを遮断します。最近のブラウザはHTTP/1.1が使えるので、一般ユーザーがこれでアクセスを遮断されることはまずありません。もっぱらBotをアクセスさせないための設定です。

多分こんな感じでいけると思います。

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

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

Bitcoin:

Monacoin:

Litecoin: