Page 1 of 1

nginx+php-fpm ограничение на папку по IP

Posted: Thu Oct 13, 2016 1:10 pm
by ogloblya
Всем привет.
Есть конфигурация nginx+php-fpm , Centos 7.2

Никак не могу применить ограничение на папку по IP для домена.
Запрет для всех работает:
SpoilerShow
location ~* ^/administrator/.+\.php {
deny all;
}
Разрешение ну никак не хочет :( предлагает сохранить какие то файлы постоянно
SpoilerShow
location ~* ^/administrator/.+\.php {
allow Х.Х.Х.Х;
deny all;
}
Может кто подсобнет советом, интернет как то не помогает в данном случае.

Re: nginx+php-fpm ограничение на папку по IP

Posted: Mon Oct 17, 2016 3:21 pm
by ogloblya
Блин ну неужели ни у кого такого не было ?
Перепробовал кучу различных модификаций строк .... deny работает, allow не работает. ^(((

Че ему надо не пойму.

Re: nginx+php-fpm ограничение на папку по IP

Posted: Fri Oct 28, 2016 4:46 pm
by ogloblya
Попробовал новую конфигурацию:

location ~* /administrator/. {
allow Х.Х.Х.Х;
deny all;
}

При нужном ИП предлагает скачать какой то сценарий, при неправильном ИП блокирует .... :((( Неужели у всех работает, запрет по ИП или все тупо юзают пароли и не парятся такими недоработками.

Re: nginx+php-fpm ограничение на папку по IP

Posted: Tue Nov 01, 2016 5:51 am
by skurudo
Схема классическая, даже странно почему она у вас не сработала
Попробуйте вот так записать локейшен:

Code: Select all

location ^~ /administrator {
  allow 1.2.3.4;
  deny all;
}

Re: nginx+php-fpm ограничение на папку по IP

Posted: Sun Nov 06, 2016 2:09 am
by ogloblya
skurudo wrote:Схема классическая, даже странно почему она у вас не сработала
Попробуйте вот так записать локейшен:

Code: Select all

location ^~ /administrator {
  allow 1.2.3.4;
  deny all;
}
Попробовал, все тоже самое, при совпадении ИП предлагает скачать сценарий пхп. Запрет работает.
Конфигурация joomla, пытался вставлять в разные места конфига вроде тоже не помогает :(
Может надо в какое то определенное место вставлять?

Re: nginx+php-fpm ограничение на папку по IP

Posted: Wed Nov 09, 2016 7:13 am
by ogloblya
skurudo wrote:Схема классическая, даже странно почему она у вас не сработала
Попробуйте вот так записать локейшен:
Может я не в то место ее впихиваю, подскажите в какую строку конфига жумла нужно ее вставить?

Re: nginx+php-fpm ограничение на папку по IP

Posted: Wed Nov 09, 2016 12:33 pm
by Stesh
skurudo wrote:Схема классическая, даже странно почему она у вас не сработала
Попробуйте вот так записать локейшен:

Code: Select all

location ^~ /administrator {
  allow 1.2.3.4;
  deny all;
}
А она может не сработать.
Для /administrator она сработает, а /administrator/index.php будет обработан локейшеном location ~ [^/]\.php(/|$) или какой там.
Что бы ограничить доступ к папке по ip, нужно делать вложенный локейшн, обрабатывающий php.
Пример

Code: Select all

location ^~ /administrator/ {
    allow 1.2.3.4/24;
    allow 1.2.3.4/16;
    deny all;

    location ~ \php$ {
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        ...
        ...
    }
}

Или пример в случае ТС

Code: Select all

location ~* ^/administrator/.+\.php {
allow Х.Х.Х.Х;
deny all;
// добавляем обработку php
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        ...
        ...
    }
    
}

Re: nginx+php-fpm ограничение на папку по IP

Posted: Thu Nov 10, 2016 5:47 pm
by ogloblya
Stesh wrote:А она может не сработать.
Спасиииибоооо человек !!!

Сколько сил потратилось на перечитывание этих всех гребаных мануалов по безопасности, joomla, nginx и прочей пурги. Сколько всякой информации я узнал за это время но ни в одном не встретил этого гениального решения.

Заработало елы палы, ну почему ..... ПОЧЕМУ этого нет в стандартном конфиге Joomla. Вот сто пудово все юзают пароли.

По существу, заработал почему только один вариант, второй не захотел:

Code: Select all

location ^~ /administrator/ {
allow х.х.х.х;
deny all;

location ~ \php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
if (!-f $document_root$fastcgi_script_name) {
return  404;
}

fastcgi_pass    127.0.0.1:9050;
fastcgi_index   index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include         /etc/nginx/fastcgi_params;
}
}
Вставил его после локешена htacces. Этож просто офигенно когда можно всех отсылать нафиг по ИП.
Теперь осталось освоить настройки nginxa по geo ip :)