Ubuntu: установка и защита Redis

В этом руководстве мы рассмотрим установку и настройку хранилища Redis на виртуальном сервере Ubuntu 18.04.

Что такое Redis?

Redis – это система хранения данных в памяти, которая часто используется в качестве базы данных, кэша и брокера сообщений. Она поддерживает различные структуры данных, такие как строки, хэши, списки и наборы.

Преимущества Redis:

● Высокая скорость работы

● Redis используется такими крупными компаниями, как GitHub, Weibo, Pinterest, Snapchat, Craigslist, Digg, StackOverflow, Flickr

● Redis поддерживается практически всеми языками программирования, в том числе JavaScript, Java, Go, C, C++, C#, Python, Objective-C, PHP

● Исходный код Redis открыт для всех.

 

Установка и конфигурация Redis

Прежде чем начать установку Redis, убедитесь, что у вас есть права sudo.

Чтобы успешно установить Redis, необходимо обновить локальную базу пакетов. Выполните следующую команду в терминале:

sudo apt update -y && sudo apt upgrade -y

Для загрузки и установки Redis выполните следующую команду:

sudo apt install redis-server -y

С помощью текстового редактора, например vi, откройте конфигурационный файл, который генерируется автоматически:

sudo vi /etc/redis/redis.conf

Используя функцию поиска, найдите параметр "supervised" в конфигурационном файле. Этот параметр указывает на систему инициализации и по умолчанию установлен в значение "no". Замените это значение на "systemd":

supervised systemd

Перезагрузите СУБД:

sudo systemctl restart redis.service

Проверка Redis:

Чтобы проверить, что Redis сервер работает, выполните следующую команду:

sudo systemctl status redis

Результат:

● redis-server.service - Advanced key-value store
  Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor pre
  Active: active (running) since Thu 2023-10-15 16:31:06 MSK; 33min ago
    Docs: http://redis.io/documentation,
          man:redis-server(1)
 Process: 25557 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCC
 Process: 25561 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exi
Main PID: 25581 (redis-server)
   Tasks: 4 (limit: 4715)
  CGroup: /system.slice/redis-server.service
          └─25581 /usr/bin/redis-server 127.0.0.1:6379
Now 15 16:31:06 Ubuntu2004x64 systemd[1]: Starting Advanced key-value store...
Now 15 16:31:06 Ubuntu2004x64 systemd[1]: redis-server.service: Can't open PID f
Now 15 16:31:06 Ubuntu2004x64 systemd[1]: Started Advanced key-value store.

Для проверки правильной работы Redis выполните подключение к серверу с помощью клиента командной строки:

redis-cli

Проверьте соединение, используя команду ping:

127.0.0.1:6379> ping
PONG

Если результатом команды было "PONG", это подтверждает установку соединения с сервером Redis. Далее убедитесь, что установка ключей Redis доступна.

127.0.0.1:6379> set test "mhost"
OK

Теперь получите заданное значение, также после перезапуска сервера значение должно сохраниться:

127.0.0.1:6379> get test
mhost

Чтобы выйти из клиента Redis, вы можете использовать сочетание клавиш Ctrl+C или команду:

127.0.0.1:6379> exit

Установка Пароля

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

sudo vi /etc/redis/redis.conf

Найдите строку:

# requirepass foobared

Раскомментируйте строку, убрав символ # в начале строки, и затем измените значение параметра "requirepass" на безопасный пароль в файле конфигурации:

requirepass <пароль>

Перезагрузите СУБД:

sudo systemctl restart redis.service

Для подключения к Redis с использованием пароля необходимо использовать ключ "a":

redis-cli -a <пароль>

Удаленное подключение:

Внимание: Redis очень часто подвергается взлому и не рекомендуется использовать внешний доступ на постоянной основе

Иногда удобно выполнять удаленное подключение к Redis. Чтобы разрешить удаленное подключение, откройте файл конфигурации:

sudo vi /etc/redis/redis.conf

Найдите строку:

# bind 127.0.0.1 ::1

Раскомментируйте соответствующую строку и замените адрес на "0.0.0.0", если вы хотите разрешить подключение с любого IP-адреса. Если вы хотите разрешить подключение только с определенного IP-адреса, укажите этот адрес вместо "0.0.0.0":

bind 0.0.0.0

Перезагрузите СУБД:

sudo systemctl restart redis.service

После внесения изменений в файл конфигурации и разрешения удаленного подключения, не забудьте открыть порт, на котором запущен сервер Redis, с помощью iptables:

Чтобы удаленно подключиться к Redis, используйте следующую команду:

redis-cli -h <ip адрес> -p <порт> -a <пароль>

Пример:

redis-cli -h 8.8.8.8 -p 6379 -a <пароль>

 

  • 0 Пользователи нашли это полезным

Помог ли вам данный ответ?