Руководство по безопасному включению удаленного доступа к MySQL в 2025 году.
В данной статье описаны безопасные методы обеспечения удаленного доступа к серверам MySQL и MariaDB.

Руководство по безопасному включению удаленного доступа к MySQL в 2025 году.

В этой статье вы узнаете о безопасных и практичных способах обеспечения удаленного доступа к серверам MySQL и MariaDB в 2025 году. Следуя рекомендациям по безопасности и используя VPN и SSH, вы сможете легко и уверенно получать доступ к своим базам данных.
0 Акции
0
0
0
0
  1. Как обеспечить безопасный удалённый доступ к MySQL/MariaDB?
  2. Общие шаги и принципы безопасности
  3. Почему MySQL не должен быть напрямую доступен из интернета?
  4. Пошаговая настройка MySQL для удаленного доступа (практические инструкции)
    1. 1) Отредактируйте конфигурационный файл.
    2. 2) Создание защищенного пользователя с ограничениями.
    3. 3) Включение SSL/TLS для MySQL
    4. 4) Использование SSH-туннеля
    5. 5) Настройки брандмауэра
  5. Дополнительная защита — передовые и рекомендуемые решения (2025)
    1. Использование частной сети, VPC и VPN.
    2. Bastion Host и Zero Trust
    3. Аутентификация и алгоритмы
    4. Защита от нападений и ограничений
    5. Мониторинг и ведение журналов
  6. Практические советы по выбору местоположения и конфигурации центра обработки данных в зависимости от области применения.
  7. Примеры конфигурации my.cnf для различных целей.
  8. Окончательный контрольный список мер безопасности перед включением удаленного доступа.
  9. Заключение и окончательные рекомендации
  10. Часто задаваемые вопросы

 

Как обеспечить безопасный удалённый доступ к MySQL/MariaDB?

В этом обновленном (2025 г.) руководстве мы рассматриваем практические и безопасные способы обеспечения удаленного доступа к серверам MySQL и MariaDB. Цель — предоставить практический контрольный список для администраторов сайтов, специалистов DevOps, команд разработчиков баз данных и разработчиков, позволяющий предоставлять доступ только авторизованным пользователям и приложениям без ущерба для безопасности.

 

Общие шаги и принципы безопасности

Краткое описание шагов:

  • Архитектурный дизайн: Никогда Не размещайте базу данных непосредственно в общедоступном интернете, если в этом нет необходимости.
  • Используйте частную сеть (VPC/VLAN), VPN или SSH-туннелирование.
  • Ограничьте доступ на основе IP-адресов и создавайте пользователей с определенными правами. Минимальный балл.
  • Шифрование TLS/SSL для трафика базы данных и использование надежной аутентификации (*caching_sha2_password* / *X.509*).
  • Включите ведение журналов и ограничение скорости запросов, используйте межсетевые экраны и системы обнаружения вторжений (IDS/IPS).
  • Проанализируйте производительность и задержку и выберите подходящее местоположение центра обработки данных в зависимости от приложения.

 

Почему MySQL не должен быть напрямую доступен из интернета?

Базы данных являются привлекательной целью для хакеров, поскольку содержат конфиденциальные данные и учетные данные. Открытие порта 3306 для доступа в интернет без ограничений или шифрования увеличивает риски утечки данных, атак методом перебора паролей и DDoS-атак.

 

Пошаговая настройка MySQL для удаленного доступа (практические инструкции)

 

1) Отредактируйте конфигурационный файл.

Общие конфигурационные файлы:

  • MySQL (Debian/Ubuntu): /etc/mysql/mysql.conf.d/mysqld.cnf
  • MariaDB: /etc/mysql/mariadb.conf.d/50-server.cnf

По умолчанию эта строка может адрес привязки К 127.0.0.1 Настройка выполнена. Для приема подключений с определенного IP-адреса или со всех адресов:

Рекомендуется: Разрешить использование определенного IP-адреса:

bind-address = 192.0.2.10

Не рекомендуется использовать, за исключением частных сетей:

bind-address = 0.0.0.0

После изменений:

systemctl restart mysql

 

2) Создание защищенного пользователя с ограничениями.

Никогда от пользователя корень Не использовать для удалённых подключений. Примеры команд:

mysql -u root -p
CREATE USER 'appuser'@'203.0.113.45' IDENTIFIED WITH caching_sha2_password BY 'StrongP@ssw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'appuser'@'203.0.113.45';
FLUSH PRIVILEGES;

Важные моменты:

  • Гораздо безопаснее использовать конкретный IP-адрес ('203.0.113.45') вместо '%'.
  • Определение Минимальные права доступа (наименьшие привилегии).
  • Для подключений из частной сети используйте частные адреса (например, 10.xxx).

 

