безопасность phpmyadmin
-
22-08-2019 - |
Вопрос
У меня есть производственный сервер с apache2, php, mysql.Прямо сейчас у меня есть только один сайт (mysite.com) в качестве виртуального хостинга.Я хочу установить там phpmyadmin, webalizer и, возможно, webmin.Пока что я установил phpmyadmin, и это работает, но весь интернет может перейти на mysite.com/phpmyadmin
Как я могу уменьшить видимость, скажем, до 192.168.0.0 / 16, чтобы она была доступна только машинам за моим брандмауэром?
Решение
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
Другие советы
Вы бы использовали модуль в Apache под названием мод_приход
Вы можете настроить его либо в вашем конфигурационном файле apache, либо в файле .htaccess в корневом каталоге.
Вот краткий пример
<Directory /your_folder/location>
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
</Directory>
Используйте <Location> директива (либо в конфигурации сервера, либо, если это разрешено, в .htaccess).Там вы можете использовать Allow from
чтобы запретить доступ всем остальным за исключением какой-то определенный источник.