База данных Redis — это структура данных с открытым исходным кодом, которая использует RAM, то есть основную память, где размещен сайт, для хранения своей информации. Redis обычно используется как гибкая база данных, использующая шаблон key-value для хранения информации. Redis предоставляет нам возможность создавать подходящую производительность при выполнении различных операций, поддерживая при этом различные типы хранения данных, такие как: строка (String), хеш (Hash), список (List) и т. д. В этом случае Redis подходит для приложений реального времени, таких как системы онлайн-чата, онлайн-сессии и значения, которые постоянно обновляются.
В этом уроке мы узнаем, как установить Redis на сервер с операционной системой Ubuntu.
Установите Redis и начните этапы его защиты
Обычно Redis доступен в репозиториях по умолчанию операционной системы Ubuntu, поэтому мы можем установить его с помощью apt package manager. После установки Redis необходимо выполнить шаги, связанные с аутентификацией с использованием пароля, подключением Redis к localhost, а также изменением опасных команд, которые могут повредить нашей операционной системе.
Шаг 1: Установите Redis
Перед установкой Redis обновите пакеты репозитория операционной системы Ubuntu с помощью команды Update.
sudo apt update
После завершения процесса обновления установите Redis.
sudo apt install redis-server -y

Шаг второй: Настройка Redis
После завершения процесса установки отредактируйте файл конфигурации Redis. Файл Config позволяет вам настроить Redis в соответствии с вашими потребностями, что улучшит его производительность, безопасность и другие аспекты.
- Откройте файл конфигурации или config с помощью редактора (вы можете использовать nano).
sudo nano /etc/redis/redis.conf
- Затем в коде файла найдите раздел, содержащий supervised. По умолчанию эта строка установлена в значение no или отключена. В любом случае, чтобы настроить Redis как исполняемую службу, установите для этого раздела значение systemd.

- Сохраните изменения и закройте файл. В редакторе nano сохранение и закрытие файла выполняется с помощью Ctrl+X.
- Наконец, перезапустите службу Redis, чтобы применить внесенные изменения.
sudo systemctl restart redis
Шаг третий: Подтвердите установку Redis
Чтобы убедиться, что служба запущена и работает правильно, необходимо проверить подключение к серверу и убедиться, что можно устанавливать пары «ключ-значение».
- Проверьте статус службы Redis
Используйте следующую команду, чтобы проверить статус службы Redis:
sudo systemctl status redis
Вывод должен включать active (running):

Если статус сервиса inactive, запустите процесс активации следующей командой:
sudo systemctl start redis
- Проверьте подключение к Redis
Проверьте статус подключения к серверу Redis с помощью инструмента redis-cli. Этот инструмент представляет собой среду команд Redis или Command-Line. Подключитесь к нему с помощью следующей команды:
redis-cli
Эта команда переведет вас в среду команд redis-cli. Чтобы проверить подключение к серверу, введите следующую команду:
ping
Сервис должен ответить возвратом PONG:

- Проверьте настройку key-value в Redis
Поскольку Redis — это база данных NoSQL, которая использует основную память для хранения информации, важно проверить выделенные значения в key-value и убедиться в их доступности.
Сначала подключитесь к redis-cli:
redis-cli
Затем, используя команду set, определите новый ключ:
set key1 "You have successfully set up a key-value pair!"
В этом примере наш новый ключ называется key1 и содержит текст, написанный напротив него.
После ввода ключа Enter командная среда должна ответить вам сообщением OK:

Теперь проверьте доступ к значению, присвоенному вашему ключу, с помощью команды get.
get key1
Вывод должен содержать сообщение, которое вы присвоили ключу:

Выйдите из командной среды Redis с помощью команды quit.
quit
Шаг четвертый: Обеспечьте безопасность Redis
Безопасность Redis имеет решающее значение, поскольку по умолчанию Redis не предназначен для безопасных сетевых сред и не имеет необходимых встроенных механизмов, таких как аутентификация, шифрование и контроль доступа. Конфигурация Redis в Интернете или в небезопасной сети может привести к серьезным уязвимостям в нашей сети.
- Настройте систему аутентификации Redis.
База данных Redis включает в себя функцию аутентификации, которую можно использовать в качестве дополнительного уровня защиты. Эта функция не включена по умолчанию. Также необходимо отредактировать файл конфигурации (Config) для настройки системы аутентификации.
Откройте файл конфигурации Redis с помощью текстового редактора. Вы можете использовать nano:
sudo nano /etc/redis/redis.conf
В файле конфигурации найдите часть кода, содержащую requirepass. Этот раздел находится под разделом SECURITY и по умолчанию закомментирован. Удалите символ # перед requirepass, чтобы раскомментировать его.
Напротив requirepass, через пробел, выберите надежный пароль.

Сохраните файл и выйдите из него.
Перезапустите сервис Redis.
sudo systemctl restart redis
После того, как вы настроите аутентификацию в Redis, создание каких-либо запросов (Query) или ввод каких-либо команд будет невозможен до тех пор, пока вы не пройдете аутентификацию. Например, если вы снова войдете в redis-cli и введете команду ping, вы увидите сообщение (error) NOAUTH Authentication required.
Единственный способ пройти аутентификацию — ввести тот же пароль, который вы указали в файле конфигурации Redis.
Используйте следующую команду для аутентификации. Вместо [your_password] необходимо ввести установленный вами пароль.
auth [your_password]
После ввода этой команды вы увидите сообщение OK:

- Подключите базу данных Redis к localhost серверу
Процесс установки Redis, который вы выполнили до сих пор, включает в себя тот факт, что Redis доступен только через localhost сервер. Ограничение этого доступа является одной из важнейших частей обеспечения сетевой безопасности Redis.
Чтобы предотвратить внешний доступ к localhost, выполните следующие действия.
Снова откройте файл конфигурации Redis:
sudo nano /etc/redis/redis.conf
В коде файла перейдите в раздел NETWORK. Затем раскомментируйте код bind 127.0.0.1 ::1 (удалите #, чтобы раскомментировать код).

Сохраните файл и выйдите из него.
Перезапустите службу Redis, чтобы изменения вступили в силу.
sudo systemctl restart redis
- Измените опасные команды
Еще один способ защиты вашей информации — отключить или переименовать определенные команды, чтобы они больше не могли быть использованы. Это метод повышения безопасности, который предотвращает использование команд, которые могут повредить систему.
Откройте файл конфигурации Redis:
sudo nano /etc/redis/redis.conf
Найдите раздел SECURITY. Прокрутите вниз, чтобы найти Command renaming#. Этот раздел содержит примеры того, как мы можем изменить или отключить команду.
Например, чтобы переименовать команду CONFIG, введите следующую строку. В разделе [new_command_name] необходимо ввести желаемую команду.
rename-command CONFIG [new_command_name]
В этом примере мы изменили команду config на sys_admin_config_836. Это сделано для того, чтобы обычные пользователи не могли легко найти настроенную нами команду:

Чтобы полностью отключить команду или, как говорят, «убить» ее, чтобы она больше не была доступна, используйте тот же метод, но с пустой строкой (String).
Например, чтобы отключить команду CONFIG, добавьте следующую строку в файл конфигурации:
rename-command CONFIG ""
Затем, как обычно, чтобы изменения вступили в силу, перезапустите службу Redis.
sudo systemctl restart redis