3) Включение SSL/TLS для MySQL

Краткий пример создания центра сертификации и сертификатов с помощью OpenSSL:

openssl genrsa 4096 -out ca-key.pem
openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca.pem -subj "/CN=MyDB-CA"

openssl genrsa 4096 -out server-key.pem
openssl req -new -key server-key.pem -out server-req.csr -subj "/CN=db.example.com"
openssl x509 -req -in server-req.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -days 3650

openssl genrsa 4096 -out client-key.pem
openssl req -new -key client-key.pem -out client-req.csr -subj "/CN=dbclient"
openssl x509 -req -in client-req.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -days 3650

Размещение сертификатов в my.cnf:

[mysqld]
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem

После перезапуска появляется возможность требовать от пользователей использования сертификатов:

ALTER USER 'appuser'@'203.0.113.45' REQUIRE X509;
-- یا فقط TLS بدون client cert:
ALTER USER 'appuser'@'203.0.113.45' REQUIRE SSL;

Защищенное соединение со стороны клиента:

mysql -u appuser -p -h db.example.com --ssl-mode=REQUIRED --ssl-ca=ca.pem

 

4) Использование SSH-туннеля

Подходит для администраторов и пользователей с ограниченным доступом в случаях, когда TLS недоступен. На клиентском компьютере:

ssh -fN -L 3306:127.0.0.1:3306 [email protected]

Этот метод подключает вас к локальному порту 3306, который туннелируется к удаленному серверу.

 

5) Настройки брандмауэра

Пример использования ufw (разрешить только указанные IP-адреса):

ufw allow from 203.0.113.45 to any port 3306 proto tcp

С firewalld:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.45" port protocol="tcp" port="3306" accept'
firewall-cmd --reload

Проверка порта:

ss -tlnp | grep 3306
telnet db.example.com 3306

 

Дополнительная защита — передовые и рекомендуемые решения (2025)

 

Использование частной сети, VPC и VPN.

Вместо открытия порта базы данных для доступа из интернета используйте частную сеть между приложением и базой данных. При использовании нашего сервиса вы можете использовать частную сеть и BGP/VRF для безопасного соединения.

Для распределенных пользователей рекомендуется использовать VPN или IPsec, чтобы трафик к базе данных передавался только по зашифрованным каналам.

 

Bastion Host и Zero Trust

Развертывание бастионного хоста с двухфакторной аутентификацией (MFA) и полным логированием сессий — более безопасный подход, чем прямое открытие портов. Модель нулевого доверия означает, что каждое соединение должно быть аутентифицировано, и разрешен доступ только к определенным ресурсам.

 

Аутентификация и алгоритмы

  • MySQL 8: Использование caching_sha2_password Вместо mysql_native_password Это безопаснее.
  • В деликатных случаях использовать Сертификаты клиентов X.509 Рекомендовано.
  • Управление паролями с помощью менеджера секретов или хранилища (например, HashiCorp Vault, AWS Secrets Manager) лучше, чем хранение паролей в файлах или коде.

 

Защита от нападений и ограничений

  • Держите значение max_connect_errors на низком уровне. пропуск разрешения имени Включите эту опцию, чтобы избежать задержек, связанных с DNS.
  • Использование fail2ban со специальным фильтром mysql-auth для блокировки вредоносных IP-адресов.
  • Общий лимит скорости соединений и соответствующая настройка connection_timeout.

 

Мониторинг и ведение журналов

Включение журналов аудита, общих журналов и журналов медленных запросов, а также использование таких инструментов, как Prometheus + Grafana или Percona Monitoring, имеет важное значение для выявления вредоносных шаблонов и проблем с производительностью.

 

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

Рекомендации в зависимости от типа приложения:

  • Торговля (Форекс/Криптовалюты): Минимальное время отклика (RTT) до сервера биржи/трейдера имеет важное значение; рекомендуется выбирать местоположение, близкое к бирже. Наш сервис предоставляет такую возможность благодаря более чем 85 точкам продаж.
  • Игры: Для игровых баз данных требуется низкий пинг; оптимизированная маршрутизация BGP и сеть с низкой задержкой имеют важное значение. Полезными являются игровые VPS-серверы и серверы защиты от DDoS-атак.
  • Искусственный интеллект/Рендеринг: При высоких нагрузках на ввод-вывод и вычисления объединение серверов GPU и баз данных в одной частной сетевой зоне позволяет снизить задержку.
  • Веб-сайты и приложения: Использование CDN и кэша на уровне приложений (Redis/Memcached) вместе с базой данных в частной сети обеспечивает наилучший баланс скорости и стоимости.

 

Примеры конфигурации my.cnf для различных целей.

