безопасность phpmyadmin

У меня есть рабочий сервер с apache2, php, mysql. У меня сейчас только один сайт (mysite.com) в качестве виртуального хоста. Я хочу поставить туда phpmyadmin, webalizer и, возможно, webmin. До сих пор я установил phpmyadmin, и он работает, но весь Интернет может перейти на mysite.com/phpmyadmin.

Как я могу уменьшить видимость до 192.168.0.0/16, чтобы он был доступен только для машин за моим брандмауэром?


person Nick    schedule 02.04.2009    source источник


Ответы (3)


1) Вы можете сделать это на уровне веб-сервера.

Используйте разрешающие/запрещающие правила для apache. Если у вас нет прямого доступа к файлу конфигурации Apache, вы можете использовать файл .htaccess.

<Directory /docroot>
    Order Deny,Allow
    Deny from all
    Allow from 10.1.2.3
</Directory>

2) Вы можете сделать это на уровне приложения, используя файл конфигурации phpmyadmin.

Параметр конфигурации: $cfg['Servers'][$i]['AllowDeny']['rules']

Примеры правил:

'all' -> 0.0.0.0/0
'localhost' -> 127.0.0.1/8
'localnetA' -> SERVER_ADDRESS/8
'localnetB' -> SERVER_ADDRESS/16
'localnetC' -> SERVER_ADDRESS/24

Вы можете увидеть это в официальной документации по конфигурации phpMyAdmin.

http://www.phpmyadmin.net/documentation/#servers_allowdeny_order

person Wadih M.    schedule 02.04.2009
comment
Я сделал вариант № 2 с добавлением /usr/share/phpmyadmin, чтобы разрешить 192.168.0.0/16, и, похоже, это сработало. Спасибо. - person Nick; 02.04.2009
comment
Вариант 2 - это путь. Проще, и я бы предпочел заблокировать его до того, как он запустит какой-либо период PHP. - person Adam Jaskiewicz; 02.04.2009
comment
Хорошо, я переместил вариант Apache в первую очередь. - person Wadih M.; 02.04.2009
comment
Чтобы люди не запутались: во всех комментариях до этого, когда они говорят вариант № 2, они на самом деле имеют в виду вариант веб-сервера. - person Wadih M.; 03.04.2009

Вы должны использовать модуль Apache под названием mod_access.

Вы можете настроить его либо в файле конфигурации Apache, либо в файле .htaccess в корне каталога.

Вот краткий пример

<Directory /your_folder/location>
    Order Deny,Allow
    Deny from all
   Allow from 123.123.123.123
</Directory>
person Ólafur Waage    schedule 02.04.2009

Используйте директиву ‹Location› (либо в конфигурации сервера, либо если это разрешено, в .htaccess). Там вы можете использовать Allow from, чтобы запретить доступ всем остальным, кроме определенного источника.

person andri    schedule 02.04.2009