Гид по технологиям

Redis на CentOS 7 — установка, настройка и базовая безопасность

• 7 min read • DevOps • Обновлено 26 Nov 2025
Redis на CentOS 7 — установка и безопасность
Redis на CentOS 7 — установка и безопасность

Схематичное изображение логотипа Redis или сервера

Redis — быстрый in-memory key-value стор, который часто используют как кеш, брокер сообщений и простую БД. В этой статье шаг за шагом показано, как установить Redis из репозитория Remi на CentOS 7, настроить основные параметры, включить простую защиту и протестировать работу. Также приведены рекомендации по безопасности, чеклисты для ролей и варианты альтернативной установки.

О чём этот материал

  • Установка и включение репозитория Remi
  • Установка пакета redis
  • Базовая конфигурация и запуск
  • Простейшая защита: сеть, пароль, переименование опасных команд
  • Тестирование подключений и команд
  • Дополнительно: альтернативы, чеклисты, тест-кейсы, рекомендации по безопасности и миграции

Важно: инструкции в материале рассчитаны на тестовую систему с ~1 ГБ ОЗУ и 2 CPU. Для продакшена потребуются ресурсы и архитектура с учётом нагрузки и отказоустойчивости.

Краткое определение

Redis — это in-memory структура данных с опциями персистентности. Она хранит ключи и значения и поддерживает строки, хеши, списки, множества, отсортированные множества, bitmap, HyperLogLog, stream и геопространственные индексы.


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

Перед установкой Redis мы добавим репозитории, которые содержат свежие пакеты для CentOS 7. Сначала установите EPEL и утилиты yum:

sudo yum install epel-release yum-utils

Затем добавьте репозиторий Remi:

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

Включите репозиторий remi:

sudo yum-config-manager --enable remi

Проверьте список включённых репозиториев:

yum repolist enabled

Примечание: если ваша политика безопасности запрещает внешние репозитории, рассмотрите вариант сборки Redis из исходников или использование проверенного внутрирегионального репозитория.

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

Проверьте доступные пакеты Redis:

yum search redis
yum info redis

Затем установите Redis:

sudo yum -y install redis

Запустите и добавьте службу в автозагрузку:

systemctl start redis
systemctl enable redis

Проверьте статус сервиса и используемые порты:

systemctl status redis
netstat -plntu

Скриншот установки Redis на CentOS

Если сервис запущен, по умолчанию Redis слушает 127.0.0.1:6379.

Шаг 3 — Базовая конфигурация Redis

Файл конфигурации по умолчанию: /etc/redis.conf. Отредактируйте его тем же редактором, который вы предпочитаете:

vim /etc/redis.conf

Рекомендованные изменения для тестовой и корпоративной конфигурации:

  • bind — измените на внутренний IP сервера, если Redis должен быть доступен по сети приватно; оставьте 127.0.0.1 для локального доступа.
bind 127.0.0.1
  • daemonize — в CentOS с systemd можно оставить в default, но если хотите запускать как демон, установите:
daemonize yes
  • supervised — для systemd поставьте:
supervised systemd

Сохраните файл и перезапустите службу:

systemctl restart redis

Подключитесь через клиент для быстрой проверки:

redis-cli

Внутри интерактивного клиента выполните:

ping
ping "Hello Redis"

Ожидаемый ответ: PONG и эхо вашего сообщения.

Редактирование конфигурации Redis

Важно: не забудьте версионировать изменения конфигурации и хранить резервные копии /etc/redis.conf.

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

Ниже перечислены базовые меры безопасности, которые актуальны для большинства развёртываний.

Сетевая сегрaция

Лучше всего запускать Redis в приватной сети и ограничивать доступ с помощью сетевых правил (firewall, security groups). В конфигурации Redis задайте bind на приватный IP или на 127.0.0.1, если нужен только локальный доступ.

bind INTERNAL-IP-ADDRESS

Важно: не выставляйте Redis в публичный интернет без дополнительного TLS/авторизации.

Парольная аутентификация

Включите requirepass, чтобы запросить пароль при подключении через redis-cli и из приложений. Найдите параметр requirepass и раскомментируйте его:

requirepass hakase-labs321@#$

Замените строку на безопасный пароль или лучше — используйте внешнюю систему секретов. После включения аутентификации клиенты должны выполнять AUTH при соединении.

Переименование или отключение опасных команд

Redis позволяет переименовать или отключить критичные команды, чтобы снизить риск случайного или злонамеренного удаления данных.

Пример в redis.conf:

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

После сохранения перезапустите сервис:

systemctl restart redis

Эти меры не заменяют сегментацию сети и TLS, но добавляют уровень защиты.

Дополнительные меры (рекомендации)

  • Шифрование трафика (TLS) — в стандартном пакете Redis поддержки TLS может не быть; используйте stunnel, haproxy с TLS или сборку Redis с TLS.
  • Лимитирование прав пользователя ОС — запускайте Redis от непользовательской учётной записи и применяйте fs/group ограничения.
  • Мониторинг и алерты — экспортируйте метрики и следите за использованием памяти и увеличением задержек.

Конфигурация безопасности Redis

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