Конфигурация для сервера со средней нагрузкой (веб/приложение):

[mysqld]
bind-address = 10.0.1.5
max_connections = 200
innodb_buffer_pool_size = 2G
skip-name-resolve = 1
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem

Для высоконагруженных выделенных серверов для ИИ/рендеринга:

innodb_buffer_pool_size = 16G
innodb_flush_method = O_DIRECT
innodb_io_capacity = 2000

Всегда регулируйте параметры в зависимости от потребностей оперативной памяти, ввода-вывода и приложений.

 

Окончательный контрольный список мер безопасности перед включением удаленного доступа.

  • Использование частной сети или VPN для передачи данных в базу данных.
  • Ограничение разрешенных IP-адресов в межсетевом экране.
  • Создавайте пользователей с минимальными привилегиями и используйте безопасные алгоритмы хеширования.
  • Включите TLS/SSL и, при необходимости, клиентские сертификаты.
  • Для удалённых подключений не используется root-права.
  • Включить ведение журналов; отправлять журналы во внешнюю систему.
  • Установка лимитов на количество подключений и использование fail2ban
  • Мониторинг и оповещение в случае необычного увеличения трафика или ошибок.
  • Регулярное резервное копирование и тестирование восстановления.

 

Заключение и окончательные рекомендации

В 2025 году удаленный доступ к MySQL должен быть быстрым и безопасным. Оптимальный подход: сначала рассмотрите возможность использования частной сети или VPN, затем добавьте TLS и ограничения по IP-адресу, а также ограничьте доступ до минимума.

Использование Bastion Host, многофакторной аутентификации и расширенного логирования повысит вашу безопасность. Если вам нужен высокостабильный сервер, сеть с низкой задержкой и функциями безопасности, наши услуги включают более 85 локаций по всему миру, серверы с графическими процессорами, вычислительные серверы, серверы с защитой от DDoS-атак, VPS для торговли и игр, CDN и сети BGP, предлагая как готовые, так и настраиваемые варианты.

 

Часто задаваемые вопросы

Вам также может понравиться
Повысьте производительность, точность и безопасность с помощью AWS Global Accelerator.

Повысьте производительность, точность и безопасность с помощью AWS Global Accelerator.

AWS Global Accelerator — это важнейший сервис, обеспечивающий повышение производительности и безопасности веб-сайтов и приложений, использующих Anycast IP-адреса. В этой статье подробно рассматривается, как оптимизировать доступность, уменьшить задержку и защитить приложения с помощью технологий AWS.
Как использовать Rsync для синхронизации локальных и удаленных каталогов

Синхронизация каталогов между сервером и локальной системой rsync

Синхронизация файлов — одна из важнейших операций при хранении данных, резервном копировании и управлении сервером. Инструмент rsync — мощное, гибкое и оптимизированное решение для этой задачи. Это руководство покажет вам, как синхронизировать локальные и удалённые каталоги (на сервере) с помощью rsync, использовать его для резервного копирования и автоматизировать передачу данных.
Включение и отключение Cloudflare Universal SSL — практическое и безопасное руководство для администраторов серверов и разработчиков.

Включение и отключение Cloudflare Universal SSL — практическое и безопасное руководство для администраторов серверов и разработчиков.

В этой статье мы подробно и технически объясним, как включить и отключить Universal SSL в Cloudflare. Это руководство поможет вам максимально эффективно использовать этот сервис для защиты вашего сайта. Узнайте, как его включить и отключить, и ознакомьтесь с настройками безопасности.

Как создать нового пользователя и предоставить ему разрешения в MySQL

Введение. MySQL — это система управления реляционными базами данных с открытым исходным кодом. Обычно она используется как часть…

Все, что вам нужно знать об API Firestore от Google Cloud

Google Firestore — одна из самых популярных облачных NoSQL-баз данных в мире, предоставляемая Firebase и Google Cloud. Firestore подходит для разработки приложений реального времени, масштабируется, не требует управления сервером и работает очень быстро. Эта база данных доступна с REST API, gRPC и различными SDK и пользуется большой популярностью у мобильных, веб- и бэкенд-разработчиков. В этой статье мы подробно и всесторонне рассмотрим Firestore, приведя практические примеры, проекты, которые можно реализовать с её помощью, примеры успешных приложений, архитектуру, безопасность и рекомендации.
Как отключить IPv6 в Windows — полное и безопасное руководство

Как отключить IPv6 в Windows — полное и безопасное руководство

Узнайте, как отключить IPv6 в Windows безопасными и практичными способами. Ознакомьтесь с советами и различными методами отключения IPv6 с учетом требований безопасности и устранения неполадок. Подходит для сетевых и серверных администраторов.