Redis nedir?
Redis, verileri bellekte tutan açık kaynaklı bir anahtar-değer veri deposudur. Çok hızlı okuma ve yazma yapabildiği için önbellek, oturum saklama, kuyruk ve sayaç gibi işlerde yaygın kullanılır. İsteğe bağlı olarak verileri diske de kaydedebilir.
WordPress ve benzeri uygulamalarda nesne önbelleği olarak kullanıldığında veritabanı yükünü azaltır. Ancak varsayılan kurulumları güvenlik odaklı değildir, bu nedenle yanlış yapılandırılmış Redis sunucuları sık hedef alınır.
Nasıl çalışır?
Redis; metin, liste, küme ve karma gibi veri yapılarını bellekte tutar. İstemciler, genellikle 6379 portundan basit bir komut protokolüyle bağlanır. Kalıcılık için anlık görüntü (RDB) ya da komut günlüğü (AOF) seçenekleri vardır.
- Anahtarlara geçerlilik süresi (TTL) verilebilir.
- Kimlik doğrulama ve ACL ile kullanıcı yetkileri sınırlanabilir.
- Yinelenme (replication) ile veriler ikinci bir sunucuya kopyalanabilir.
Sunucu ve hosting ortamında
Hosting ve VPS ortamlarında Redis çoğunlukla aynı sunucudaki uygulamalar için çalışır ve yalnızca yerel arayüzü dinlemelidir. İnternete açık, parolasız bir Redis, verilerin okunmasına ve değiştirilmesine hatta sunucu üzerinde yetkisiz işlem yapılmasına zemin hazırlayabilir.
Paylaşımlı hostingde her hesabın kendi Redis örneğini ya da soyutlanmış erişimini kullanması gerekir; ortak ve korumasız bir örnek hesaplar arası veri sızıntısı riski doğurur.
Nasıl korunulur?
- Redis’i yalnızca
127.0.0.1ya da özel ağ arayüzünde dinletin (bind). protected-modeayarını açık tutun ve 6379 portunu güvenlik duvarında dışarıya kapatın.- Güçlü parola (
requirepass) ya da ACL kullanıcıları tanımlayın. - Tehlikeli komutları gerekmiyorsa yeniden adlandırın ya da ACL ile kısıtlayın.
- Redis’i root olmayan, yetkisiz bir kullanıcıyla çalıştırın.
- Güncel sürümü kullanın ve gerekiyorsa bağlantıyı TLS ile şifreleyin.
Sık yapılan hatalar
- Redis’i tüm arayüzlerde dinletip parolasız bırakmak.
- Önbellek ile kalıcı veri deposunu karıştırıp kritik veriyi yalnızca Redis’te tutmak.
- Bellek sınırı (
maxmemory) koymamak. - Birden çok uygulamayı aynı örnekte ve aynı veritabanı numarasında karıştırmak.
Sık sorulan sorular
Redis ne işe yarar?
Sık kullanılan verileri bellekte tutarak uygulamaları hızlandırır. Önbellek, oturum verisi, kuyruk ve sayaç gibi alanlarda kullanılır.
Redis ile MySQL arasındaki fark nedir?
MySQL, tabloları diskte saklayan ilişkisel bir veritabanıdır; Redis ise verileri bellekte tutan hızlı bir anahtar-değer deposudur. Genellikle birbirinin yerine değil, birlikte kullanılırlar.
Redis’i internete açmak güvenli mi?
Hayır, gerçekten ihtiyaç yoksa açılmamalıdır. Gerekirse güvenlik duvarıyla kısıtlanmalı, parola ve TLS ile korunmalıdır.
Bu terimin geçtiği rehberler
- Memcached kurulumu ve güvenliğiMemcached önbellek sunucusunu Debian ve RHEL tabanlı sistemlere kurma, UDP kapatma, bind adresi ve güvenlik duvarıyla erişimi kısıtlama ve SASL notlarını içeren güvenli kurulum rehberi.
- Pterodactyl oyun sunucusu paneli güvenliğiPterodactyl oyun sunucusu panelini genel ilkelerle güvenli hale getirin: HTTPS, iki adımlı doğrulama, Wings port kısıtlaması, yedekleme, güncelleme ve yetki ayrımı.
- Redis nasıl kurulur ve nasıl güvene alınırRedis kurulumu ve güvenliği: paket kurulumu, bind ve protected-mode, requirepass ve ACL, tehlikeli komutları kısıtlama, maxmemory, kalıcılık ve doğrulama adımları.
- iptables ve nftables ile güvenlik duvarı temelleriiptables ve nftables ile Linux sunucuda güvenlik duvarı kurulumu: varsayılan engelleme, SSH koruması, kalıcı kurallar, test ve geri alma adımları.
İlgili terimler
- RoundcubeHosting panellerinde sık bulunan, web tabanlı e-posta istemcisi.
- WordPressDünyada en yaygın kullanılan içerik yönetim sistemi (CMS).
- Apache HTTP ServerDünyada en yaygın kullanılan açık kaynaklı web sunucularından biri.
- BIND (DNS sunucusu)BIND, internetin en yaygın kullanılan açık kaynaklı DNS sunucu yazılımıdır; alan adı kayıtlarını yayınlar ve sorguları çözer.
- DovecotIMAP ve POP3 ile posta kutularına erişim sağlayan e-posta sunucusu.
- ElasticsearchElasticsearch, büyük hacimli metin ve günlük verilerinde hızlı arama ve analiz yapan dağıtık bir arama motorudur.