Тестирование состоит из проверки сетевого доступа, авторизации и переименованных команд.

Проверка подключения и аутентификации

Подключитесь к серверу по IP и порту:

redis-cli -h 10.5.5.15 -p 6379

Выполните ping:

ping
ping "Hello Redis"

Если включена аутентификация, до AUTH любые команды будут отклонены. Аутентификация:

AUTH hakase-labs321@#$

Затем снова ping. После успешной аутентификации сервер вернёт PONG.

Тестирование Redis

Тестирование переименованных команд

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

CONFIG
FLUSHALL

Сервер должен вернуть ошибку. Для новых имён команд используйте заданные алиасы:

REDISCONFIG get bind
REDISCONFIG get requirepass
DELITALL

Использование переименованных команд

Набор базовых тест-кейсов

  • Подключение без пароля должно завершаться ошибкой, если requirepass включён.
  • AUTH с корректным паролем должен позволять выполнять команды GET/SET.
  • После DELITALL все ключи должны быть удалены (если команда переименована и доступна).
  • Переименованные команды оригинальными именами должны возвращать ошибку.
  • Проверить использование памяти при записи больших объёмов данных.

Дополнительно: когда этот подход не годится и альтернативы

  • Если нужна высокая доступность и автоматическое переключение (failover), используйте Redis Sentinel или Redis Cluster. Обычный одиночный сервер подойдёт только для тестов и лёгких нагрузок.
  • Для шифрования на транспортном уровне рассмотрите сборку Redis с поддержкой TLS или используйте прокси (stunnel / haproxy).
  • Если политика не позволяет Remi, собирайте Redis из исходников или используйте дистрибутивный пакет из вашего локального репозитория.

Альтернативные подходы:

  • Установка из исходников: даёт контроль над опциями сборки, но требует больше обслуживания.
  • Использование Docker-контейнера: удобно для изоляции и развёртывания, требует управления данными и сетевыми правилами.
  • Облачные managed-сервисы Redis (ElastiCache, Azure Cache) — освобождают от управления, но имеют стоимость и особенности интеграции.

Модель мышления и эвристики при развёртывании

  • “Принцип минимальной видимости”: выставляйте Redis только в тех сетевых сегментах, где он действительно нужен.
  • “Один компонент — одна ответственность”: Redis как кеш не должен одновременно хранить критичные данные без резервного копирования.
  • “Defense in depth”: сеть + аутентификация + переименование команд + мониторинг.

Чеклисты по ролям

Администратор системы:

  • Установил Remi/EPEL или подготовил пакет.
  • Настроил systemd и автозапуск.
  • Настроил резервное копирование конфигурации.

Инженер безопасности:

  • Проверил bind и сегрегацию сети.
  • Включил requirepass или интеграцию с системой секретов.
  • Переименовал/отключил опасные команды.

Разработчик приложения:

  • Настроил клиента для использования AUTH.
  • Обработал ошибки отказа соединения.
  • Реализовал инструкции по тайм-аутам и ретраям.

Мини-методология развёртывания (SOP)

  1. Подготовьте окружение: обновите систему, установите EPEL.
  2. Добавьте проверенный репозиторий (Remi) или подготовьте пакет.
  3. Установите Redis и проверьте сервис.
  4. Настройте bind, supervised, requirepass, переименование команд.
  5. Перезапустите и протестируйте аутентификацию и команды.
  6. Настройте мониторинг и резервное копирование.

Рекомендации по миграции и совместимости

  • При обновлении версии Redis проверяйте изменения в поведении команд и в формате RDB/AOF.
  • Тестируйте процесс сохранения и восстановления (RDB dump и AOF replay) на копии данных.
  • Если используете кластер или Sentinel, убедитесь, что версии узлов совместимы.

Краткая галерея крайних случаев

  • Redis доступен из публичного интернета без пароля — критическая уязвимость.
  • Неправильно настроенный requirepass (включён, но пароль в конфиге доступен всем) — риск утечки.
  • Переименование команд без документирования — ломает операции DevOps и приложения.

Glossary (одно предложение о терминах)

  • RDB — дамп состояния Redis в файл для резервного копирования.
  • AOF — журнал команд для восстановления состояния при перезапуске.
  • Sentinel — механизм для мониторинга и автоматического failover Redis.
  • Cluster — распределённая схема для масштабирования ключей по шардам.

Примечания по безопасности и приватности

  • Не храните пароли в открытом виде в репозитории кода.
  • Для production используйте хранилище секретов или интеграцию с vault.
  • Рассмотрите шифрование данных при передаче и на уровне хранилища, если приложения этого требуют.

Итоги

  • Установка Redis на CentOS 7 из Remi проста и выполняется в несколько команд.
  • Обязательно выполните базовую защиту: ограничение сети, пароль и переименование опасных команд.
  • Для production рассмотрите TLS, Sentinel/Cluster, мониторинг и резервное копирование.

Краткое резюме и рекомендации:

  • Тестируйте все изменения конфигурации на ненагруженной копии сервера.
  • Документируйте нестандартные алиасы команд и храните их в репозитории конфигураций.
  • Планируйте отказоустойчивую архитектуру для критичных данных.

Источники и дополнительная документация

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро