Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 02.10.2008, 12:37   #1
Студент
 
Аватар для sofree
 
Регистрация: 06.11.2007
Сообщений: 38
Репутация: 168

По умолчанию Не работает в .htaccess директивы allow, deny, когда apache + mod_rpaf как backend

ОС - Fedora 7.
Имеется схема nginx 0.6.31 + apache 2.2.6 + mod_rpaf 0.6.
apache работает как backend, слушает на 8080 порту.
nginx слушает на 80 и всё, кроме статики отдаёт apache.
rpaf настроен. В access_log пишутся "реальные" IP.

Заметил такую странную вещь, если есть .htaccess файл и я в корень сайта кладу например:
order allow,deny
allow from [ip с которого соединяюсь]
deny from all

Апач даёт
Forbidden
You don't have permission to access...
Хотя казалось бы указано allow from [ip с которого соединяюсь]

Если я лезу на апач "напрямую", минуя nginx, через http://external_ip:8080/, то правило в .htaccess отрабатывает корректно - я вижу странчку.

Что примечательно, если .htaccess выглядит так
order allow,deny
allow from [ip с которого соединяюсь]
allow from 127.0.0.1
deny from all
и соединяюсь к nginx (а он в свою очередь к apache) через http://external_ip/ - получаю страничку! Нету никакого Forbidden!..

