その他
    ホーム 技術発信 DoRuby mod_rpafを使ったIPアドレスのアクセス制限

    mod_rpafを使ったIPアドレスのアクセス制限

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    mod_rpafを使ったIPアドレスのアクセス制限に悩まされたので紹介します。

    リバースプロキシ(pound)などを使った環境でapacheのアクセスログに

    出力されるIPアドレスがプロキシサーバのIPになる問題を解決するために利用されるmod_rpafですが、

    ログの問題はクリアしたところで、IPアドレスを使ったアクセス制限が機能しない問題に悩まされました。

    今回利用したmod_rpafのバージョンは0.6です。

    apache2.2.xの環境で試しています。

    インストール方法は割愛です。

    インストール後に以下のような設定ファイルを記述します。

    LoadModule rpaf_module modules/mod_rpaf-2.0.so
    RPAFenable On
    RPAFsethostname Off
    RPAFproxy_ips <プロキシサーバのIPアドレス>
    

    「Allow from」にIPアドレスを記載したアクセス制限は機能しなかったのでRewriteCondを使った制限に書き換えました。

    Order deny,allow
    Deny from all
    Allow from xxx.xxx.xxx.xxx
    

    RewriteCond %{REMOTE_ADDR} !^XXX\.XXX\.XXX\.XXX$
    RewriteRule ^.*$ - [F,L]
    

    mod_rpafのソースまでは見ていないですが気付き難いですね。

    当然mod_authとmod_rewriteで扱う変数が違うのでしょう。