Гид по технологиям

Безопасное подключение к базе данных

• 5 min read • Безопасность • Обновлено 16 Nov 2025
Безопасное подключение к БД: подсеть и белые списки
Безопасное подключение к БД: подсеть и белые списки

Иллюстрация записей базы данных.

Быстрые ссылки

  • Лучшее решение: запускать базу в приватной подсети
  • Для удалённого администрирования: белые списки IP

Когда подключение к базе данных идёт не локально, нужно принять дополнительные меры предосторожности. Любые сетевые соединения должны быть защищены; нельзя оставлять базу открытой для всех и позволять подбору паролей.

Почему нельзя оставлять базу данных в публичном доступе

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

Коротко:

  • Публичный IP = больше попыток взлома и эксплойтов.
  • Приватная подсеть + надежные политики доступа = базовый уровень безопасности.

Важно: защита должна быть слоистой — приватная сеть не заменяет шифрование, ротацию паролей и мониторинг.

Лучшее решение: запуск базы в приватной подсети

Архитектурно часто удобно запускать базу на отдельной машине. Разделение базы и веб‑серверов упрощает масштабирование, резервирование и управление доступом. При этом машина базы данных не должна иметь публичного IP: она слушает только приватный IP в вашей VPC или локальной сети.

Схема подключения через приватную подсеть.

Такая конфигурация означает, что подключения к базе происходят только внутри вашей виртуальной частной сети. Пользователь взаимодействует с публичным веб‑сервером, который уже общается с базой внутри приватной сети — конечный пользователь не видит адреса сервера БД.

Практическая настройка с межсетевым экраном (пример на Ubuntu с ufw):

sudo ufw allow from 172.16.0.0/12 to any port 22

Эта команда разрешит доступ по SSH только из частной подсети 172.16.0.0/12. По аналогии можно ограничить доступ к портам СУБД так, чтобы только приватные адреса имели доступ. Не забудьте оставить административный доступ в удобной и безопасной форме (например, через bastion host или VPN).

Удалённое администрирование: белые списки IP

Если нужен прямой доступ к базе с вашей рабочей машины, простое и эффективное решение — внести её внешний IP в белый список. Это не заменяет пароль, но делает подбор паролей бессмысленным против большинства автоматических атак.

Пример для ufw:

sudo ufw allow from 123.123.123.123 to any port 27017

После добавления правила убедитесь, что нет других правил, открывающих тот же порт для всех IP. Белые списки удобны, но они зависят от стабильного внешнего IP; при смене адреса вам придётся обновлять правила.

Если вы хотите полностью исключить трафик через интернет, настройте VPN‑сервер (например, OpenVPN, WireGuard) и подключайтесь к нему как к локальной сети. Тогда ваша машина будет «внутри» VPC, и база останется полностью недоступной извне.

Альтернативы и когда их применять

  • VPN (OpenVPN, WireGuard): когда требуется постоянный защищённый доступ из разных мест. Подходит для команд и длительного администрирования.
  • Bastion host (jump host): минимальная публичная точка входа для управляемого SSH, часто с многофакторной аутентификацией.
  • SSH‑туннели (local/remote port forwarding): быстрый способ безопасно пробрасывать один порт через зашифрованный канал.
  • Privileged Identity Management / Cloud IAM: используйте встроенные механизмы провайдера для управления доступом к ресурсам.

Контраргументы: если у вас одноразовый доступ и вы не хотите настраивать VPN, белый список IP + временные ключи/пароли может быть быстрее. Если у вас динамические IP и нет VPN — рассмотрите bastion host с MFA.

Мини‑методика: пошаговая реализация

  1. Проанализируйте требования: кто и откуда должен подключаться.
  2. Запустите БД в приватной подсети: отключите публичный IP у инстанса БД.
  3. Ограничьте доступ на уровне подсети/SG/ACL: разрешите только внутренние адреса.
  4. Настройте веб‑сервер (публичный) для общения с БД по приватному IP.
  5. Для админов настройте VPN или белый список IP и проверьте доступ.
  6. Внедрите шифрование каналов (TLS), ротацию паролей и мониторинг логов.
  7. Тестируйте: попытки подключиться с публичного адреса должны быть заблокированы.

Роль‑ориентированные чеклисты

Администратор базы данных:

  • Проверить, что у инстанса БД нет публичного IP.
  • Убедиться в наличии бэкапов и плана восстановления.
  • Настроить TLS между приложением и БД.

DevOps:

  • Настроить VPC, приватные подсети и маршруты.
  • Реализовать правила безопасности на уровне firewall/SG/ACL.
  • Настроить bastion или VPN и автоматизацию правил.

Разработчик:

  • Использовать переменные окружения для конфигурации доступа.
  • Не хранить пароли в коде.
  • Тестировать подключение в изолированной среде.

Матрица рисков и смягчения

РискВероятностьВлияниеСмягчение
Публичный доступ к БДВысокаяВысокоеУбрать публичный IP, использовать приватную подсеть
Брутфорс паролейСредняяСреднееБелые списки IP, сильные пароли, лимит попыток
Утечка учётных данныхСредняяВысокоеРотация секретов, секрет‑менеджер
Неправильные правила firewallСредняяВысокоеРецензирование правил, CI проверки

Критерии приёмки

  • Инстанс БД не имеет публичного IP.
  • Доступ к порту БД разрешён только из приватной подсети или из белого списка IP.
  • Для администраторов настроен VPN или bastion с MFA.
  • Логи подключений собираются и мониторятся на предмет аномалий.

Тестовые случаи и приёмка

  • Попытка подключения к БД с публичного IP должна быть отклонена.
  • Подключение через VPN или с белого IP должно проходить.
  • При смене белого IP доступ должен прерываться до обновления правила.

Краткий глоссарий

  • VPC — виртуальная приватная сеть, изолированный сегмент в облаке.
  • White list (белый список) — набор IP или адресов, которым разрешён доступ.
  • Bastion host — промежуточный сервер для защищённого доступа к внутренним ресурсам.
  • VPN — виртуальная частная сеть для безопасного доступа извне.

Заключение

Запуск базы данных в приватной подсети — базовая, но критически важная мера. Для удалённого администрирования используйте белые списки IP в сочетании с VPN или bastion host для дополнительной защиты. Следуйте указанной методике, прогоняйте чек‑листы и регулярно пересматривайте правила безопасности.

Краткое резюме:

  • Минимизируйте публичный доступ, используйте приватные подсети.
  • Белые списки IP — простой способ ограничить админский доступ.
  • VPN или bastion host обеспечат более безопасный и управляемый доступ.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро