Вернуться назад

Блокировка IP в .htaccess (nginx+apache2+mod_rpaf)

Проблема
Достаточно давно была замечена проблема с обработкой ip в директивах Deny From (.htaccess или httpd.conf). Проблема заключается в том, что конструкция

Order Deny, Allow
Deny From all
Allow From 10.1.1.1

не разрешит доступ с IP 10.1.1.1 при обращении к порту 80, на который поступают все http-запросы. В нашей схеме, запросы на 80 порту обрабатывает Nginx и передает их Aapche, к примеру на порт 8080. Из-за бага mod_rpaf Allow From 10.1.1.1 не сработает, а все запросы будут получать ответ 403 Dorbidden. Аналогичная проблема и с Deny From 10.1.1.1.

Что же делать?
Решение довольно простое. Мы будем использовать директиву SetEnvIf (подробности можно узнать в документации Apache: http://httpd.apache.org/docs/2.1/mod/mod_setenvif.html). И так, рабочий вариант будет выглядеть следующим образом:

SetEnvIf Remote_Addr ^10\.1\.1\.1 testrule
Order Deny,Allow
Deny from all
allow from env=testrule

 

Наше правило запретит доступ для всех, кроме ip 10.1.1.1. На этом все. Успешной работы!

 

Для подсети /16

 

SetEnvIf Remote_Addr «^10\.1\.» testrule


igel
Дата: 24 января 2019 г. в 20:38:16

Автор: igel