Я использую ubuntu 12.04 и пытаюсь обезопасить себя. Я все еще новичок в Linux, поэтому не совсем уверен, как это интерпретировать.
Я вошел в свою учетную запись root, используя mysql -u root -p
а затем увидеть всех набранных мной пользователей SELECT User FROM mysql.user;
который показал следующее
+------------------+
| User |
+------------------+
| root |
| root |
| |
| root |
| |
| Testing |
| debian-sys-maint |
| phpmyadmin |
| root |
+------------------+
Я вошел в phpmyadmin, чтобы проверить, для чего каждая из учетных записей root, и заметил, что все они имеют разные хосты. Localhost, 127.0.0.1, :: 1 и еще один IP-адрес. Нужно ли все это хранить? В настоящее время я подключаюсь по SSH к моему серверу (используя пару ключей), а затем получаю доступ к MySQL через терминал или через PHPMyadmin прямо со своего URL-адреса, поэтому я почти уверен, что просто обращаюсь к нему через корневую учетную запись localhost и никому из других.
Если я изменю свой пароль root, изменятся ли все другие учетные записи root MySQL (с разных хостов)? Что бы вы сделали в этой ситуации, чтобы сделать его более безопасным?
Вот о чем я думал, но, возможно, есть способ получше. Я собирался изменить пароль пользователя root MySQL на какой-нибудь длинный и случайный (и записать его) и создать другую учетную запись с более коротким паролем для повседневного управления.
Для записи, я уже ограничил IP-доступ к PHPMyAdmin и создал псевдоним, я просто хочу сделать все, что в моих силах, чтобы какой-то рывок не попытался завладеть им.
Недавно установленный MySQL в Ubuntu 12.04 показывает это.
mysql> select user,host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | root | 127.0.0.1 | | root | ::1 | | | localhost | | debian-sys-maint | localhost | | root | localhost | | | myserver | | root | myserver | +------------------+-----------+
127.0.0.1, ::1, localhost, myserver(server hostname)
установлены по умолчанию. Эти записи практически совпадают с ::1
быть IPV6-эквивалентом localhost
, так что в целом они безопасны.
По сути, эти записи говорят, что вы разрешаете этим хостам подключаться к MySQL как root
. В вашем случае вы также разрешаете another IP address
чтобы подключиться как root к вашему MySQL. Если нет скрипта или приложения, подключающегося к MySQL с этого IP-адреса, вы можете удалить эту запись.
У вас все еще есть одна учетная запись root, поэтому изменение пароля отразится на всех подключениях, независимо от хостов.
Вы также можете запустить эту очень полезную команду, чтобы защитить свой сервер MySQL.
sudo mysql_secure_installation
Хотя все они называются «root», MySQL видит каждую из этих пользовательских записей как уникальную учетную запись. Учетная запись основана на комбинации «пользователь» @ «хост». Каждый из них жестяная банка иметь отдельный пароль, хотя это легко может стать кошмаром для управления учетной записью.
У вас есть несколько способов изменить пароли для учетных записей, и в зависимости от того, как вы это делаете, вам, возможно, придется повторить это для каждой учетной записи, чтобы они синхронизировались.
Первый способ (вероятно, тот, с которым знакомо большинство людей) - использовать SET PASSWORD
shell> mysql -u root -p
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');
Если вы хотите обновить их все сразу, вы можете использовать UPDATE
shell> mysql -u root -p
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
-> WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
Третий способ, если использовать mysqladmin
инструмент
shell> mysqladmin -u root password "newpwd"
shell> mysqladmin -u root -h host_name password "newpwd"
Если вы используете этот метод, вам необходимо отметить:
В
mysqladmin
метод установкиroot
пароли аккаунтов не работают для'root'@'127.0.0.1'
или'root'@'::1'
учетная запись. ИспользоватьSET PASSWORD
метод, показанный ранее.
Подробнее о Сайт MySQL
Я согласен с вашей идеей использования отдельной учетной записи для повседневных задач, вам просто нужно будет найти правильную комбинацию разрешений, которая будет работать с тем, что вы хотите, не слишком тяжеловесно.
Я бы также периодически просматривал журналы вашего сервера (или имел бы инструмент) для мониторинга входов в базу данных, например, для root.
Вы можете сделать гораздо больше для защиты своей установки, но это может легко выйти за рамки этого.