Redis представляет собой высокопроизводительный сервер хранения данных, ориентированный на модель «ключ–значение». Он применяется для ускорения работы приложений, реализации кэша, обработки очередей и обмена данными между компонентами распределённых систем. Благодаря минимальным задержкам и высокой пропускной способности Redis эффективно используется в сценариях, где критичны скорость доступа к данным и стабильная работа под нагрузкой.
В данном руководстве разберём, как установить Redis и настроить некоторые функции безопасности на виртуальном выделенном сервере под управлением Rocky Linux 9.
Как установить Redis на Rocky Linux 9
Для установки Redis в Rocky Linux 9 можно использовать пакетный менеджер DNF:
$ sudo dnf install redis
По окончании инсталляции необходимо внести важное изменение в конфигурационный файл Redis, созданный во время установки:
$ sudo vi /etc/redis/redis.conf
В файле найдите директиву supervised, которая позволяет объявлять систему инициализации для управления Redis как сервисом. По умолчанию для supervised установлено значение no. Но поскольку Rocky Linux использует систему инициализации systemd, то, чтобы воспользоваться ею для управления Redis, раскомментируйте строку supervised, удалив # в её начале, и измените значение на systemd:

После чего закройте файл с сохранением изменений. Затем запустите сервис Redis с одновременной установкой его в автозагрузку:
$ sudo systemctl enable --now redis
Проверить корректность запуска службы можно через вывод на экран её текущего состояния:
$ systemctl status redis
В выводе не должны присутствовать сообщения о каких-либо ошибках.

После того как вы убедитесь, что Redis запущен, протестируйте его функциональность с помощью команды, которая показывает, доступен ли сервер Redis и отвечает ли на запросы:
$ redis-cli ping
Если Redis запущен и работает нормально, то ответом на команду будет сообщение PONG.

Ограничение сетевого доступа к Redis
Один из наиболее эффективных способов повышения безопасности Redis – ограничение сетевого доступа к сервису на уровне операционной системы. Рекомендуется настраивать Redis таким образом, чтобы он принимал подключения только с localhost или с какого-то IP-адреса.
Иногда в конфигурационном файле может быть разрешён доступ с любых адресов. Такая настройка снижает уровень безопасности и не рекомендуется для реальной эксплуатации.
Для устранения этой проблемы необходимо проверить и при необходимости откорректировать конфигурацию. Для чего откройте конфигурационный файл Redis:
$ sudo vi /etc/redis/redis.conf
В файле найдите строку с параметром bind, и убедитесь, что она не закомментирована, то есть в начале строки не установлен символ #.

В данном случае настройка bind 127.0.0.1 -::1 разрешает подключения только с локального хоста.
Настройка брандмауэра
При использовании брандмауэра Firewalld и отсутствии необходимости подключаться к Redis с других узлов, нет необходимости настраивать дополнительные правила для Redis. По умолчанию входящие соединения блокируются, если они не разрешены явно. И поскольку стандартная установка Redis прослушивает только интерфейс 127.0.0.1, то угрозы доступа к сервису извне в такой конфигурации не возникает.
Однако если вы планируете получить доступ к Redis с другого хоста, потребуется внести изменения в конфигурацию Firewalld. При этом вы должны разрешить доступ к Redis-серверу только с ваших хостов, используя их приватные IP-адреса. Это необходимо для ограничения количества хостов, которым доступен сервис.
Во-первых, добавьте выделенную зону Redis в политику Firewalld:
$ sudo firewall-cmd --permanent --new-zone=redis
Затем укажите, какой порт вы хотите открыть. Изначально Redis использует TCP-порт 6379:
$ sudo firewall-cmd --permanent --zone=redis --add-port=6379/tcp
Далее укажите приватные IP-адреса, которым должен быть разрешён доступ к Redis через брандмауэр:
$ sudo firewall-cmd --permanent --zone=redis --add-source=X.X.X.X
Для применения новых настроек перезапустите брандмауэр Firewalld:
$ sudo firewall-cmd --reload
При такой конфигурации брандмауэра подключения с IP-адреса клиента будут обрабатываться по отдельным правилам, созданным специально для Redis. Остальные подключения работают в стандартной зоне брандмауэра. При этом нет необходимости добавлять в зону Redis дополнительные сервисы, такие как SSH. Общие правила брандмауэра будут применяться ко всем соединениям автоматически.
Настройка пароля для Redis
Для дополнительной защиты Redis также используется встроенный механизм аутентификации. При его включении клиенты обязаны указать пароль перед получением доступа к базе данных. Данный пароль необходимо прописать непосредственно в конфигурации Redis. Для этого откройте конфигурационный файл:
$ sudo vi /etc/redis/redis.conf
Перейдите в раздел SECURITY и найдите закомментированную строку:
# requirepass foobared
Удалите символ # в начале строки и замените значение foobared на свой надёжный пароль:
requirepass your_very_strong_password
После внесения изменений сохраните файл и перезапустите Redis для того, чтобы настройки вступили в силу.
$ sudo systemctl restart redis
Теперь для аутентификации с использованием пароля, указанного в файле конфигурации Redis, необходимо использовать следующую команду:
$ redis-cli -a your_very_strong_password
