RenojiStock IT Design 旅メモ DIY etc AboutUs



「.htaccess」ファイルでアクセス制限をかける



HTTPサーバーにアクセス制限をかける方法


Apacheは、デリレク取りごとにアクセス制限をかけられ、特定のネットワークからのみアクセス可能に設定することも可能。

アクセス制限の設定方法は、
  • 「httpd.conf」に記述する方法
  • 「.htaccess」設定ファイルにアクセス制限を記述し、対象にしたいディレクトリに置く方法。
の2通りある。




「.htaccess」ファイルとは


「.htaccess」は、それぞれのディレクトリに設定を記述した「.htaccess」を置く事によって、そのディレクトリ以下のサブディレクトリにまで適用するアクセス制限をかける事が出来る。
サブディレクトリにさらに.htaccessが置かれている場合は、その内容が優先される。

新たに、「.htaccess」設定ファイルを置いて、別の設定をしないかぎり、上のディレクトリにある「.htaccess」設定ファイルの設定が有効になる。




「.htaccess」を有効にする設定


「httpd.conf」設定ファイルを編集するコマンドを入力
vi /etc/httpd/conf/httpd.conf

設定の変更内容
<Directory /var/www/html>
AllowOverride All
<Directory>

「httpd」を再起動する
service httpd restart

「AllowOverride All」とは
「.htaccess」ファイルによるアクセス制限・固有の設定を許可する指定を行う要素。
全ての各ディレクトリの「.htaccess」ファイルの設定で、アクセス制限などが上書きしても良いという意味。
5種類のオプションを使い分けることで、「.htaccess」ファイルに権限を与えることができる。
その5種類すべてを指定する「All」、すべてを不可にする「None」オプションがある。5つのオプションすべてを指定するのと、Allオプションを指定するのは同じ。


「AllowOverride」のオプション

オプション説明
All 「AuthConfig」「FileInfo」「Indexes」「Limit」「Options」の全てを許可する設定。
None 「AuthConfig」「FileInfo」「Indexes」「Limit」「Options」の全てを許可しない設定。
AuthConfig ユーザー認証に関する指定を可能にする。
FileInfo MIME-Typeの指定やエラードキュメントの指定など、ドキュメントタイプに関する指定を可能にする。
Indexes ファイル一覧の表示やファイル名が省略された場合に、デフォルトで表示されるファイル名など、ディレクトリインデックスに関する指定を可能にする。
Limit アクセス制限を行うための「allow」「deny」「order」の指定を可能にする。
Options オプション命令(Optionsディレクティブ)の指定を可能にする。




「.htaccess」の作成方法


アクセス制限をかけたいディレクトリに「.htaccess」設定ファイルを作成
vi .htaccess

「.htaccess」設定ファイルの編集内容
Order deny,allow
Allow from 192.168.1 ***.***.***.***/24
Deny from all

保存して終了





アクセス制限の指定

記述例解説
order allow,deny
orderは、その後に続くallow(許可)とdeny(拒否)の評価順を指定する。
allowを先に、denyを後に評価する。
基本的にアクセスを拒否し、allowで明記されているアクセスを許可する。
order deny,allow orderは、その後に続くallow(許可)とdeny(拒否)の評価順を指定する。
denyを先に、allowを後に評価する。
基本的にアクセスを許可し、denyの記述にマッチしたアクセスを拒否する。
Allow from allすべてのアクセスを許可
Allow from 192.168.0.0 指定IPアドレスのアクセスを許可。
複数のIPアドレスを記述する場合は、スペースで区切る。
Allow from 192.168.0.0/8サブネットマスクを利用した複数IPアドレスのアクセス許可。
Allow from 192.168.0.IPアドレスの部分一致によるアクセス許可。
Allow from .◯◯.com指定ドメインに一致したアクセスの許可。
Deny from all全てのアクセスを拒否
Deny from 192.168.0.0 指定IPアドレスのアクセス拒否
複数のIPアドレスを記述する場合は、スペースで区切る。
Deny from 192.168.0.IPアドレスの部分一致によるアクセス拒否
Deny from 192.168.0.0/8サブネットマスクを利用した複数IPアドレスのアクセス拒否。
Deny from .◯◯.com指定ドメインによるアクセス拒否