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

Установка и защита Redis на Ubuntu 20.04

• 6 min read • DevOps • Обновлено 23 Nov 2025
Redis на Ubuntu 20.04: установка и защита
Redis на Ubuntu 20.04: установка и защита

Иллюстрация логотипа Redis и серверной установки

TL;DR

Redis — быстрый in-memory key/value хранилище, которое можно использовать как базу данных, кэш и брокер сообщений. В этой статье показано, как установить Redis на Ubuntu 20.04, сделать базовую конфигурацию и применить ключевые меры безопасности для использования в продакшене.

Введение

Redis — это open-source in-memory key/value хранилище с опциональной долговечностью. Оно поддерживает строковые значения, хэши, списки, множества, битмапы, отсортированные множества, HyperLogLog, стримы и геопространственные индексы с радиусными запросами. Redis часто используют как высокопроизводительный кэш, брокер сообщений и быструю NoSQL базу.

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

Требования

Для примеров в руководстве мы использовали Ubuntu 20.04 с 1 ГБ RAM и 2 vCPU. Это достаточно для тестирования, но для боевой нагрузки потребуется больше ресурсов и отдельная архитектура (репликация, кластер, резервные узлы).

Что мы сделаем:

  • Установим Redis Server
  • Выполним базовую конфигурацию Redis
  • Применим базовые меры безопасности
  • Протестируем работу и аутентификацию

Шаг 1 — Установка Redis Server

Сначала обновите репозитории и пакеты системы:

sudo apt update  
sudo apt upgrade

Установите пакет redis-server из официального репозитория Ubuntu:

sudo apt install redis-server

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

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

Файл конфигурации Redis находится в каталоге /etc/redis. Откройте его для редактирования:

cd /etc/redis/  
vim redis.conf
  1. Настройка bind

Не рекомендуется слушать публичный IP без дополнительных мер защиты. Для одиночного сервера используйте локальный интерфейс:

bind 127.0.0.1

Для внутренней сети замените 127.0.0.1 на IP внутреннего интерфейса.

  1. Настройка supervised

Если вы используете systemd (типично для Ubuntu), укажите:

supervised systemd

Сохраните изменения и перезапустите сервис, а также включите автозапуск:

systemctl restart redis-server  
systemctl enable redis-server

Статус установки Redis

Проверьте статус сервиса:

systemctl status redis-server

Проверка статуса Redis

Проверьте прослушиваемые порты (по умолчанию Redis использует 6379):

ss -plnt4

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

redis-cli ping  
redis-cli ping "Hello Redis"

Если всё правильно, сервер ответит PONG или вернёт текст, который вы передали в ping.


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

В этом разделе описаны три базовые области защиты: сеть, аутентификация и запрет опасных команд. После этого мы добавим дополнительные рекомендации по укреплению безопасности.

Сетевая безопасность

Отредактируйте /etc/redis/redis.conf и настройте bind на внутренний IP или localhost:

cd /etc/redis/  
vim redis.conf

# пример
bind INTERNAL-IP-ADDRESS

Важно: если Redis должен быть доступен из нескольких хостов в приватной сети, указывайте только внутренние IP, а не 0.0.0.0.

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

По умолчанию пароль не включён. Включите параметр requirepass в redis.conf и задайте сильный пароль:

requirepass HakaseLabsRedisPasswd

Замените HakaseLabsRedisPasswd на сильный пароль, уникальный для инстанса. После этого все клиентские команды потребуют аутентификации.

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

Redis позволяет переименовывать или отключать команды. Это уменьшает риск вредоносных действий (например, FLUSHALL, CONFIG). Пример в redis.conf:

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

Снова перезапустите сервис:

systemctl restart redis-server

Конфигурация Redis

Дополнительно рассмотрите:

  • Шифрование трафика (TLS) при доступе через сеть
  • Использование ACL (role-based access в Redis >=6)
  • Настройку брандмауэра (ufw, iptables) и ограничение доступа по IP
  • Мониторинг и логирование операций

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

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

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

redis-cli -h 127.0.0.1 -p 6379

Если включён requirepass, выполнение команд без AUTH вернёт ошибку. Аутентифицируйтесь:

AUTH HakaseLabsRedisPasswd

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

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

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

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

FLUSHALL  
CONFIG

Выполните новые имена команд:

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

Keys *

DELITALL

MYSERVERCONF get bind  
MYSERVERCONF get requirepass

Это подтверждает, что переименование сработало.


