Настройки безопасности Redis

RedisRedisBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этой лабораторной работе вы узнаете, как повысить безопасность вашего Redis-сервера. Мы рассмотрим установку пароля для предотвращения несанкционированного доступа и отключение определенных команд для ограничения потенциального злоупотребления. К концу этой лабораторной работы у вас будет более безопасный экземпляр Redis (Redis instance).


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") subgraph Lab Skills redis/access_cli -.-> lab-552103{{"Настройки безопасности Redis"}} end

Установка пароля с помощью CONFIG SET requirepass

По умолчанию Redis не требует пароля, что делает его уязвимым. Установка пароля - это первый и самый важный шаг в обеспечении безопасности вашего Redis-сервера. Мы будем использовать команду CONFIG SET requirepass для этого.

Команда CONFIG SET позволяет динамически изменять параметры конфигурации Redis. Параметр requirepass указывает пароль, который клиенты должны предоставить для подключения к серверу.

Давайте начнем:

  1. Подключитесь к Redis-серверу с помощью redis-cli:

    Откройте терминал в LabEx VM. Каталог по умолчанию - ~/project. Выполните следующую команду:

    redis-cli

    Это подключит вас к Redis-серверу, работающему на хосте по умолчанию (127.0.0.1) и порту (6379). Вы должны увидеть приглашение 127.0.0.1:6379>.

    127.0.0.1:6379>
  2. Установите пароль с помощью команды CONFIG SET requirepass:

    Мы установим пароль mysecretpassword. Для производственных сред (production environments) выбирайте надежный, уникальный пароль.

    CONFIG SET requirepass mysecretpassword

    Вы должны увидеть следующий вывод:

    OK

    Это подтверждает, что пароль был установлен.

  3. Попытайтесь выполнить команду без аутентификации:

    Попробуйте выполнить простую команду, такую как PING:

    PING

    Вы должны получить сообщение об ошибке:

    (error) NOAUTH Authentication required.

    Это указывает на то, что теперь требуется аутентификация.

  4. Выйдите из redis-cli:

    Чтобы команда была зарегистрирована, выйдите из redis-cli, набрав exit или нажав Ctrl+D.

    exit

    Это важно для правильной работы шага проверки.

Аутентификация с помощью команды AUTH

Теперь, когда мы установили пароль, давайте узнаем, как аутентифицироваться на Redis-сервере с помощью команды AUTH. Эта команда требует пароль, который вы установили на предыдущем шаге.

  1. Подключитесь к Redis-серверу с помощью redis-cli:

    Откройте терминал в LabEx VM. Каталог по умолчанию - ~/project. Выполните следующую команду:

    redis-cli

    Вы должны увидеть приглашение 127.0.0.1:6379>.

  2. Аутентифицируйтесь с помощью команды AUTH:

    Используйте команду AUTH, за которой следует пароль, который вы установили ранее:

    AUTH mysecretpassword

    В случае успешной аутентификации вы увидите:

    OK
  3. Выполните команду после аутентификации:

    Теперь, когда вы аутентифицированы, попробуйте команду PING еще раз:

    PING

    Вы должны получить ожидаемый ответ:

    PONG
  4. Выйдите из redis-cli:

    Выйдите из redis-cli, набрав exit или нажав Ctrl+D.

    exit

Отключение команд с помощью CONFIG SET

Redis предлагает множество команд, но некоторые из них могут быть рискованными в определённых средах. Отключение этих команд может улучшить безопасность. Мы используем CONFIG SET disable-command для отключения команды FLUSHALL в качестве примера. Команда FLUSHALL удаляет все данные во всех базах данных, поэтому её отключение может предотвратить случайную потерю данных.

  1. Подключение к серверу Redis с помощью redis-cli:

    Откройте терминал в виртуальной машине LabEx. По умолчанию директория — ~/project. Выполните следующую команду:

    redis-cli

    Вы должны увидеть подсказку 127.0.0.1:6379>.

  2. Аутентификация с помощью команды AUTH:

    Выполните аутентификацию с помощью команды AUTH, за которой следует ваш пароль:

    AUTH mysecretpassword

    При успешной аутентификации вы должны увидеть вывод OK.

  3. Отключение команды FLUSHALL с помощью CONFIG SET disable-command:

    CONFIG SET disable-command FLUSHALL

    Вы должны увидеть:

    OK

    Это подтверждает, что команда была отключена.

  4. Попытка выполнения команды FLUSHALL:

    FLUSHALL

    Теперь вы должны получить сообщение об ошибке:

    (error) ERR unknown command 'FLUSHALL', just try HELP

    Это указывает на то, что команда FLUSHALL больше недоступна.

  5. Выход из redis-cli:

    Выйдите из redis-cli, набрав exit или нажав Ctrl+D.

    exit

Итог

В этой лабораторной работе вы узнали, как повысить безопасность Redis. Вы установили пароль с помощью CONFIG SET requirepass, чтобы предотвратить несанкционированный доступ. Вы также узнали, как аутентифицироваться с помощью команды AUTH и отключать определенные команды, такие как FLUSHALL, с помощью CONFIG SET disable-command, чтобы ограничить потенциально вредные операции. Эти шаги необходимы для защиты вашего Redis-сервера.