# Redis kurulumu ve güvenliği (Ubuntu): bind, parola ve internete açmama

https://kervanhosting.com/bilgi-bankasi/makale/redis-kurulumu-ve-guvenligi-ubuntu-bind-requirepass

Redis, çok hızlı çalışan bir bellek içi veri deposudur: önbellek, oturum saklama, kuyruk ve sayaç gibi işler için kullanılır. WordPress ve Laravel gibi uygulamalar yük altında hızlanmak için Redis'i kullanabilir. Kurulumu kolaydır, ama **yanlış yapılandırıldığında** internetteki botların en sevdiği hedeflerden biri olur: parolasız ve internete açık Redis sunucuları dakikalar içinde ele geçirilir. Güvenli kurulum birkaç ayardan ibarettir.

## Kurulum

```
sudo apt update
sudo apt install -y redis-server
sudo systemctl enable --now redis-server
redis-cli ping
```

Son komut `PONG` dönmelidir. Ayar dosyası `/etc/redis/redis.conf`'tur. Ubuntu paketinin varsayılan ayarları yalnızca yerel dinleme yapar; yine de aşağıdaki ayarları kontrol edin, çünkü sonradan değiştirildiyse ya da başka bir kaynaktan kurulduysa durum farklı olabilir.

## 1. Yalnızca yerelde dinletin

Redis ile aynı sunucudaki uygulamanız konuşacaksa başka kimsenin ulaşmasına gerek yoktur. `redis.conf` içinde:

```
bind 127.0.0.1 -::1
protected-mode yes
port 6379
```

Doğrulamak için dışarıya açık olmadığını görün: `sudo ss -tlnp | grep 6379` çıktısında `127.0.0.1:6379` yazmalı, `0.0.0.0:6379` yazmamalı. Uygulamanız **başka bir sunucuda** ise Redis'i internete açmak yerine yalnızca o sunucunun adresine izin veren güvenlik duvarı kuralı, özel ağ ya da SSH tüneli kullanın. 6379 portunu hiçbir zaman herkese açmayın: [UFW](https://kervanhosting.com/bilgi-bankasi/makale/ufw-ile-port-acma-ve-kapatma-ubuntu-guvenlik-duvari).

## 2. Parola belirleyin

Yerelde de parola kullanmak, sunucudaki başka bir kullanıcının ya da bir güvenlik açığının Redis'e erişmesini zorlaştırır. Güçlü, rastgele bir parola üretin (`openssl rand -base64 32`) ve ayara yazın:

```
requirepass UretilenGucluParola
```

Uygulamanız bağlanırken bu parolayı kullanmalıdır. Elle denemek için: `redis-cli -a 'parola' ping` (komut satırında parola görünür; deneme dışında kullanmayın).

## 3. Bellek sınırı ve politika

Redis verileri bellekte tutar; sınırlanmazsa sunucunun belleğini doldurup öldürülebilir. Önbellek olarak kullanıyorsanız:

```
maxmemory 256mb
maxmemory-policy allkeys-lru
```

Bellek dolunca en az kullanılan anahtarlar silinir. Kuyruk ya da kalıcı veri için `noeviction` gibi farklı bir politika gerekir; yanlış politika veri kaybettirir. Seçimi uygulamanızın belgesine göre yapın.

## Değişiklikleri uygulayın

```
sudo systemctl restart redis-server
redis-cli -a 'parola' info memory | head
```

## Sık sorunlar

- **"Connection refused":** Redis çalışmıyor ya da farklı bir adreste/portta dinliyor. `systemctl status redis-server` ve `ss -tlnp` ile bakın.
- **"NOAUTH Authentication required":** Parola tanımlı ama uygulamanız göndermiyor.
- **"MISCONF Redis is configured to save RDB snapshots":** Disk dolu ya da yazma izni yok; Redis yazma işlemlerini durdurdu. Disk alanını kontrol edin: [disk doldu](https://kervanhosting.com/bilgi-bankasi/makale/disk-doldu-sunucumda-nasil-yer-acarim).
- **Bellek hızla doluyor:** `maxmemory` tanımlayın ve anahtarlara süre (TTL) verin.

Redis'in ele geçirilmiş olabileceğinden şüphe ediyorsanız (bilinmeyen anahtarlar, beklenmedik `CONFIG` değişiklikleri): [yetkisiz erişim kontrol listesi](https://kervanhosting.com/bilgi-bankasi/makale/sunucuma-yetkisiz-erisim-oldu-mu-kontrol-listesi). WordPress'te nesne önbelleği için Redis kullanımı: [WordPress hızlandırma](https://kervanhosting.com/bilgi-bankasi/makale/wordpress-yavas-aciliyor-onbellek-ve-hizlandirma-adimlari).

## Sık sorulanlar

### Redis'i uzaktaki uygulamam için açmalı mıyım?

Tercihen hayır. Mümkünse uygulamayı ve Redis'i aynı sunucuda çalıştırın. Zorunluysa güvenlik duvarında yalnızca uygulama sunucusunun IP adresine izin verin ve parola ile TLS kullanın.

### Redis verilerimi kalıcı yapar mı?

Varsayılan olarak belirli aralıklarla diske anlık görüntü (RDB) yazar. Önbellek için yeterlidir; kritik veri için AOF'yi etkinleştirin ve yedek alın.

### Redis yerine Memcached kullanabilir miyim?

İşlevsel olarak önbellek için ikisi de çalışır. Redis veri yapıları, kuyruk ve kalıcılık gibi ek özellikler sunar, Memcached daha basittir.

**İlgili makaleler**

- [UFW ile port açma ve kapatma (Ubuntu güvenlik duvarı)](https://kervanhosting.com/bilgi-bankasi/makale/ufw-ile-port-acma-ve-kapatma-ubuntu-guvenlik-duvari)
- [MySQL / MariaDB veritabanı nasıl kurulur ve güvenli kullanılır?](https://kervanhosting.com/bilgi-bankasi/makale/mysql-mariadb-veritabani-nasil-kurulur-ve-guvenli-kullanilir)
- [Yeni Linux sunucuda ilk yapılması gerekenler](https://kervanhosting.com/bilgi-bankasi/makale/yeni-linux-sunucuda-ilk-yapilmasi-gerekenler)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
