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

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- Настройка bind
Не рекомендуется слушать публичный IP без дополнительных мер защиты. Для одиночного сервера используйте локальный интерфейс:
bind 127.0.0.1Для внутренней сети замените 127.0.0.1 на IP внутреннего интерфейса.
- Настройка supervised
Если вы используете systemd (типично для Ubuntu), укажите:
supervised systemdСохраните изменения и перезапустите сервис, а также включите автозапуск:
systemctl restart redis-server
systemctl enable redis-server
Проверьте статус сервиса:
systemctl status redis-server
Проверьте прослушиваемые порты (по умолчанию 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
Дополнительно рассмотрите:
- Шифрование трафика (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 и другие вернут ожидаемые ответы.

Тест переименованных команд
Если вы переименовали команды, старые имена вернут ошибку. Примеры:
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 (уровни)
- Тестовый: Redis работает локально, без бэкапов и мониторинга.
- Базовый: Включена аутентификация, настроен firewall, есть базовые бэкапы.
- Производственный: Репликация/кластер, TLS, мониторинг и оповещения.
- Критичный: Многоуровневая репликация, гео-репликация, выдерживание сбоев, автоматический 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, репликации, мониторинга и тестов восстановления.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента