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:
-
Установите библиотеки разработки и утилиты SASL. Например, в Ubuntu используйте apt-get для получения библиотек:
sudo apt-get -f install libsasl2-2 sasl2-bin libsasl2-2 libsasl2-dev libsasl2-modules
-
Скомпилируйте общие библиотеки плагина
daemon_memcachedс поддержкой SASL, добавивENABLE_MEMCACHED_SASL=1в ваши параметры cmake. memcached также предоставляет простую поддержку паролей в открытом тексте, что облегчает тестирование. Чтобы включить простую поддержку паролей в открытом тексте, укажите параметр cmakeENABLE_MEMCACHED_SASL_PWDB=1.Подведем итог, добавив следующие три параметра cmake:
cmake ... -DWITH_INNODB_MEMCACHED=1 -DENABLE_MEMCACHED_SASL=1 -DENABLE_MEMCACHED_SASL_PWDB=1
Установите плагин
daemon_memcached, как описано в Разделе 14.21.3, «Настройка плагина InnoDB memcached».-
Настройте файл с именем пользователя и паролем. (В этом примере используется простая поддержка паролей в открытом тексте memcached.)
-
В файле создайте пользователя под именем
testnameи определите пароль какtestpasswd:echo "testname:testpasswd:::::::" >/home/jy/memcached-sasl-db
-
Настройте переменную среды
MEMCACHED_SASL_PWDB, чтобы сообщитьmemcachedо файле с именем пользователя и паролем:export MEMCACHED_SASL_PWDB=/home/jy/memcached-sasl-db
-
Укажите
memcached, что используется пароль в открытом тексте:echo "mech_list: plain" > /home/jy/work2/msasl/clients/memcached.conf export SASL_CONF_PATH=/home/jy/work2/msasl/clients
-
-
Включите SASL, перезапустив сервер MySQL с параметром memcached
-S, закодированным в параметре конфигурацииdaemon_memcached_option:mysqld ... --daemon_memcached_option="-S"
-
Для проверки настройки используйте клиента с поддержкой SASL, например, клиент libmemcached с поддержкой SASL.
memcp --servers=localhost:11211 --binary --username=testname --password=
passwordmyfile.txt memcat --servers=localhost:11211 --binary --username=testname --password=passwordmyfile.txtЕсли вы укажете неправильное имя пользователя или пароль, операция будет отклонена с сообщением
memcache error AUTHENTICATION FAILURE. В этом случае проверьте пароль в открытом тексте в файлеmemcached-sasl-db, чтобы убедиться, что предоставленные вами учетные данные правильные.
Существуют и другие способы тестирования аутентификации SASL с memcached, но описанный выше метод является наиболее простым.
© 2025 Oracle
Licensed under the GPLv2 License.