Apache設定編③ アクセス制限の設定 Linuxサーバ構築手順まとめ
前回のApacheのDigest認証の設定に引き続き、今回も「Apache」の認証についてみていきましょう。
前回、前々回で見てきたのはApacheの「認証機能」の設定でした。
今回は「アクセス制限」について見ていきます。
どちらもクライアントからのアクセスを制限するという点では似ていますが、
Basic認証やDigest認証はユーザ名とパスワードを入力してもらって認証するかどうかを決定していたのに比べ、
アクセス制限機能はそもそもアクセスの許可/拒否をサーバ側で決め打ちできるという点が異なっていると言えるでしょう。
アクセス制限の設定例を見てみよう。
アクセス制限の設定もhttpd.confで行っています。
アクセス制限を指定する範囲はディレクティブやディレクティブ内で指定します。
例を見るとわかりやすいでしょう。例えばこんな感じです。
≪例1≫
<Directory "/var/www/html/testAccess"> Order Deny, Allow Deny from All Allow from 192.168.100.0/24 </Directory>
→ディレクトリ「/var/www/html/testAccess」配下へのアクセスを、
IP「192.168.100.0」のネットワークからのみ許可する。
≪例2≫
<Files ~ "^.ht"> Order allow,deny Deny from all </Files>
→「.ht~」というファイルに対しては、全てのリクエストを拒否する。
アクセス制限の設定をしてみよう。
上記の例からざっくりと使い方のイメージが湧いてきたでしょうか。
もう少し細かく見ていきましょう。
まず、「Allow from ~」と「Deny from ~」の記述ですが、
これは文字通り「~からのアクセスを許可する」「~からのアクセスを拒否する」という意味です。
「~」に入るのは、例のようにIPアドレス(サブネットマスクを指定してもOKです)や、
ドメインなどが指定できます。
次に、「Order ~」行の記述ですが、これは、その下の行に記述されている
「Allow from~」と、「Deny from ~」を読んでいく順番を示しています。
例1で言うと、
まずDenyの行を読むので「Deny from All」つまり、全てのアクセスを拒否した後、
次にAllowの行を読み「Allow from 192.168.100.0/24」つまり、192.168.100.0のネットワークからのアクセスを許可、
という読み方になります。
まとめると、「IP「192.168.100.0」のネットワークからのみ許可」という意味になるわけです。
もしここでDenyとAllowの順番が逆であったとするとどうなるかというと、
まずAllowの行を読むので「Allow from 192.168.100.0/24」つまり、192.168.100.0のネットワークからのアクセスを許可した後、
次にDenyの行を読むので「Deny from All」つまり、全てのアクセスを拒否
という読み方になります。
まとめると、「すべてのアクセスを拒否」という意味になるわけです。
ポイントはDeny~とAllow~の記述の順番ではなく、
Orderで記述している順番が採用されるということです。
まとめ
この記述は例えば開発用のWebサイトの格納ディレクトリに設定したりすることで、セキュリティ性を向上させることができます。
たった3行の記述なので非常に簡単ですので、しっかり覚えて活用できるようにしておきましょう。