「Apache mod remoteip」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「Apache mod_remoteip(mod_rempteip) とは、Apache HTTP Serverのモジュールです。オリジンのIPアドレスからHTTPリクエストヘッダ...」)
 
 
行14: 行14:
  
 
== インストール ==
 
== インストール ==
 
+
=== FreeBSD Apache 2.2の場合 ===
 +
apache24のパッケージに mod_rempteip.so が含まれています。
 +
<syntaxhighlight lang="bash">
 +
$ pkg which /usr/local/libexec/apache24/mod_remoteip.so
 +
/usr/local/libexec/apache24/mod_remoteip.so was installed by package apache24-2.4.9
 +
</syntaxhighlight>
 +
<syntaxhighlight lang="bash">
 +
$ sudo pkg install apache24
 +
</syntaxhighlight>
 
=== FreeBSD Apache 2.2用の場合 ===
 
=== FreeBSD Apache 2.2用の場合 ===
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
行24: 行32:
 
% sudo make install clean
 
% sudo make install clean
 
</syntaxhighlight>
 
</syntaxhighlight>
== 使い方 ==
+
== 設定 ==
 +
=== Apache 2.4 ===
 +
<syntaxhighlight lang="apache">
 +
LoadModule remoteip_module libexec/apache24/mod_remoteip.so
 +
</syntaxhighlight>
  
 +
<syntaxhighlight lang="apache">
 +
<IfModule remoteip_module>
 +
RemoteIPHeader X-Forwarded-For
 +
</IfModule>
 +
</syntaxhighlight>
 +
 +
== 使い方 ==
 
;RemoteIPHeader:ヘッダフィールドのユーザーエージェントIPアドレスをパースします。
 
;RemoteIPHeader:ヘッダフィールドのユーザーエージェントIPアドレスをパースします。
 
;RemoteIPInternalProxy:RemoteIPHeaderの値を提出できる信頼できるクライアントイントラネットIPアドレスを定義します。
 
;RemoteIPInternalProxy:RemoteIPHeaderの値を提出できる信頼できるクライアントイントラネットIPアドレスを定義します。

2014年3月23日 (日) 23:50時点における最新版

Apache mod_remoteip(mod_rempteip) とは、Apache HTTP Serverのモジュールです。オリジンのIPアドレスからHTTPリクエストヘッダを通して、プロキシロードバランサによって、ユーザーエージェントIPアドレスのリストからコネクションのアドレスに置き換えます。

読み方

Apache mod_remoteip
あぱっち もっど りもーと あいぴー
mod_remoteip
もっど りもーと あいぴー

概要

Apache mod_remoteipは、ユーザーエージェントは、ロードバランサ、フロントエンドサーバやプロキシサーバーの後ろ側にいることがあり、認証やログインの目的のために httpd によってリクエストを発生させたオリジン(起源)のユーザーエージェントユーザーエージェントとして扱うために使用されます。

RemoteIPHeader ディレクティブの設定に基いて、リクエストヘッダのユーザーエージェントIPアドレスと報告されているアドレスでコネクションのアドレスをクライアントIPアドレスとして上書きします。

置き換えられたユーザーエージェントのIPアドレスは、mod_authz_host の Require ip の機能で利用され、mod_statusにより報告され、mod_log_config %a や core %a フォーマット文字列によって記録されます。コネクションのクライアントIPは、 %{c}a フォーマット文字列として利用できます。

インストール

FreeBSD Apache 2.2の場合

apache24のパッケージに mod_rempteip.so が含まれています。

$ pkg which /usr/local/libexec/apache24/mod_remoteip.so
/usr/local/libexec/apache24/mod_remoteip.so was installed by package apache24-2.4.9
$ sudo pkg install apache24

FreeBSD Apache 2.2用の場合

% pkg install ap22-mod_remoteip

FreeBSD の場合

% cd /usr/ports/www/mod_remoteip
% sudo make install clean

設定

Apache 2.4

LoadModule remoteip_module libexec/apache24/mod_remoteip.so
<IfModule remoteip_module>
	RemoteIPHeader X-Forwarded-For
</IfModule>

使い方

RemoteIPHeader
ヘッダフィールドのユーザーエージェントIPアドレスをパースします。
RemoteIPInternalProxy
RemoteIPHeaderの値を提出できる信頼できるクライアントイントラネットIPアドレスを定義します。
RemoteIPInternalProxyList
RemoteIPHeaderの値を提出できる信頼できるクライアントイントラネットIPアドレスをリストで定義します。
RemoteIPProxiesHeader
すべての中間IPアドレスを記録するヘッダフィールドを指定します。
RemoteIPTrustedProxy
RemoteIPHeaderの値を提出できる信頼できるクライアントイントラネットIPアドレスを定義します。
RemoteIPTrustedProxyList
RemoteIPHeaderの値を提出できる信頼できるクライアントイントラネットIPアドレスをリストで定義します。

RemoteIPHeader

# インターナルのロードバランサの例
RemoteIPHeader X-Client-IP
# Proxyの例
RemoteIPHeader X-Forwarded-For

RemoteIPInternalProxy

RemoteIPHeader X-Client-IP
RemoteIPInternalProxy 10.0.0.0/24
RemoteipInternalProxy gateway.localdomain

RemoteIPInternalProxyList

# Load Balancer
RemoteIPHeader X-Client-IP
RemoteIPInternalProxyList conf/trusted-proxies.lst

conf/trusted-proxies.lst

# Internal Trusted Proxies
10.0.0.0/24
gateway.localdomain

RemoteIPProxiesHeader

RemoteIPHeader X-Forwarded-For
RemoteIPProxiesHeader X-Forwarded-By

RemoteIPTrustedProxy

RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 10.0.0.0/28
RemoteIPTrustedProxy proxy.example.com

RemoteIPTrustedProxyList

RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxyList conf/trusted-external-proxies.lst

conf/trusted-external-proxies.lst

# External Trusted Proxies
10.0.0.0/24
gateway.localdomain

関連項目