Spec-Zone .ru
спецификации, руководства, описания, API

14.2.9.4. Соображения безопасности для InnoDB memcached Плагин

Предостережение

Консультируйтесь с этим разделом прежде, чем развернуться InnoDB плагин memcached на любых производственных серверах, или даже тестовые серверы, если экземпляр MySQL содержит уязвимую информацию.

Поскольку memcached не использует механизм аутентификации по умолчанию, и дополнительная аутентификация SASL не как strong как традиционные меры безопасности DBMS, удостоверьтесь, что сохранили только нечувствительные данные в экземпляре MySQL, используя InnoDB плагин memcached, и отгораживает любые серверы, используя эту конфигурацию от потенциальных злоумышленников. Не предоставляйте memcached доступ к таким серверам из Интернета, только изнутри firewalled интранет, идеально от подсети, членство которой можно ограничить.

14.2.9.4.1. Защита пароля Интерфейс memcached throughSASL

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

Вводная информация:

SASL обозначает "Простой Уровень Аутентификации и Безопасности", стандарт для того, чтобы добавить аутентификацию поддерживает к основанным на соединении протоколам. memcached добавленная поддержка SASL, запускающаяся в ее 1.4.3 выпусках.

Для InnoDB + memcached комбинация, таблица, которая хранит memcached данные, должна быть зарегистрирована в container системная таблица. И клиенты memcached могут только получить доступ к такой зарегистрированной таблице. Даже при том, что DBA может добавить ограничения доступа на таблице, которая регистрируется в memcached плагине, они не имеют никакого контроля над тем, кто может получить доступ к этому через memcached приложения. Это - то, почему мы обеспечиваем средство (через SASL), чтобы управлять, кто может получить доступ InnoDB таблицы связались с memcached плагином.

Шоу следующего раздела, как создать, включают, и тестируют SASL-поддерживающее InnoDB плагин memcached.

Шаги, чтобы Создать и Включить SASL в InnoDB Плагин Memcached:

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

  1. Во-первых, получите разработку SASL и служебные библиотеки. Например, на Ubuntu, можно передать эти библиотеки:

    sudo apt-get -f install libsasl2-2 sasl2-bin libsasl2-2 libsasl2-dev libsasl2-modules
  2. Затем создайте InnoDB плагин memcached (совместно использованные библиотеки) с возможностью SASL, добавляя ENABLE_MEMCACHED_SASL=1 к cmake опциям. Кроме того, memcached оказывает простую поддержку незашифрованного пароля, которую легче использовать для того, чтобы протестировать. Чтобы включить этому, установите опцию ENABLE_MEMCACHED_SASL_PWDB=1.

    В целом, Вы добавите следующие три опции к cmake:

    cmake ... -DWITH_INNODB_MEMCACHED=1  -DENABLE_MEMCACHED_SASL=1 -DENABLE_MEMCACHED_SASL_PWDB=1
  3. Третий шаг должен установить InnoDB плагин memcached как прежде, как объяснено в Разделе 14.2.9.3, "Начиная с InnoDB Плагин Memcached".

  4. Как ранее упомянуто, memcached оказывает простую поддержку незашифрованного пароля через SASL, который будет использоваться для этого демонстрационного примера.

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

      echo "testname:testpasswd:::::::" >/home/jy/memcached-sasl-db
    2. Сообщите memcached об этом, устанавливая переменную окружения MEMCACHED_SASL_PWDB:

      export MEMCACHED_SASL_PWDB=/home/jy/memcached-sasl-db
    3. Также скажите memcached, что это - незашифрованный пароль:

      echo "mech_list: plain" > /home/jy/work2/msasl/clients/memcached.confexport SASL_CONF_PATH=/home/jy/work2/msasl/clients/memcached.conf
  5. Затем перезагрузите сервер, и добавьте a daemon_memcached_option опция -S включать SASL:

    mysqld ... --daemon_memcached_option="-S"
  6. Теперь установка полна. Чтобы протестировать это, Вам, возможно, понадобился бы SASL-поддерживающий клиент, такой как этот SASL-поддерживающий libmemcached.

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

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

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