6.16 Встановлення та налаштування Redis

Redis (Remote Dictionary Server) є потужною системою управління базами даних типу “ключ-значення”, яка набула широкого розповсюдження серед розробників завдяки своїй високій продуктивності та універсальності. Ця технологія виступає не просто сховищем даних, а й слугує ефективним інструментом кешування, черг повідомлень та реалізації складних структур даних у реальному часі.
Унікальність Redis полягає в її здатності зберігати різноманітні типи даних — від простих рядків до складних структур, таких як списки, множини, хеш-таблиці та інші. Завдяки підтримці операцій in-memory та можливості збереження даних на диск, Redis забезпечує неперевершену швидкість роботи з даними при збереженні надійності.
Важливо: перед встановленням Redis переконайтеся, що Ваша система відповідає мінімальним системним вимогам та має актуальні системні оновлення.
Важливо мати рівень доступу root. Налаштування вийде реалізувати на наших послугах віртуальних та виділених серверів.
Підготовка системи
Оновлення системи
Для Debian/Ubuntu:
- sudo apt update
- sudo apt upgrade -y
Для CentOS/AlmaLinux/RockyLinux:
- sudo dnf update -y
Встановлення Redis
Debian/Ubuntu:
- # Завантажуємо та додаємо ключ для репозиторію Redis
- curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
-
- # Додаємо репозиторій Redis до списку джерел APT
- echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
-
- # Встановлюємо Redis
- sudo apt install redis -y
CentOS/AlmaLinux/RockyLinux:
- sudo dnf install -y epel-release
- sudo dnf install -y redis
Базова конфігурація Redis
- Редагування конфігураційного файлу:
- sudo nano /etc/redis/redis.conf
- Ключові налаштування безпеки:
# Обмеження прослуховування тільки для локального доступу
bind 127.0.0.1 ::1
# Встановлення надійного паролю
requirepass StrongRedisPassword2024!
# Обмеження використання пам'яті
maxmemory 2gb
maxmemory-policy allkeys-lru
# Відключення команд, які можуть використовуватися для потенційного зловживання
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command SHUTDOWN ""
rename-command DEBUG ""
- Збереження та перезапуск служби:
- sudo systemctl restart redis-server
- Увімкнення автозапуска служби:
- sudo systemctl enable redis
- Перевірка чи автозапуск активний:
- systemctl is-enabled redis
Якщо команда поверне enabled, це означає що автозапуск увімкнений.
Може бути повернутий результат alias, це означає, що сервіс redis працює через символьне посилання (alias) на інший сервіс. Зазвичай, це трапляється, якщо у Вашій системі redis налаштований як “псевдонім” до іншого сервісу, наприклад, redis-server.
Налаштування файрволів
Інформуємо: для зручності введеня великої кількості послідовних команд, Вам буде надано приклад з використанням Heredoc. Розглянемо що це таке.
Heredoc (скорочено від “here document”) є зручним механізмом у bash-скриптингу, який дозволяє передавати багаторядковий текст або послідовність команд безпосередньо в команду або інтерпретатор. Синтаксис heredoc використовує оператори << з довільним роздільником (найчастіше EOF), що створює унікальний спосіб групування та виконання команд.
Механізм heredoc працює наступним чином:
- Інтерпретатор bash створює тимчасовий текстовий потік.
- Всі команди між маркерами
<<EOFтаEOFвиконуються послідовно. - Дозволяє групувати складні послідовності команд без створення тимчасових файлів.
- Забезпечує контрольовану передачу даних між командами.
Основна перевага — можливість виконання блоку команд з підвищеними правами (через sudo) без необхідності створення окремого скрипта.
Налаштування iptables:
- sudo bash << EOF
- # Повна конфігурація iptables для Redis
- iptables -F
- iptables -X
-
- # Базові політики
- iptables -P INPUT DROP
- iptables -P FORWARD DROP
- iptables -P OUTPUT ACCEPT
-
- # Дозвіл локальних з'єднань
- iptables -A INPUT -i lo -j ACCEPT
-
- # Дозвіл встановлених з'єднань
- iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-
- # Дозвіл SSH
- iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-
- # Дозвіл Redis з локальної мережі
- iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 6379 -j ACCEPT
-
- # Закриття порту Redis для зовнішніх підключень
- iptables -A INPUT -p tcp --dport 6379 -j LOG --log-prefix "Redis Connection Attempt: "
- iptables -A INPUT -p tcp --dport 6379 -j DROP
- EOF
Збереження правил:
- sudo apt install -y iptables-persistent
- netfilter-persistent save
Під час збереження правил у Вас запитає підтвердження. Потрібно натиснути Yes.

Налаштування firewalld:
- sudo bash << EOF
- # Встановлення та налаштування firewalld
- dnf install -y firewalld
-
- # Запуск та активація служби
- systemctl enable firewalld
- systemctl start firewalld
-
- # Додавання правил для Redis
- firewall-cmd --permanent --add-port=6379/tcp
- firewall-cmd --permanent --add-rich-rule='
- rule family="ipv4"
- source address="192.168.0.0/24"
- port protocol="tcp" port="6379"
- accept'
-
- # Застосування змін
- firewall-cmd --reload
- EOF
Налаштування UFW:
- sudo bash << EOF
- # Встановлення та базове налаштування UFW
- apt install -y ufw
-
- # Базові політики
- ufw default deny incoming
- ufw default allow outgoing
-
- # Дозвіл SSH
- ufw allow ssh
-
- # Дозвіл Redis з локальної мережі
- ufw allow from 192.168.0.0/24 to any port 6379
-
- # Активація UFW
- ufw enable
- EOF
Перевірка статусу служби Redis
1. Перевірка статусу системної служби Redis.
Щоб дізнатися, чи працює служба Redis, виконайте команду:
- sudo systemctl status redis
Ви побачите інформацію про стан служби, включаючи активність та можливі помилки.

2. Перевірка роботи Redis через redis-cli.
Для швидкої перевірки, чи відповідає Redis:
- redis-cli ping
У відповідь має бути PONG, що вказує на коректну роботу.

3. Перевірка, чи служба прослуховує порт 6379 (порт за замовчуванням).
Використовуйте netstat або ss, щоб перевірити, чи Redis прослуховує потрібний порт:
- sudo netstat netstat -lnp | grep 6379

Або за допомогою ss:
- sudo ss -lnp | grep 6379
Якщо порт прослуховується, це підтверджує, що Redis працює.

4. Додаткова перевірка конфігурації Redis.
Щоб дізнатися активні параметри Redis, підключіться до нього за допомогою клієнта:
- redis-cli
І введіть команду:
- CONFIG GET *
Це дозволить побачити всі параметри конфігурації, включаючи порт, режим роботи та інші налаштування.



