.htaccess の allow,deny は mod_rpaf では無視されます。
nginx に X-Forwarded-For を設定します。
$ less /etc/nginx/nginx.conf ... location ~ "\\.(?:php|cgi)$" { proxy_pass http://localhost:8081; proxy_set_header X-Forwarded-For $remote_addr; } ...
mod_extract_forwarded をインストールします。
mod_extract_forwarded は apache2 の時はソースを書き換えてコンパイルするというのは昔の話のようです。
$ sudo emerge -av www-apache/mod_extract_forwarded
configtest でエラーが出るので mod_proxy をインストールします。
/etc/make.conf
$ grep ^APA /etc/make.conf APACHE2_MODULES="${APACHE2_MODULES} proxy"
/etc/conf.d/apache2
$ diff /etc/conf.d/apache2.2010-01-29 /etc/conf.d/apache2 35c35 < APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D PHP5 -D RPAF" --- > APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D PHP5 -D PROXY -D EXTRACT_FORWARDED"
確認します。
$ cat /var/www/localhost/htdocs/.htaccess Order Allow,Deny Allow from 192.168.0.0/16 Allow from 127.0.0.0/8
mod_rpaf の場合、.htaccessで拒否しても外部からアクセスするとアクセス可能でした。
mod_extract_forwarded の場合 .htaccess で拒否すれば権限無しになりました。
[29/Jan/2010:07:46:28 +0900] が mod_extract_forwarded インストール後のアクセスです。
xxx.xxx.xxx.xxxは同じIPアドレスです。 xxx.xxx.xxx.xxx - - [29/Jan/2010:07:30:49 +0900] "GET /phpinfo.php HTTP/1.0" 200 52986 xxx.xxx.xxx.xxx - - [29/Jan/2010:07:30:51 +0900] "GET /phpinfo.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP/1.0" 200 2524 xxx.xxx.xxx.xxx - - [29/Jan/2010:07:31:03 +0900] "GET /phpinfo.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 HTTP/1.0" 200 2146 xxx.xxx.xxx.xxx - - [29/Jan/2010:07:46:28 +0900] "GET /phpinfo.php HTTP/1.0" 403 274
0 件のコメント:
コメントを投稿