ITメモ
CentOS / セントオーエス




【CentOS】「HTTPサーバー」に「アクセス制限」を設定をする方法

【CentOS】
「HTTPサーバー」に「アクセス制限」を設定をする方法




「HTTPサーバー」に「アクセス制限」を設定をする方法は、

・設定ファイル「httpd.conf」で設定する方法
・「.htaccess」ファイルで設定する方法

などがあります。








【CentOS 7】設定ファイル「httpd.conf」で「アクセス制限」を設定する方法


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


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

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



設定ファイル「httpd.conf」でアクセス制限をかける


アクセス制限の有効範囲は、設定指定したディレクトリの下にあるファイル・ディレクトリの全てに対して有効となる。
別のアクセス制限をかけたい場合は、そのサブディレクトリに別のアクセス制限をかければよい。


アクセス制限の記述例

<Directory /var/www/manual>
Order deny,allow
Allow from 192.168.1. 210.218.12.96/29
Deny from all
</Directory>


アクセス制限を設定する流れ


設定ファイル「httpd.conf」を編集する
vi /etc/httpd/conf/httpd.conf

アクセス制限の設定を記述する
<Directory /var/www/manual>
Order deny,allow
Allow from 192.168.1 210.218.12.96/29
Deny from all
</Directory>

「httpd」を再起動する
service httpd restart
もしくは
systemctl restart httpd




Back





【CentOS 7】「.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指定ドメインによるアクセス拒否


「.htaccess」ファイルへの読み込み制限の設定


下記のような、「.htaccess」ファイルを見られないようにする設定が、「/etc/httpd/conf/httpd.conf」ファイルに記述されている。
コメントアウトがされていないことを確認する必要がある。

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

不正アクセスを試みようとするクライアントに、「.htaccess」ファイルの内容を見られないようにするための防御策。
記述内容は、「.ht」で始まるファイルについて、読み取りを拒否する設定が記述されている。




アクセス制限の記述方法


<Directory "ディレクトリのURL">
ディレクトリ内全体への設定。
Order deny,allow
Allow from 192.168.1. 210.218.12.96/29
Deny from all

<Files ~ "\.(gif|jpe?g|png)$">
ディレクトリの中の画像ファイルへの設定。
Order deny,allow
Allow from 192.168.1. 210.218.12.96/29
Deny from all

</Files>

<Directory />




アクセス制限の指定

記述例解説
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指定ドメインによるアクセス拒否


Back