Закрыть удаленный доступ к MySQL

При установке MySQL он автоматически начинает прослушивать порт 3306. И если файервол не настроен на блокировку входящих соединений на этот порт, но в лог файле доступка к базе быстро появится длинный список с неудачными попытками входа под пользователем "root":
Access denied for user 'root'@'...' (using password: YES)
Access denied for user 'root'@'...' (using password: YES)
Access denied for user 'root'@'...' (using password: YES)
Эти сообщения появляются, потому что злоумышленники пытаются подобрать root пароль к базе. Делают они это бесконечным перебором. И со временем таких желающих станет только больше. Поэтому обязательно ограничивайте доступ к порту по ip через iptables или отключите прослушивание порта в настройках MySQL совсем.

Отключение сетевых функций MySQL

Для отключения сетевых функций в MySQL откройте в текстовом редакторе конфигурационный файл этой СУБД по адресу /etc/my.cnf. И пропишите там две директивы bind-address и skip-networking в секции [mysqld], чтобы получилось так:
[mysqld]
bind-address = 127.0.0.1
skip-networking = on
После внесения изменений файл сохраните его и перезапустите сервис mysql:
systemctl restart mysqld
Чуть подробнее об этих директивах:

bind-address - адрес, который прослушивает сервер. Если задать 127.0.0.1, то сервер будет слушать только себя, не отвечая на внешние запросы.

skip-networking - отключает использование сети. То есть никакие TCP/IP соединения не будут обработаны. СУБД будет использовать только сокет.

Проверка значений директив MySQL

Чтобы проверить действительно ли были установлены значения bind_address и skip_networking на нужные, стоит выполнить следующие SQL запросы. Сначала откройте MySQL в консоли сервера с помощью одноимённой команды:
mysql
Появится строка для ввода SQL запросов. Выполните поочерёдно два:
SHOW GLOBAL VARIABLES like 'bind_address';
SHOW GLOBAL VARIABLES like 'skip_networking';
В результате будет возвращены значения этих директив. Они должны быть "127.0.0.1" и "ON" соответственно. Если этого не произошло. то значит что их значения перезаписываются ниже по файлу конфигурации.

И в конце, чтобы окончательно убедиться, что MySQL перестала прослушивать порт, выполните команду для распечатки списка портов, которые прослушиваются:
netstat -lntup
В появившемся списке не должно быть ничего с портом ":3306". Читайте подробнее об команде "netstat" в статье Кто слушает порт в Linux.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Cмотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб

⇡ наверх