Назад | Перейти на главную страницу

Должен ли я установить PhpMyAdmin на производственном сервере или на другом сервере, получая доступ к производственной БД по сети?

(Этот вопрос связан с Вы бы установили phpmyadmin на рабочий веб-сервер?)

Я хочу использовать PhpMyAdmin для доступа к своей производственной базе данных. Я бы предпочел не устанавливать его на производственном сервере. Было бы разумно / безопасно запустить его на другом сервере, но иметь ли он доступ к моей производственной базе данных через Интернет?

У меня есть собственный сервер разработки, на котором я запускаю phpmyadmin, а затем есть туннели ssh от случайных высоких портов на сервере разработки до порта 3306 на каждом производственном сервере. Затем я указываю phpmyadmin на локальный порт с большим номером.

autossh -C -M 0 -f -N -L 7650:localhost:3306 pmauser@www.example.com

Это конфигурация myphpmyadmin для каждого хоста. Вы можете дублировать это столько раз, сколько вам нужно, изменив хост и порт. Когда вы переходите на страницу phpmyadmin, у вас будет раскрывающийся список, который позволяет вам выбрать, к какому хосту вы хотите подключиться. Просто убедитесь, что каждый из них находится в вашем файле hosts и указывает на localhost.

/*
MySite
 */

$i++; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['host'] = 'MySite'; $cfg['Servers'][$i]['port'] = '7650'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['AllowNoPassword'] = false; $cfg['Servers'][$i]['bs_garbage_threshold'] = 50; $cfg['Servers'][$i]['bs_repository_threshold'] = '32M'; $cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600; $cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';

Если вы подключаетесь к производственному серверу через Интернет, я бы рекомендовал минимизировать количество открытых портов. Само собой разумеется, что чем меньше сервисов доступно в Интернете, тем меньше вероятность того, что у вас будет уязвимость в системе безопасности.

При этом я бы рекомендовал следующее:

  1. Если вы уже предоставляете доступ к портам mySQL в Интернете, используйте phpMyAdmin удаленно. Если вы этого не сделаете, вы не должны рисковать, разрешая внешние подключения к базе данных.
  2. Разместите phpMyAdmin непосредственно на рабочем сервере, но используйте нетипичный URL. Боты ищут общие места, такие как / phpmyadmin /.
  3. Если вы открываете SSH (что, как я полагаю, вы делаете), выставляйте phpmyadmin только на локальном хосте производственного сервера и туннелируйте свой веб-трафик на сервер через SSH-соединение. Вы можете открыть соединение, подобное приведенному ниже, а затем указать в браузере socks-прокси "localhost: 2000".
ssh -D 2000 user@production-server

Вот мои предпочтения:

1) запретить подключения к mysql из-за пределов вашей сети 2) Запустить phpmyadmin с защищенного сервера ... https: // 3) Хранить mysql и phpmyadmin на разных серверах, чтобы снизить уровень уязвимости на одном сервере 4) Не открывать SSH вне вашей сети. Если вам нужно получить доступ к SSH извне, сначала подключите VPN к вашей сети.

Вы можете просто установить phpmyadmin на рабочий сервер, но можно сделать несколько вещей, чтобы повысить безопасность вашей системы:

1- Запустите apache на нестандартном порту.

2- Доступ к веб-страницам с помощью https. Самозаверяющего сертификата должно быть достаточно.

3- Используйте соответствующие правила разрешения / запрета в apache, чтобы разрешить только доверенные IP-адреса.

4- Измените URL-адрес http по умолчанию с phpmyadmin на что-то, что трудно угадать.

5- Используйте надежные пароли.