Поиск по сайту:

Как установить и защитить Redis на CentOS 7


Это руководство существует для этих версий ОС

  • CentOS 8
  • CentOS 7

На этой странице

  1. Шаг 1. Установите и включите репозиторий Remi
  2. Шаг 2. Установите Redis на CentOS 7
  3. Шаг 3. Настройка Redis
  4. Шаг 4. Защита установки Redis
    1. 1. Сетевая безопасность
    2. 2. Аутентификация по паролю
    3. 3. Отключение опасной команды Redis

    1. – Тестирование хоста и аутентификации
    2. - Тестирование отключено/переименована команда

    Redis — это хранилище структур данных в памяти с открытым исходным кодом, используемое в качестве базы данных, кэша и брокера сообщений. Это распределенная база данных «ключ-значение» в памяти с дополнительной надежностью. Поддерживает основные структуры данных, такие как строки, хэши, списки, наборы, растровые изображения, отсортированные наборы, HyperlogLogs, потоки и геопространственные индексы с запросами радиуса.

    В этом руководстве мы покажем вам, как установить и настроить Redis Server в CentOS 7. Мы установим Redis Server из репозитория Remi, а затем защитим установку.

    Предпосылка

    В этом руководстве мы установим Redis на сервере CentOS 7 с 1 ГБ ОЗУ и 2 ЦП. Это только для тестирования, и вам понадобится больше, чем это для вашего производства.

    Что мы будем делать:

    • Установить и включить репозиторий Remi
    • Установить сервер Redis
    • Настройка сервера Redis
    • Защита сервера Redis
    • Тестирование

    Шаг 1 — Установите и включите репозиторий Remi

    Во-первых, мы добавим репозиторий Remi в систему CentOS 7. Репозиторий Remi предоставляет последнюю версию пакета Redis для нашей установки.

    Прежде чем добавлять репозиторий Remi, давайте установим репозиторий EPEL и пакеты утилит yum.

    sudo yum install epel-release yum-utils

    Теперь добавьте репозиторий Remi для CentOS 7, используя приведенную ниже команду yum.

    sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

    После этого включите репозиторий remi с помощью инструмента yum-config-manager, как показано ниже.

    sudo yum-config-manager --enable remi

    Репозиторий Remi был добавлен и включен в системе CentOS 7, проверьте с помощью команды yum ниже.

    yum repolist enabled

    И вы получите результат, как показано ниже.

    Шаг 2 — Установите Redis на CentOS 7

    После установки репозитория Remi мы установим последний пакет Redis. Вы можете проверить доступную версию Redis с помощью команды yum ниже.

    yum search redis
    yum info redis

    Теперь вы получите Redis 5.0.5, доступный в репозитории Remi.

    Установите Redis с помощью приведенной ниже команды.

    sudo yum -y install redis

    После завершения установки запустите службу Redis и добавьте ее в загрузку системы.

    systemctl start redis
    systemctl enable redis

    Служба Redis запущена и работает с конфигурацией по умолчанию, проверьте состояние службы и порт, используемый сервером.

    systemctl status redis
    netstat -plntu

    И вы получите результат, как показано ниже.

    Сервер Redis запущен и работает в системе CentOS 7 с IP-адресом локального хоста 127.0.0.1 и TCP-портом по умолчанию 6379.

    Шаг 3 — Настройте Redis

    На этом этапе мы собирались настроить нашу установку Redis Server на сервере CentOS 7.

    Отредактируйте файл конфигурации Redis /etc/redis.conf с помощью редактора vim.

    vim /etc/redis.conf

    Теперь измените адрес привязки на свой внутренний IP-адрес. Если вы работаете как кластер, вы можете изменить его с помощью частного IP-адреса. Рекомендуется запускать сервер Redis на частном внутреннем IP-адресе.

    bind 127.0.0.1

    Теперь измените значение daemonize на yes, потому что мы будем запускать службу Redis в качестве демона.

    daemonize yes

    Поскольку мы использовали сервер CentOS 7 и systemd, нам нужно изменить конфигурацию контролируемой линии на systemd.

    supervised systemd

    Сохранить и закрыть.

    Теперь перезапустите службу Redis.

    systemctl restart redis

    Базовая настройка сервера Redis завершена. Теперь подключитесь к серверу Redis с помощью команды redis-cli, как показано ниже.

    redis-cli

    Запустите команду ping ниже.

    ping
    ping "Hello Redis"

    Если ваша установка выполнена правильно, вы получите ответ PONG и сообщение, которое вы пишете после команды.

    Шаг 4 — Защита установки Redis

    На этом этапе мы собирались защитить нашу установку Redis. Есть 3 вещи, которые вы должны знать о защите сервера Redis.

    1. Безопасность сети

    Сетевая безопасность для сервера Redis связана с конфигурацией привязки в конфигурации redis.conf. Рекомендуется использовать внутреннюю частную сеть для установки Redis и не использовать общедоступную.

    Отредактируйте файл конфигурации Redis /etc/redis.conf с помощью редактора vim.

    vim /etc/redis.conf

    В разделе привязки измените IP-адрес на собственный IP-адрес внутренней сети.

    bind INTERNAL-IP-ADDRESS

    Сохранить и закрыть.

    И теперь служба Redis будет работать под ВНУТРЕННИМ IP-АДРЕСОМ.

    2. Аутентификация по паролю

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

    Чтобы включить аутентификацию по паролю для сервера Rediser, вам нужно раскомментировать раздел requirepass в файле redis.conf и ввести после него надежный пароль.

    requirepass #$

    Измените [email #$на надежный пароль. И теперь аутентификация по паролю для Redis включена.

    3. Отключение опасной команды Redis

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

    Чтобы изменить или отключить команду Redis, вы можете использовать параметр rename-command. Отредактируйте файл конфигурации redis redis.conf и добавьте некоторые конфигурации ниже.

    # rename-command COMMAND "CUSTOM"
    rename-command CONFIG "REDISCONFIG"
    rename-command FLUSHALL "DELITALL"

    Сохранить и закрыть.

    Когда все будет готово, перезапустите службу Redis с помощью приведенной ниже команды systemctl.

    systemctl restart redis

    И базовая безопасность Redis для защиты установки Redis была применена к нашему хосту.

    Другое соображение: вам также может понадобиться поддержка шифрования данных для Redis, а также безопасное кодирование, необходимое на стороне приложения.

    Шаг 5 - Тестирование

    На этом этапе мы собирались протестировать наше развертывание Redis Server с помощью командной строки redis-cli.

    - Тестирование хоста и аутентификации

    Подключитесь к серверу Redis с помощью команды redis-cli, указав имя хоста/IP-адрес сервера redis и порт.

    redis-cli -h 10.5.5.15 -p 6379

    Измените 10.5.5.15 на свой IP-адрес.

    Как только вы подключитесь к серверу, попробуйте выполнить команду ping.

    ping
    ping "Hello Redis"

    Теперь вы получите результат, как показано ниже.

    Вы получаете сообщение об ошибке, потому что вам необходимо пройти аутентификацию перед вызовом любой команды в оболочке Redis CLI.

    Выполните следующую команду для аутентификации на сервере Redis.

    AUTH #$

    После аутентификации вы можете попробовать команду ping, и вы получите ответ от сервера Redis.

    ping
    ping "Hello Redis"

    Ниже приведен результат после аутентификации на сервере Redis.

    - Тестирование отключено/переименована команда

    Запустите все команды, которые мы переименовали в оболочке, и вы получите ошибку команды.

    CONFIG
    FLUSHALL

    Ниже приведен результат ошибки этих команд.

    Затем запустите команды CUSTOM для каждого.

    Создайте новый ключ с помощью команды SET, как показано ниже.

    SET Name "Hakase Labs"
    SET Blog "Howtoforge.com"

    Keys *

    Теперь удалите все ключи и данные с помощью переименованной команды FLUSHALL DELITALL.

    DELITALL

    Для команды CONFIG вы можете попытаться получить или установить новое значение конфигурации Redis Server. Команда CONFIG переименована в REDISCONFIG.

    REDISCONFIG get bind
    REDISCONFIG get requirepass

    И ниже результат этих новых переименованных пользовательских команд.

    Базовая установка Redis Server на сервере CentOS 7 завершена, и базовая безопасность для Redis Server применена.

    Ссылка

    • https://redis.io/documentation