Redis полезен для многих вещей, одна из которых – кэширование. Вы также можете использовать Redis в качестве основного хранилища данных или даже в качестве замены базы данных. Но как выполнить безопасную установку Redis? Установка Redis может быть непростой, и если вы не будете осторожны, то можете столкнуться с множеством ошибок. К счастью, этот учебник поможет вам в этом.
В этом уроке вы узнаете, как безопасно установить Redis на вашей системе Linux, а также получите некоторые советы, чтобы избежать распространенных ошибок.
Читайте дальше и избавьтесь от головной боли при устранении ошибок установки Redis!
Предварительные условия
Этот учебник будет практическим демонстрационным материалом. Если вы хотите следовать за ним, убедитесь, что у вас есть следующее:
- Машина с Ubuntu 20.04 LTS – В этом учебнике используется Ubuntu 20.04 LTS, но инструкции аналогичны для большинства дистрибутивов Linux.
- Привилегии root или непривилегированный пользователь с
sudo
привилегиями
Установка Redis с помощью менеджера пакетов APT
Есть несколько способов установить Redis на Ubuntu, но для этого руководства вы выберете менеджер пакетов APT, чтобы установить Redis.
Redis написан на C, поэтому вам придется вручную компилировать Redis из его исходного кода. Необходимо установить несколько зависимостей, и процесс сборки далеко не безошибочен.
Компиляция Redis из исходного кода не рекомендуется, но плюс в том, что вы можете настроить вашу установку по вашему усмотрению. Вы загружаете исходный код, а затем вручную настраиваете его.
Откройте терминал и выполните нижеприведенную команду apt update
, чтобы обновить список последних пакетов.

Теперь выполните нижеприведенную команду apt install
, чтобы установить Redis на вашем компьютере.
Нижеприведенная команда использует менеджер пакетов apt
, чтобы загрузить и установить пакет redis-server
из репозиториев Ubuntu на ваш компьютер. Флаг -y
указывает apt
автоматически принимать запросы во время процесса установки.

Настройка файла Redis.conf для запуска Redis в качестве службы
Вы только что установили Redis, но он еще не готов к использованию. Прежде чем начать использовать Redis, вам нужно настроить файл redis.conf.
Файл конфигурации redis.conf включен в установленный вами пакет Redis и хранится по умолчанию в каталоге /etc/redis/. Этот файл содержит все опции конфигурации для Redis.
Расширение файла .conf логично, так как оно следует общепринятому образцу. Многие другие программы используют такой же стиль. Например, веб-сервер Apache использует расширение файла .conf для своего основного файла конфигурации.
1. Выполните следующую команду systemctl
, чтобы stop
сервис redis-server
. Остановка службы Redis – рекомендуемая практика при первом запуске Redis.
2. Затем откройте файл /etc/redis/redis.conf в выбранном вами текстовом редакторе.
Найдите директиву supervised, затем установите ее в systemd, как показано ниже, и сохраните изменения. Это указывает операционной системе запускать Redis как службу.

3. Теперь выполните команду systemctl restart
ниже, чтобы перезапустить службу Redis (redis.service
), так как служба Redis еще не знает о внесенных изменениях.
4. Наконец, выполните команду systemctl status
ниже, чтобы увидеть, работает ли Redis.
Как видно ниже, вывод показывает, что служба Redis работает.

Проверка работоспособности сервера Redis
Вы настроили и проверили, что служба Redis активно работает, но это не означает, что сервер Redis работает. Как проверить, работает ли сервер Redis правильно? Подключитесь к серверу Redis и отправьте команды, чтобы увидеть, отвечает ли сервер.
1. Выполните команду redis-cli
ниже, чтобы подключиться к серверу Redis. redis-cli
– это интерфейс командной строки для Redis, который позволяет отправлять команды на сервер и проверять его состояние.
Ниже вы можете видеть, что вы находитесь в приглашении к серверу Redis (127.0.0.1:6379>). Команда redis-cli
пытается подключиться к серверу Redis по умолчанию на 127.0.0.1:6379
.

