Redis / Valkey güvenlik sıkılaştırma (ACL, TLS, tehlikeli komutlar)
RedisSeviye: İleriSüre: 5 dk (denetim) – 90 dk (tam sıkılaştırma)Kurulum ya da günlük işletim değil: çalışan bir Redis ya da Valkey'i (tek sunucu, replica + Sentinel ya da Cluster) kesinti olmadan sıkılaştırmak için senaryo bazlı runbook. Salt-okur güvenlik denetimi, ACL kullanıcıları ve default kullanıcıyı kapatma, requirepass/masterauth, bind ve protected-mode, CONFIG/DEBUG/MODULE istismarına karşı protected config'ler, TLS'e (istemci, replikasyon, Sentinel, cluster bus) çalışırken geçiş ve dosya izinleri; sonunda denetim tekrarlanıp risklerin kapandığı gösterilir. DBAtlas kurulum rehberleriyle kurulan sistemlerde parola ve dar firewall zaten vardır: denetimle başlayıp yalnız RİSK/UYARI çıkan senaryoları uygulayın. Yedek ve günlük işletim ayrı Redis rehberlerindedir.
Yapı: Tek sunucu, master + replica + Sentinel ya da Redis Cluster
Senaryolar
- Güvenlik durumu denetimi (salt-okur) — Hiçbir şey değiştirmez. Parolasız erişim, default kullanıcı, dinlenen adresler, protected-mode, tehlikeli komutlar, TLS, Sentinel parolası ve dosya izinleri OK / UYARI / RİSK olarak raporlanır. Nereden başlayacağınızı bilmiyorsanız bunu seçin.
- Tam sıkılaştırma (hepsi sırayla) — Denetim → ACL kullanıcıları (yönetici, uygulama, replikasyon, Sentinel) ve default kullanıcıyı kapatma → bind/protected-mode/firewall → tehlikeli komutlar ve protected config'ler → TLS → dosya izinleri → son denetim. Replica/Sentinel'de rolling; riskli adımlar onay ister.
- ACL kullanıcıları ve default kullanıcıyı kapat (Redis 6+) — Herkes tek parolayla (ya da parolasız) default kullanıcı olarak bağlanıyor. Yönetici, uygulama (yalnız kendi key'leri, tehlikeli komutsuz), replikasyon ve Sentinel için ayrı kullanıcılar açılır, aclfile'a yazılır, uygulamalar taşınınca default kapatılır.
- Parolasız Redis: requirepass / masterauth (hızlı önlem) — Hiç parola yok ve ACL'e geçmek için zaman yok. Tüm node'lara ortak parola (requirepass + replikasyon için masterauth, Sentinel'e auth-pass) çalışırken verilir; uygulamalar parolasız bağlanamaz.
- Ağ erişimini daralt (bind 0.0.0.0, protected-mode, firewall) — Redis tüm arayüzlerde dinliyor ya da protected-mode no. bind yalnız localhost + iç IP'ye indirilir, protected-mode açılır, firewall yalnız node'lara ve uygulama ağına izin verir. Çalışırken uygulanır, mevcut bağlantılar kopmaz; riski en hızlı düşüren adımdır.
- Tehlikeli komutlar ve CONFIG istismarı (FLUSHALL, CONFIG, DEBUG, MODULE) — CONFIG SET dir/dbfilename ile sunucuya dosya yazma (SSH anahtarı, cron) istismarına ve FLUSHALL/DEBUG/MODULE LOAD'a karşı: enable-protected-configs, enable-debug-command, enable-module-command kapalı tutulur, uygulamalardan @dangerous alınır; eski sürümde rename-command.
- Bağlantıları şifrele: TLS (istemci, replikasyon, Sentinel, cluster bus) — Trafik şifresiz. TLS portu mevcut portun yanında çalışırken açılır, replikasyon ve Sentinel TLS'e taşınır, uygulamalar geçince şifresiz port kapatılır (port 0).
- Dosya izinleri ve çalışma kullanıcısı — redis.conf (parola içerir), ACL dosyası, RDB/AOF ve log dosyaları başka kullanıcılar tarafından okunabiliyor ya da Redis root ile çalışıyor. İzinler 640/750'ye, sahiplik servis kullanıcısına çekilir.
Başlamadan önce
- Tüm node'larda root/sudo; ilk node'dan diğerlerine SSH (parola dosyası ve sertifika kopyalama).
- Redis 6.2+ ya da Valkey 7.2+ (ACL için 6.0+, protected config'ler için 7.0+).
- Replikasyon… ve Sentinel… sağlıklı; rolling işlemler sağlıksız topolojide yapılmaz.
- Uygulama listesi ve istemci kütüphanesi sürümleri: ACL için kullanıcı adı + parola (Redis 6+ istemci), TLS için rediss:// desteği; Sentinel kullanan istemcinin Sentinel parolası ve TLS desteği.
- openssl kurulu (parola ve sertifika üretimi).
Rehberin aşamaları
- Hazırlık: güvenlik ağı ve yardımcı araçlar — Yapılandırma ve ACL yedeği · Yardımcı araçları yaz (dbatlas-rconf, dbatlas-rcli, dbatlas-redis-restart) · Yönetici parolasını geçici dosyaya yaz
- Durum denetimi (salt-okur) — Güvenlik raporu: … · Sentinel raporu: … · Bulguları senaryolara eşle
- Parola: requirepass ve masterauth (çalışırken) — Ortak parolayı belirle: … · masterauth: … · Sentinel auth-pass: … · requirepass: … · Sentinel'e parola: … · Replikasyon ve Sentinel sağlıklı mı …
- ACL: teşhis ve kullanıcı parolaları — Teşhis: kim hangi kullanıcıyla bağlı? · İç kullanıcı parolalarını üret · Parola dosyasını diğer node'lara kopyala
- ACL: default kullanıcıyı kapat — default ile bağlı istemci kaldı mı: … · default kullanıcıyı kapat: … · Doğrula: kimliksiz erişim, uygulama yetkileri, replikasyon · Sentinel'e parola: …
- Ağ erişimi: firewall — Firewall kuralları
- Tehlikeli komutlar: teşhis — Protected config ve debug/module komutları: …
- Tehlikeli komutlar: doğrulama — CONFIG SET dir ve DEBUG reddediliyor mu: …
- TLS: sertifikalar — TLS desteği: … · İç CA ve sunucu sertifikalarını üret · Sertifikaları dağıt · Sertifika izinleri: …
- TLS · Cluster bus ve replikasyon (bakım penceresi, tüm node'lar birlikte) — Bus portunu sabitle, tls-cluster ve tls-replication'ı dosyaya yaz: … · Durdur: … · Başlat: … · Cluster ve replikasyon TLS üzerinde mi
- TLS: doğrulama ve şifresiz portu kapat — Replikasyon… ve Sentinel… TLS üzerinde mi · Şifresiz portu kapat: … · Şifresiz bağlantı reddediliyor mu: …
- Dosya izinleri ve çalışma kullanıcısı — İzinleri düzelt: …
- Son denetim (sıkılaştırma sonrası) — Güvenlik raporu: … (son durum) · Sentinel raporu: … (son durum)
- Temizlik ve sonrası — Geçici parola dosyalarını sil · Sonrası: izleme ve periyodik işler