apache

ApacheでIPアドレスによる制限を設定する方法を解説【Webサイトへのアクセスを制限する】

Linuxサーバーの画面

こんにちは、フルスタックエンジニアのryuです。

今回の記事では、ApacheでIPアドレスによる制限を設定する方法を解説します。IPアドレス制限を設定することで、Webサイトへのアクセス制限を行います。特定のホストのみWebサイトでアクセスできるようにします。今回はApacheでIPアドレスによる制限の設定方法を詳しく解説します。

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

ApacheでIPアドレスによる制限を設定する方法を解説

ApacheのIPアドレス制限はどうやって設定するの・・・?

今回の記事では、ApacheでIPアドレスによる制限を設定する方法を解説します。今回の記事の内容は以下の通りです

  • IPアドレス制限を行う設定ファイル
  • IPアドレス制限をかけてみる
  • IPアドレス制限の設定値を解説

では、早速解説します。

IP制限を行う設定ファイル

まず、IP制限を行う設定ファイルについてです。設定ファイルは以下の2つがあります。

  • apache2.conf(httpd.conf)
  • .htaccess

apache2.conf(httpd.conf)はapache全体の設定を行うことができます。.httaccessはディレクトリ内に配置することで、ディレクトリ毎で制限を行うことができます。

今回は、apache2.confに設定を行います。viコマンドを使って、ファイルを開きましょう。

//debianの場合
vi /etc/apache2/apache2.conf

//centosの場合
vi /etc/httpd/httpd.conf

IP制限を設定してみる(ver2.4以降)

設定ファイルを開いたら、IP制限の設定をしてみましょう。

以下の通りに記述します。

<Directory /var/www/html>
Require ip 192.168.1.1 //←許可したいIPアドレス
Require no ip 192.168.1.2 //←拒否したいIPアドレス
</Directory>

これで設定は完了です。設定ができたら、再起動してみましょう。

service apache2 restart

IP制限を設定してみる(ver2.4以前)

Apache2のversionが2.4以前のものは以下のように設定します。最新版でも動作しますが、”Require ip”が推奨されています。

<Directory /var/www/html>
  order allow,deny
  allow from 192.168.0.1      //←許可したいIPアドレスを設定
  deny from all
</Directory>

これで設定は完了です。設定ができたら、再起動してみましょう。設定値の詳細は、記事の後半で解説します。まずは動作確認です。

service apache2 restart

設定が完了したら、Webサイトにアクセスしてみましょう。特定のIPアドレス以外からは以下のように拒否されます。

Webページのアクセスを拒否

アクセスが拒否されると、「Forbidden」と表示されます。Forbiddenとは”禁止”や”禁断”などという意味です。設定したIPアドレス以外からWebページが閲覧できないようになります。

ApacheのIPアドレス制限の設定値解説

ここからはIPアドレス制限の設定値の解説を実施します。先ほどは以下のような設定を行いました。

<Directory [ディレクトリ]>
  order allow,deny
  allow from [IPアドレス]
  deny from all
</Directory>

それぞれの設定値について解説します。

DirectoryでIPアドレス制限を行う場所の指定

まずは、<Directory [ディレクトリ]> ~ </Directory>についてです。

Directoryは制限を掛けるディレクトリを指定します。

例えば、以下のように設定します。

<Directory /var/www/html/>
・・・
</Directory>

この場合、/var/www/html/ディレクトリに制限が掛かります。/var/www/html/index.htmlにアクセスした場合などに制限が掛かります。

Directoryと同じような設定でLocationというものがあります。これは、パスに対して制限を掛けます。DocumentRoot以降のディレクトリを指定する方法です。

orderによるアクセス制御

最後にorder文です。

“order allow,deny”は許可してから拒否する動作になります。

  order allow,deny
  allow from 192.168.0.1
  deny from all

上記の設定の場合は、”192.168.0.1″のアクセスは許可してから、その他全ては拒否するという設定になります。orderの順番を逆にすると全て拒否されるので注意しましょう。

ApacheのIPアドレス制限まとめ

今回の記事ではApacheのIPアドレス制限について解説しました。まとめると以下のようになります。

  • apache.confで設定
  • Directoryで制限するディレクトリを指定
  • order文で許可する

ApacheのIP制限はApacheでセキュリティを高める一つの方法なので覚えておきましょう!

IP制限以外にも、ユーザー認証でセキュリティを強化することができるので興味のある方は、こちらからご覧ください。

このようなインフラに関連する技術を当ブログで紹介しているので興味のある方は是非ご覧ください。

さらにlinuxについて勉強したい方はこちらの参考書がオススメです。

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
大手企業→上場ベンチャー→スタートアップでエンジニアをしていました。 インフラエンジニア歴10年以上。 Linuxやネットワークの学習ができるサービスInfraAcademyを運営中。
RELATED POST