2. Затем выполните команду ping
ниже, чтобы проверить, доступен ли сервер Redis.
Как видно, сервер вернул PONG, что указывает на то, что сервер Redis доступен и теперь успешно взаимодействует со службой.

Возможно, вы все еще сомневаетесь; выполните нижеприведенную команду set
. Команда set
– это команда Redis, которая устанавливает пару ключ-значение в базе данных.
Как видите, команда set возвращает “OK”, что указывает на то, что служба Redis работает правильно.

3. Выполните нижеприведенную команду exit
, чтобы выйти из redis-cli
. Таким образом, соединение с сервером Redis будет закрыто.
Привязка сервера Redis к локальному хосту
Вы только что проверили, что сервер Redis работает правильно, но возможно, он доступен и с других устройств в вашей сети. Это нежелательное поведение, и, как правило, вы захотите защитить свой сервер Redis от посторонних.
Привязка сервера Redis к локальному хосту устанавливает поведение, при котором к серверу Redis можно обращаться только с того компьютера, на котором вы установили Redis.
1. Откройте файл /etc/redis/redis.conf в вашем текстовом редакторе.
2. Найдите строку, которая говорит bind 127.0.0.1 ::1
, и раскомментируйте эту строку, удалив символ решетки (#
) в начале строки.

3. Теперь выполните команду ниже, чтобы перезапустить службу redis-server
.
4. Наконец, выполните следующую команду, чтобы проверить, привязан ли ваш сервер Redis к локальному хосту. Команда netstat -lnp
выводит список всех активных сетевых подключений, а часть grep redis
фильтрует вывод, чтобы оставить только строки, содержащие “redis”.
-lnp
означает Протокол Локального Имени (Local Name Protocol) — сетевой протокол, используемый системами, подобными UNIX, для преобразования имен хостов в IP-адреса.
Вы можете видеть ниже, что сервер Redis теперь слушает только интерфейс localhost (127.0.0.1:6379
). Отражая изменение в файле конфигурации, вы можете видеть, что только интерфейс localhost указан в ваших активных интернет-соединениях (tcp
).
Теперь ни одно другое устройство в вашей сети не может подключиться к вашему серверу Redis.

Обеспечение безопасности подключения к серверу Redis с помощью пароля
На данный момент Redis не настроен на требование аутентификации пользователей с паролем. Любой, кто знает IP-адрес или имя хоста вашего сервера Redis, может подключиться к нему и изменить его данные.
Как обеспечить защиту вашего сервера Redis? Установите пароль для требования аутентификации при подключении к серверу Redis.
1. Повторно откройте файл конфигурации redis.conf в вашем текстовом/кодовом редакторе.
2. Затем установите надежный пароль с помощью следующего:
- Ищите
requirepass foobared
в разделеSECURITY
- Удалите знак номера (
#
) в начале строки - Замените
foobared
на надежный пароль по вашему выбору и сохраните изменения

3. Запустите следующие команды для перезапуска и подключения к вашему серверу Redis.
4. Теперь выполните команду ping
, чтобы увидеть, получите ли вы ответ от сервера.
Ниже вы можете увидеть сообщение об ошибке, которое говорит NOAUTH Требуется аутентификация. Это сообщение указывает на то, что вам нужен аутентификационный пароль для доступа к вашему удаленному серверу Redis.

5. Запустите нижеуказанную auth
команду, за которой следует ваш пароль, чтобы аутентифицировать ваше соединение с вашим сервером Redis.
Вы получите ответ OK, когда аутентификация прошла успешно, как показано ниже.

6. Наконец, повторно выполните команду ping
, чтобы проверить, аутентифицировано ли ваше соединение с сервером Redis.
Теперь вы получите ответ PONG, как показано ниже, после аутентификации вашего соединения. На этом этапе вы успешно защитили ваш сервер Redis паролем.

