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

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

1. Ограничение доступа к Redis из внешней сети

✅ 1-1. Разрешение доступа только с определенного IP (bind настройка)

Redis по умолчанию может принимать подключения от всех сетевых интерфейсов. Это означает, что при отсутствии каких-либо настроек любой может получить доступ к серверу Redis.

Чтобы этого избежать, необходимо использовать настройку bind, чтобы ограничить доступ только с определенного IP-адреса.

📌 Пример: Разрешить доступ только с локального (127.0.0.1)
bind 127.0.0.1 -::1

С такой настройкой только клиенты, запущенные на том же сервере смогут получить доступ к Redis.

📌 Что делать, если нужно разрешить доступ с внешнего IP?

Если необходим доступ с внешнего IP, можно настроить разрешения для определенных IP.

bind 192.168.1.100 10.0.0.1

Таким образом, только с IP 192.168.1.100 и 10.0.0.1 можно будет подключиться к Redis.

✅ 1-2. Настройка режима защиты (protected-mode)

Чтобы повысить безопасность, Redis предлагает функцию защитного режима (protected mode). В активированном состоянии защитного режима доступ извне без пароля невозможен.

📌 Активация защитного режима
protected-mode yes

С такой настройкой Redis будет доступен только с 127.0.0.1 (локального адреса).

2. Ограничение портов и соединений Redis

✅ 2-1. Настройка порта для приема Redis (port)

По умолчанию Redis работает на порту 6379.

port 6379

Если нужно использовать Redis только через Unix-сокет, а не TCP-сокет, порт следует установить в 0.

port 0

✅ 2-2. Настройка связи только на определенных портах (bind-source-addr)

Исходящие соединения Redis (реплики подключаются к мастеру, межкластерная связь и т.д.) по умолчанию не привязываются к определенному сетевому интерфейсу.

bind-source-addr 10.0.0.1

С такой настройкой Redis будет общаться с внешними серверами Redis только через интерфейс 10.0.0.1.

3. Настройки для повышения стабильности сетевых соединений

✅ 3-1. Размер очереди ожидания TCP-соединений (tcp-backlog)

tcp-backlog 511

🔹 Для серверов с высокой нагрузкой рекомендуется устанавливать это значение на 1 024 или 4 096.

✅ 3-2. Время простоя клиента (timeout)

timeout 300

Если клиент не выполняет никаких действий в течение 5 минут, соединение автоматически завершится.

4. Дополнительные настройки для усиления безопасности

✅ 4-1. Блокировка опасных команд (enable-debug-command)

Некоторые команды Redis (DEBUG, MODULE LOAD и т.д.) могут представлять собой риск с точки зрения безопасности.

enable-debug-command no
enable-module-command no

С такой настройкой возможность выполнения потенциально опасных команд будет ограничена.

5. Подведение итогов: контрольный список настроек сетевой безопасности Redis

  • ✔ Настройка доступа к Redis только с определенного IP (bind)
  • ✔ Активация защитного режима (protected-mode) для блокировки внешнего доступа
  • ✔ Настройка порта TCP (port) для ограничения ненужного доступа
  • ✔ Установка таймера простоя клиента (timeout) для блокировки неактивных соединений
  • ✔ Настройка Keepalive (tcp-keepalive) для поддержания сетевого соединения
  • ✔ Блокировка опасных команд (enable-debug-command no) для усиления безопасности

Redis — это база данных, для которой важна сетевая безопасность. Применив указанные настройки, вы сможете предотвратить хакерские атаки и утечки данных! Если вы управляете сервером Redis, не откладывайте проверку настроек безопасности. 🔐🚀

Настройки сетевой безопасности Redis