Spec-Zone.ru › MySQL 5.7

14.21.4 Меры безопасности для плагина InnoDB memcached

Внимание

Проконсультируйтесь с этим разделом перед развертыванием плагина daemon_memcached на сервере производства или даже на тестовом сервере, если экземпляр MySQL содержит конфиденциальные данные.

Поскольку memcached по умолчанию не использует механизм аутентификации, а необязательная аутентификация SASL не так надежна, как традиционные меры безопасности СУБД, храните только неконфиденциальные данные в экземпляре MySQL, использующем плагин daemon_memcached, и изолируйте любые серверы, использующие эту конфигурацию, от потенциальных злоумышленников. Не разрешайте доступ к этим серверам из интернета для memcached; разрешайте доступ только из внутренней сети с брандмауэром, желательно из подсети, члены которой вы можете ограничивать.

Защита memcached с помощью SASL

Поддержка SASL обеспечивает возможность защиты вашей базы данных MySQL от неавторизованного доступа через клиенты memcached. В этом разделе объясняется, как включить SASL с помощью плагина daemon_memcached. Шаги почти идентичны шагам, выполненным для включения SASL для традиционного сервера memcached.

SASL расшифровывается как «Простой уровень аутентификации и безопасности», стандарт добавления поддержки аутентификации к протоколам, основанным на подключениях. Поддержка SASL была добавлена в memcached в версии 1.4.3.

Аутентификация SASL поддерживается только с бинарным протоколом.

Клиенты memcached могут получить доступ только к таблицам InnoDB, зарегистрированным в таблице innodb_memcache.containers. Хотя DBA может накладывать ограничения на доступ к таким таблицам, доступ через приложения memcached контролировать нельзя. По этой причине поддержка SASL предоставляется для контроля доступа к таблицам InnoDB, связанным с плагином daemon_memcached.

В следующем разделе показано, как создать, включить и протестировать плагин daemon_memcached с поддержкой SASL.

Создание и включение SASL с плагином InnoDB memcached

По умолчанию плагин daemon_memcached с поддержкой SASL не входит в пакеты выпусков MySQL, так как плагин daemon_memcached с поддержкой SASL требует компиляции memcached с библиотеками SASL. Чтобы включить поддержку SASL, загрузите исходный код MySQL и перестройте плагин daemon_memcached после загрузки библиотек SASL:

  1. Установите библиотеки разработки и утилиты SASL. Например, в Ubuntu используйте apt-get для получения библиотек:

    sudo apt-get -f install libsasl2-2 sasl2-bin libsasl2-2 libsasl2-dev libsasl2-modules
    
  2. Скомпилируйте общие библиотеки плагина daemon_memcached с поддержкой SASL, добавив ENABLE_MEMCACHED_SASL=1 в ваши параметры cmake. memcached также предоставляет простую поддержку паролей в открытом тексте, что облегчает тестирование. Чтобы включить простую поддержку паролей в открытом тексте, укажите параметр cmake ENABLE_MEMCACHED_SASL_PWDB=1.

    Подведем итог, добавив следующие три параметра cmake:

    cmake ... -DWITH_INNODB_MEMCACHED=1 -DENABLE_MEMCACHED_SASL=1 -DENABLE_MEMCACHED_SASL_PWDB=1
    
  3. Установите плагин daemon_memcached, как описано в Разделе 14.21.3, «Настройка плагина InnoDB memcached».

  4. Настройте файл с именем пользователя и паролем. (В этом примере используется простая поддержка паролей в открытом тексте memcached.)

    1. В файле создайте пользователя под именем testname и определите пароль как testpasswd:

      echo "testname:testpasswd:::::::" >/home/jy/memcached-sasl-db
      
      
    2. Настройте переменную среды MEMCACHED_SASL_PWDB, чтобы сообщить memcached о файле с именем пользователя и паролем:

      export MEMCACHED_SASL_PWDB=/home/jy/memcached-sasl-db
      
    3. Укажите memcached, что используется пароль в открытом тексте:

      echo "mech_list: plain" > /home/jy/work2/msasl/clients/memcached.conf
      export SASL_CONF_PATH=/home/jy/work2/msasl/clients
      
  5. Включите SASL, перезапустив сервер MySQL с параметром memcached -S, закодированным в параметре конфигурации daemon_memcached_option:

    mysqld ... --daemon_memcached_option="-S"
    
  6. Для проверки настройки используйте клиента с поддержкой SASL, например, клиент libmemcached с поддержкой SASL.

    memcp --servers=localhost:11211 --binary  --username=testname
      --password=password myfile.txt
    
    memcat --servers=localhost:11211 --binary --username=testname
      --password=password myfile.txt
    

    Если вы укажете неправильное имя пользователя или пароль, операция будет отклонена с сообщением memcache error AUTHENTICATION FAILURE. В этом случае проверьте пароль в открытом тексте в файле memcached-sasl-db, чтобы убедиться, что предоставленные вами учетные данные правильные.

Существуют и другие способы тестирования аутентификации SASL с memcached, но описанный выше метод является наиболее простым.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/innodb-memcached-security.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API