Отключение опасных команд для защиты вашего сервера Redis
Установка пароля для аутентификации соединения с вашим сервером Redis не означает 100% защиты. По умолчанию Redis включает несколько опасных команд, позволяющих пользователям изменять данные в вашей базе данных.
Когда эти команды запускаются неавторизованными пользователями, они позволяют злоумышленникам читать, изменять, уничтожать и даже стирать данные вашей базы данных Redis.
Ниже приведен не исчерпывающий список, так как ваш сервер Redis может иметь дополнительные опасные команды, но в большинстве случаев это опасные команды:
Чтобы дополнительно защитить ваш сервер Redis, переименуйте эти опасные команды в файле redis.conf:
1. Откройте файл redis.conf в вашем текстовом редакторе и найдите раздел Переименование команд.
Переименуйте команды в пустую строку, чтобы отключить их, следуя приведенному ниже синтаксису. Замените `команда
` на фактическую команду для отключения.
Например, отключите команду CONFIG
, переименовав CONFIG
в пустую строку, как показано ниже, затем сохраните изменения. Двойные кавычки (“”) указывают на пустую строку, которая означает отключение команды.

CONFIG
command 2. Выйдите из текстового редактора и выполните нижеприведенную команду, чтобы перезапустить сервер Redis.
3. Теперь выполните следующие команды, чтобы подключиться к вашему серверу Redis.
4. Наконец, выполните команду config get
, чтобы проверить, что команда CONFIG
отключена.
Вы получите ответ ERR unknown command config
, как показано ниже, что указывает на отключение команды CONFIG
.

CONFIG
command Если команда config get requirepass
проходит успешно, она запрашивает пароль вашего сервера Redis для аутентификации подключения к нему.
Теперь вы успешно переименовали опасную команду Redis, чтобы защитить ваш сервер Redis. Теперь продолжайте отключать другие опасные команды в файле redis.conf.
Блокировка запроса на подключение к серверу Redis с помощью брандмауэра
Еще один способ защитить ваш сервер Redis – настроить брандмауэр. Настройка брандмауэра требует разрешения только необходимого порта для каждой из служб, работающих на вашем сервере.
Например, если у вас запущен Redis на сервере на порту 6379
, то этот порт – единственное, что вам нужно открыть. Если вам нужно разрешить доступ с определенного IP-адреса или диапазона адресов, вы можете добавить эти адреса в правила брандмауэра.
Чтобы настроить брандмауэр, сначала установите инструмент конфигурации брандмауэра. В этом примере используется UFW, часто используемый инструмент конфигурации брандмауэра в Linux. Но вы также можете использовать другой инструмент, например, iptables, чтобы настроить брандмауэр.
1. Запустите следующую команду, чтобы установить UFW на вашем компьютере.
2. Затем выполните следующую команду, чтобы включить UFW.
Введите ‘Y’, когда получите предложенную ниже подсказку, чтобы продолжить выполнение команды.

3. Запустите команду ufw
ниже, чтобы добавить правило, которое разрешает (allow
) трафик на порту 6379
для вашего сервера Redis. Замените IP-адрес 11.22.33.44
IP-адресами ваших предполагаемых пользователей.

6379
4. Наконец, выполните команду ниже, чтобы убедиться, что вы успешно добавили правило брандмауэра. Команда проверяет status
вашего брандмауэра.
Вы можете видеть в выводе ниже, что брандмауэр активен и имеет правило для разрешения трафика на порту 6379
для Redis с IP-адреса 11.22.33.44
.

Теперь любые пользователи с IP-адресом 11.22.33.44
могут подключаться к Redis через порт 6379
и им потребуется аутентифицироваться с паролем. Вы можете добавить дополнительные порты для других служб аналогичным образом.
Заключение
На протяжении этого учебного пособия вы узнали, как установить и защитить свой сервер Redis, переименовав опасные команды в пустые строки и настроив брандмауэр.
С этим новым знанием вы можете наслаждаться всеми преимуществами Redis, не беспокоясь о том, что ваш сервер подвергается ненужным рискам.
Желаете узнать больше? Почему бы не начать с защиты сервера Redis в Kubernetes?