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

Должен ли я установить пароль root mysql?

У меня есть веб-сервер, размещенный на AWS, с группой безопасности, разрешающей доступ со всех IP-адресов на TCP-порт 22 (ssh) и 443 (https). Для доступа по ssh у пользователя должен быть мой закрытый ключ.

Должен ли пользователь root в базе данных MySQL на этом сервере иметь пароль? Если да, то почему? Единственный способ войти в базу данных - это ssh'ing в машину, и если хакер может это сделать, он может легко просмотреть данные в любом случае, проверив файлы .myd.

Тем не менее, общепринятое мнение, с которым я столкнулся, похоже, поддерживает ограничение корневого доступа к базе данных.

Обновить Что делать, если моя база данных находится на другом компьютере, чем веб-сервер, и доступ к базе данных возможен только через порт mysql с веб-сервера? Тогда все еще рекомендуется иметь пароль root?

Да, вам следует использовать пароль. Зачем? Потому что несколько уровней безопасности лучше, чем один уровень безопасности, известный как подход «огороженного сада». Если кто-то взломает эту стену, вам захочется, чтобы у вас было несколько уровней безопасности, чтобы не допустить их.

  1. Почему бы вам не установить пароль? Пароли неудобны, но неудобства незначительны. Вы можете поместить пароль в ~ root / .my.cnf и убедиться, что права доступа к файлу очень строгие. Например:

    [client]
    password=hackme123##
    
  2. Ошибки случаются. И https, и ssh достаточно безопасны, но существуют эксплойты, которые могут позволить кому-то украсть ваш сеанс https или прослушать данные из сеанса https.

  3. Некоторые пользователи используют незашифрованные ssh-ключи, то есть SSH-ключ, созданный без пароля. Если хакеру удалось украсть ваш закрытый ключ, он может использовать этот ключ для входа на ваш хост базы данных (поскольку кодовая фраза не требуется), а затем войти в саму базу данных.

  4. https настолько же безопасен, насколько и работающее в нем веб-приложение. Нередко веб-приложение случайно разрешает доступ к командной строке из-за плохого кодирования.

  5. Если кто-то взломал ваш веб-приложение, они могут войти в базу данных в качестве корня и удалить все базы данных, вставки ссылки на порно и вредоносных сайтов в драгоценном CMS, создать бэкдор счета для собственных нужд и т.д.

На самом деле это не единственный способ попасть внутрь. Насколько безопасно ваше веб-приложение? (Правильный ответ - всегда «Нет»). Итак, да, у вас есть канал, по которому кто-то может войти, и это реальная веб-служба, которую вы используете.

Если кто-то входит, по умолчанию они не могут просматривать файлы .myd. Для прямого доступа к файлам вам понадобится эксплойт корневой оболочки. Если кто-то каким-то образом «попадает» с непривилегированной учетной записью (например, как пользователь вашего веб-сервера), то пароль root MySQL является единственным препятствием, препятствующим полному удалению или уничтожению ваших данных.

Да, вы должны установить пароль root в своей базе данных MySQL, а затем хранить его в безопасном и восстанавливаемом условном депонировании.

Для безопасности нет «контрольного списка», безопасность - это процесс и образ мышления, но есть несколько основных принципов, один из которых - глубокоэшелонированная защита:

Глубокая оборона - Никогда не кладите яйца в одну корзину.

Аутентификация - пароли - это «то, что вы знаете» токен аутентификации. Проблема: пароль по умолчанию (в данном случае пустой) известен всем. Следовательно, у вас больше нет механизма аутентификации для вашей базы данных.

Резюме: Установка пароля "стоит" вам очень мало и значительно усложняет работу злоумышленнику. Хорошая покупка.