29 марта 2024, 01:53

Цитата дня:

Единственный способ установить границы возможного - это выйти за них в невозможное.  Закон Кларка


Debian9 + apache2 + nginx + phpmyadmin и защита последнего

Автор bobylev, 30 марта 2018, 12:23

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

Вниз

bobylev

Всем привет!

Есть сервер на debian 9.3. На нем установлен apache + php7.1 + mysql + phpmyadmin

Доступ к phpmyadmin разрешен с определенных ip(только из локальной сети + один внешний), а также изменен путь в файле /etc/phpmyadmin/apache2.conf
Вот кусок конфига:

Alias /some_address /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    Order deny,allow
    Deny from all
    Allow from 192.168.0.1/24 X.X.X.X


Дальше настроил nginx по https://interface31.ru/tech_it/2016/08/nastraivaem-veb-server-nginx-kak-front-end-k-apache.html

Установил и настроил модуль rpah. При распечатке массива SERVER получаю:
[HTTP_X_REAL_IP] => 192.168.0.73
[HTTP_X_FORWARDED_FOR] => 192.168.0.73
[SERVER_ADDR] => 127.0.0.1
[REMOTE_ADDR] => 127.0.0.1

Нормально ли, что SERVER_ADDR и REMOTE_ADDR ссылаются на 127.0.0.1 ?

Связка отлично работает. Но вот проблема. не могу получить доступ к phpmyadmin.

Изменил конфиг nginx на

location /some_address {
 root /usr/share/;
 index index.php;

 location ~ ^/some_address/(.+\.php)$ {
   try_files $uri =404;
   root /usr/share/;
   proxy_pass http://apache24;
  }

 location ~* ^/some_address/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
   root /usr/share/;
   expires 1M;
 }
}


Либо nginx ругается 404 Not Found.
Ставлю стандартный путь к phpmyadmin, ругает apache
Forbidden
You don't have permission to access /phpmyadmin/index.php on this server.

Но если добавить к разрешенным ip 127.0.0.1 То все работает.

Но тогда пропадает смысл от контроля доступа по ip.


Подскажите, пожалуйста, что я делаю не так?

Хотелось бы и изменить путь к phpmyadmin и разрешить доступ с определенных ip

Уваров А.С.

Но если добавить к разрешенным ip 127.0.0.1 То все работает.
Совершенно верно, так как клиентом для apache является nginx.


Ограничьте доступ на уровне nginx, тем более что это очень просто: https://nginx.ru/ru/docs/http/ngx_http_access_module.html

bobylev

Спасибо, обязательно попробую.

Удалось правда передать apache корректный ip адрес клиента, используя вместо rpah модуль remoteip. Но лучше, наверное, ограничить доступ nginx

Скажите, пожалуйста, а как можно изменить путь к phpmyadmin?

Пробовал сделать так

location /some_address {
 alias /usr/share/phpmyadmin/;
 index index.php;

 location ~ ^/some_address/(.+\.php)$ {
   try_files $uri =404;
   alias /usr/share/phpmyadmin/;
   proxy_pass http://apache24;
  }

 location ~* ^/some_address/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
   alias /usr/share/phpmyadmin/;
   expires 1M;
 }
}



но не получилось((

Уваров А.С.

Перед этим сделайте

Цитировать
ln -s /usr/share/phpmyadmin/   /usr/share/some_address
Потом во всех местах заменяете один путь на другой.

bobylev

Спасибо!!!

Вверх