Чек-лист перед выводом в продакшн

  • Бэкапы: настроить регулярные снимки (RDB/AOF) и проверять резервные копии
  • Репликация: настроить мастер/слейв или кластер для отказоустойчивости
  • Мониторинг: настроить экспорт метрик и алертинг (Prometheus, Grafana)
  • Ограничение доступа: настроить firewall, VLAN или VPN
  • TLS: включить шифрование при доступе по сети
  • ACL: использовать встроенные механизмы прав доступа
  • Тестирование восстановления: проверять восстановление из бэкапов

Критерии приёмки

  • Сервис redis-server запущен и активен (systemctl status)
  • Порт 6379 слушает только на адресах, указанных в bind
  • Включена аутентификация (requirepass) и проверена с помощью AUTH
  • Опасные команды переименованы или отключены
  • Настроены регулярные бэкапы и проверено восстановление
  • Мониторинг собирает метрики и отправляет алерты

Шпаргалка команд

Основные команды и примеры:

# Проверка доступности
redis-cli ping

# Подключение к конкретному хосту
redis-cli -h 192.168.1.10 -p 6379

# Аутентификация
AUTH <ваш_пароль>

# CRUD
SET key "value"
GET key
DEL key

# Просмотр ключей (осторожно в продакшене)
KEYS *

# Если команды переименованы, используйте новое имя
DELITALL
MYSERVERCONF get bind

Ролевые чек-листы

Администратор (DevOps):

  • Установить и обновить redis-server
  • Настроить systemd и автозагрузку
  • Настроить firewall (ufw) и SELinux/AppArmor при необходимости
  • Настроить бэкапы и мониторинг

Разработчик:

  • Использовать секреты и переменные окружения для паролей
  • Не хранить пароли в репозиториях
  • Обрабатывать ошибки подключений и таймауты

Специалист по безопасности:

  • Проверить наличие только необходимых открытых портов
  • Настроить TLS и ACL
  • Провести аудит переименований команд и прав доступа

Модель зрелости для Redis (уровни)

  1. Тестовый: Redis работает локально, без бэкапов и мониторинга.
  2. Базовый: Включена аутентификация, настроен firewall, есть базовые бэкапы.
  3. Производственный: Репликация/кластер, TLS, мониторинг и оповещения.
  4. Критичный: Многоуровневая репликация, гео-репликация, выдерживание сбоев, автоматический failover.

Таблица рисков и смягчения

РискВероятностьВлияниеСмягчение
Открытый порт в интернетВысокаяВысокоеБлокировать через firewall, использовать VPN
Потеря данных из-за FLUSHALLСредняяВысокоеПереименовать/отключить команды, бэкапы
Несанкционированный доступСредняяВысокоеrequirepass, ACL, TLS
Неправильная конфигурация при обновленииНизкаяСредняяТест в staging, проверка конфигурации

Дополнительные рекомендации по безопасности

  • Для шифрования трафика используйте stunnel или встроенный TLS (Redis >= 6 с поддержкой TLS или компиляция с TLS)
  • Для многопользовательской модели используйте ACL (команды useradd, acl setuser)
  • Мониторьте задержки команд, пропускную способность и использование памяти
  • Регулярно обновляйте пакет redis-server и систему безопасности ОС

Когда Redis не подходит

  • Если нужна транзакционная ACID база данных с сложными запросами и джоинами — используйте реляционную СУБД.
  • Если объём данных значительно превышает доступную память и требуются преимущественно холодные данные, лучше использовать диск-ориентированные СУБД или кэширующие слои.

Короткое объявление (100–200 слов)

Установлен и настроен Redis на Ubuntu 20.04: выполнена базовая конфигурация, включена аутентификация, переименованы опасные команды и добавлены рекомендации по безопасности. Сервер протестирован с помощью redis-cli, подтверждена работоспособность PING и переименованных команд. Рекомендуется настроить TLS, ACL и мониторинг для боевой эксплуатации, а также организовать регулярные бэкапы и проверку восстановления.


Социальный превью (рекомендации)

OG title: Установка и защита Redis на Ubuntu 20.04 OG description: Пошаговое руководство по установке Redis, базовой конфигурации и ключевым мерам безопасности для продакшена.


Источники


Итог

Вы установили Redis, настроили базовые параметры и применили ключевые меры безопасности: ограничили привязку по IP, включили аутентификацию и переименовали опасные команды. Следующий шаг — организация TLS, репликации, мониторинга и тестов восстановления.

Поделиться: 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 быстро