Т.о., прихожу к выводу что mod_rpaf не работает в конструкциях .htaccess и передаёт ip frontend`а (в моём случае 127.0.0.1).

Поискал в инете, нашёл только один подобный случай для настроек виртуал хоста:
http://www.apsis.ch/pound/pound_list.../1169244573000

Кто-нибудь проверьте пожалуйста на практике, может у меня где-то ошибка.
Есть ли какие-нибудь решения? Может стоит автору rpaf обратить внимание на такой "баг"?
__________________
Почитай http://www.liex.ru/service_info.htm и заработай!
Не знаешь как раздобыть список страниц сайта, находящихся в кэше яндекса? Посмотри на сервис http://ya-cache.net.ru.
sofree вне форума   Ответить с цитированием

Реклама
Старый 02.10.2008, 14:03   #2
Outsourcenow
Кандидат наук
 
Регистрация: 13.08.2008
Адрес: Moscow, Russia
Сообщений: 331
Репутация: 4063
Отправить сообщение для Outsourcenow с помощью ICQ Отправить сообщение для Outsourcenow с помощью Skype™

По умолчанию Ответ: Не работает в .htaccess директивы allow, deny, когда apache + mod_rpaf как ba

Цитата:
Сообщение от sofree Посмотреть сообщение
Кто-нибудь проверьте пожалуйста на практике, может у меня где-то ошибка.
Есть ли какие-нибудь решения? Может стоит автору rpaf обратить внимание на такой "баг"?
Имею мнение, что mod_rpaf меняет адрес на уровне логгирования и забивания переменных сессии, но не трогает проверку по адресу в allow/deny.
Outsourcenow вне форума   Ответить с цитированием
Старый 02.10.2008, 15:48   #3
sofree
Студент
 
Аватар для sofree
 
Регистрация: 06.11.2007
Сообщений: 38
Репутация: 168

ТопикСтартер Ответ: Не работает в .htaccess директивы allow, deny, когда apache + mod_rpaf как ba

Как я могу ещё установить, на виртуальном хостинге РБК fe36-1.hc.ru, работает nginx + Apache 1.3. Так вот так allow, deny отрабатывается нормально. Но там стоит модуль скорее всего mod_realip - http://sysoev.ru/mod_realip/

Данный баг проверили бы те, у кого есть возможность. Просто написать .htaccess - и посмотреть результат...
Если баг такой есть, то, думаю, надо написать автору mod_rpaf, чтобы разобрался... Ведь у Игоря Сысоева всё получилось с Apache 1.3.
sofree вне форума   Ответить с цитированием
Старый 06.10.2008, 19:35   #4
Pilat
Академик
 
Регистрация: 08.03.2007
Сообщений: 2,914
Репутация: 88922
Отправить сообщение для Pilat с помощью ICQ Отправить сообщение для Pilat с помощью Skype™

По умолчанию Re: Не работает в .htaccess директивы allow, deny, когда apache + mod_rpaf как backe

Баг есть. Лечится так: кладём в .htaccess или ещё куда-то

Код:
SetEnvIf Remote_Addr "^10\.11\.12\.13" realremoteaddr
Order Deny,Allow
Deny from all
allow from env=realremoteaddr
10.11.12.13 - ip адрес друзей.

http://httpd.apache.org/docs/2.2/mod...uthz_host.html
Pilat вне форума   Ответить с цитированием
Старый 06.10.2008, 20:59   #5
manman
Профессор
 
Регистрация: 19.09.2007
Сообщений: 675
Репутация: 13984

По умолчанию Ответ: Не работает в .htaccess директивы allow, deny, когда apache + mod_rpaf как ba

Цитата:
Сообщение от sofree Посмотреть сообщение
****
Апач даёт
Forbidden
You don't have permission to access...
Хотя казалось бы указано allow from [ip с которого соединяюсь]
**
а в еррор_логе какой ип получил 403 при этом?

когда апач у вас висит не на 127.0.0.1 коннект с "самой себя " машины (от нгинкса) к нему пойдет с реалИП апача, а не с 127 0 0 1

есть у меня rpaf , правда апачик /2.0.63
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFproxy_ips 127.0.0.1 (адрес апача собственно)

и в ингинксе
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

может натолкнет на что-либо..
manman вне форума   Ответить с цитированием
Старый 20.12.2008, 07:53   #6
sprokofiev
Студент
 
Регистрация: 25.11.2008
Сообщений: 10
Репутация: 10

По умолчанию Ответ: Не работает в .htaccess директивы allow, deny, когда apache + mod_rpaf как ba

Pilat, большое спасибо. Работает!
sprokofiev вне форума   Ответить с цитированием
Старый 20.12.2008, 08:38   #7
Boris A Dolgov
Академик
 
Аватар для Boris A Dolgov
 
Регистрация: 04.07.2007
Адрес: ISPlicense.ru
Сообщений: 2,599
Репутация: 129039
Отправить сообщение для Boris A Dolgov с помощью Skype™
Социальные сети Профиль на Хабрахабре

По умолчанию Re: Не работает в .htaccess директивы allow, deny, когда apache + mod_rpaf как backe

Тут обсуждалась эта проблема и альтернативное решение.
__________________
С уважением, Борис Долгов.
Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru
Boris A Dolgov вне форума   Ответить с цитированием
Старый 21.12.2008, 23:54   #8
RAS
Опыт админства => 17 лет
 
Аватар для RAS
 
Регистрация: 27.11.2005
Адрес: Земля Санникова
Сообщений: 883
Репутация: 54613
Отправить сообщение для RAS с помощью ICQ Отправить сообщение для RAS с помощью AIM Отправить сообщение для RAS с помощью MSN Отправить сообщение для RAS с помощью Yahoo Отправить сообщение для RAS с помощью Skype™ Send Message via Jabber to RAS
Социальные сети

По умолчанию Ответ: Не работает в .htaccess директивы allow, deny, когда apache + mod_rpaf как ba

Делается по возможности или в .htaccess, как написали выше.

Или патчится mod_rpaf:

Код:
static void register_hooks(apr_pool_t *p) {
    ap_hook_post_read_request(change_remote_ip, NULL, NULL, APR_HOOK_MIDDLE);
}
меняем APR_HOOK_MIDDLE на APR_HOOK_FIRST
RAS вне форума   Ответить с цитированием
Старый 22.12.2008, 02:30   #9
kisliy2000
Студент
 
Регистрация: 20.11.2007
Сообщений: 11
Репутация: 11

По умолчанию Ответ: Не работает в .htaccess директивы allow, deny, когда apache + mod_rpaf как ba

Цитата:
Сообщение от RAS Посмотреть сообщение
Или патчится mod_rpaf:

Код:
static void register_hooks(apr_pool_t *p) {
    ap_hook_post_read_request(change_remote_ip, NULL, NULL, APR_HOOK_MIDDLE);
}
меняем APR_HOOK_MIDDLE на APR_HOOK_FIRST
Может быть у меня какой-то не такой исходный код, однако в 0.6 уже по умолчанию идет ARP_HOOK_FIRST. Но это все равно не спасает.
В топике, ссылку на который привел Boris A Dolgov, приведен код модуля mod_realip2, в котором обсуждаемая проблема отсутствует.

Последний раз редактировалось kisliy2000; 22.12.2008 в 02:54..
kisliy2000 вне форума   Ответить с цитированием
Старый 22.12.2008, 10:13   #10
qwartyr
Кандидат наук
 
Аватар для qwartyr
 
Регистрация: 19.10.2007
Сообщений: 426
Репутация: 2702
Отправить сообщение для qwartyr с помощью ICQ

По умолчанию Ответ: Не работает в .htaccess директивы allow, deny, когда apache + mod_rpaf как ba

как вариант - подобный функционал есть в nginx, так что там можно легко реализовать конструкции вида

allow from [ip с которого соединяюсь]
allow from 127.0.0.1
deny from all

через
ngx_http_access_module

как пример
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
deny all;
}
__________________
профессиональное администрирование серверов
отзывы на free-lance.ru
qwartyr вне форума   Ответить с цитированием
Ответ



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны