INTEGRITY Документация

Доступ к базе данных MySQL и её защита с помощью Cloudflare Tunnel и сетевых политик

С помощью частных сетей Cloudflare Tunnel пользователи могут подключаться к произвольным TCP/UDP-приложениям, не работающим через браузер, например к базам данных. Вы можете настроить сетевые политики, реализующие элементы управления Zero Trust, чтобы определить, кто и что может получать доступ к этим приложениям через Cloudflare One Client.

К концу этого руководства пользователи, прошедшие проверку сетевых политик, смогут получить доступ к удаленной базе данных MySQL, доступной через Cloudflare Tunnel на TCP-порту 3306.

Перед началом работы

Убедитесь, что у вас есть:

Создайте Cloudflare Tunnel

Установка cloudflared на сервере в вашей частной сети. У этого сервера должно быть подключение к базе данных MySQL.

  1. Войдите в панель управления Cloudflare и перейдите в Сеть > Tunnels.

    Перейдите в Tunnels ↗
  2. Выберите Создать туннель.

  3. Введите имя туннеля. Рекомендуем выбрать имя, отражающее тип ресурсов, которые вы хотите подключить через этот туннель (например, enterprise-VPC-01).

  4. Выберите Create Tunnel.

  5. Выберите операционную систему, затем скопируйте команду установки и выполните её в терминале на вашем исходном сервере.

  6. Дождитесь подключения туннеля. После установления соединения выберите Продолжение.

Добавить маршруты частной сети

  1. В панели управления Cloudflare перейдите в Сеть > Маршруты.

    Перейдите в Маршруты ↗
  2. Выберите Создать маршрут > Tunnel CIDR. Выберите только что созданный туннель, введите приватный IP-адрес/CIDR вашего сервера MySQL (например, 10.128.0.175/32), и выберите Создать маршрут.

  3. (Необязательно) Повторите эти действия, чтобы создать второй маршрут для приватного IP-адреса или CIDR вашего внутреннего DNS-сервера.

Приложение и (необязательный) DNS-сервер теперь подключены к Cloudflare.

Создайте сетевую политику Gateway

  1. Перейдите в Политики трафика > Сетевые политики.
  2. Добавьте политика Network который нацелен на частный IP-адрес и порт базы данных MySQL (порт 3306 по умолчанию). Следующий пример разрешает доступ к базе данных пользователям, которые зарегистрировались в Cloudflare One Client с помощью @example.com адрес электронной почты. Сетевые политики также могут учитывать проверки состояния устройства.
Селектор Оператор Значение Логика Действие
IP-адрес назначения in 10.128.0.175 И Allow
Порт назначения in 3306 И
User Email matches regex .*example.com

Помимо указанного выше правила Allow, Cloudflare рекомендует добавить catch-all-политика блокировки в конец списка сетевых политик, чтобы обеспечить модель запрета по умолчанию.

Теперь разрешённые пользователи Cloudflare One Client могут подключаться к серверу MySQL по адресу 10.128.0.175 с помощью любого клиента MySQL по своему выбору.

(Необязательно) Создайте политику резолвера Gateway

Чтобы пользователи могли обращаться к базе данных MySQL по внутреннему имени хоста вместо приватного IP-адреса, настройте политику резолвера Gateway.

  1. Перейдите в Политики трафика > Резолвера политики.

  2. Выберите Добавление политики.

  3. Создайте выражение для сопоставления с приватным домен или имя хоста приложения, как в следующем примере:

    Селектор Оператор Значение
    Домен in internalrecord.com
  4. В Выберите DNS-резолвер, выберите Настройте пользовательские DNS-резолверы.

  5. Введите приватный IP-адрес вашего DNS-сервера.

  6. В раскрывающемся меню выберите <IP-address> - Private.

  7. (Необязательно) Введите пользовательский порт.

  8. Выберите Создать политику.

Если на вашем внутреннем DNS-сервере есть A запись для базы данных MySQL, пользователи могут подключаться к серверу с помощью этой записи. Например, предположим, что сервер BIND содержит запись:

mysql IN A 10.128.0.175

Разрешённые пользователи Cloudflare One Client могут подключаться к базе данных MySQL по адресу mysql.internalrecord.com с помощью любого клиента MySQL по своему выбору.