Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Memcached için SASL Kimlik Doğrulama Kurulumu ve Güvenli Uzaktan Erişim Yapılandırması

thecoder

Üye
Katılım
14 Mart 2026
Mesajlar
14
Merhaba arkadaşlar, bugün sizlere özellikle birden fazla sunucunun olduğu ortamlarda çok kritik bir güvenlik önlemi olan Memcached için SASL kimlik doğrulamayı nasıl kuracağınızı ve uzaktan erişimi güvenli hale getirmeyi anlatacağım. Varsayılan kurulumda kimlik doğrulama olmadığı için, Memcached sunucusu ağa açıksa ciddi bir güvenlik açığı oluşturabilir. Bu rehberle bu açığı tamamen kapatmış olacağız.

🔐 SASL Nedir ve Neden Gerekli?

Memcached, varsayılan olarak herhangi bir kullanıcı adı/şifre sormadan bağlantıları kabul eder. Eğer sunucunuzun 11211 portu dış dünyaya açıksa, herkes bağlanıp veri ekleyebilir, silebilir veya sunucuyu DDoS atağı için kullanabilir. SASL (Simple Authentication and Security Layer) ile basit bir kullanıcı/şifre mekanizması ekleyerek bu riski ortadan kaldırıyoruz.

⚙️ Adım 1: Gerekli Paketlerin Kurulumu

Öncelikle sunucumuzu güncelleyelim ve gerekli paketleri kuralım. Ben genelde Debian/Ubuntu tabanlı sistemlerde çalıştığım için komutlar ona göre. CentOS/RHEL kullanan arkadaşlar `yum` veya `dnf` kullanacaklar.

Bash:
sudo apt-get update
sudo apt-get install -y memcached libsasl2-modules sasl2-bin

Bu komutlarla Memcached'i, SASL kütüphanelerini ve araçlarını kuruyoruz. Kurulum otomatik olarak Memcached servisini de başlatacaktır.

🔧 Adım 2: SASL Yapılandırmasını Oluşturma

Şimdi SASL için bir veritabanı oluşturacağız ve kullanıcı ekleyeceğiz. İlk olarak SASL'ın kullanacağı mekanizmayı belirleyelim. Ben basit ve etkili olan auxprop ve plain mekanizmasını kullanıyorum.

Aşağıdaki komutla SASL yapılandırma dosyasını oluşturalım. Dosya yoluna dikkat edin: /etc/sasl2/memcached.conf

Bash:
sudo mkdir -p /etc/sasl2
echo 'mech_list: plain
log_level: 5
sasldb_path: /etc/sasl2/memcached-sasldb2' | sudo tee /etc/sasl2/memcached.conf

Şimdi bu veritabanına bir kullanıcı ekleyelim. Siz kendi belirlediğiniz güçlü bir kullanıcı adı ve şifreyi kullanın. Ben örnek olarak cacheadmin kullanıyorum.

Bash:
sudo saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 cacheadmin

Komutu çalıştırdığınızda sizden şifre isteyecek, iki kere güçlü bir şifre girin. Son olarak, oluşturulan veritabanı dosyasının Memcached prosesi tarafından okunabilmesi için izinleri ayarlayalım.

Bash:
sudo chown memcache:memcache /etc/sasl2/memcached-sasldb2

⚠️ Dikkat Edilmesi Gerekenler

Bu aşamada en çok yapılan hata, dosya izinlerini yanlış vermek veya sasldb_path yolunu yanlış yazmaktır. Komutları adım adım uygularsanız sorun yaşamazsınız. Ayrıca, şifrenizi unutmamaya özen gösterin, çünkü veritabanına tekrar erişmek biraz uğraştırıcı olabilir.

⚙️ Adım 3: Memcached Yapılandırmasını Değiştirme

Asıl işlem şimdi başlıyor. Memcached'in ana yapılandırma dosyasını açıp SASL'ı etkinleştireceğiz. Dosyamız: /etc/memcached.conf

Aşağıdaki satırları bulup ya değiştireceğiz ya da dosyanın sonuna ekleyeceğiz. Öncelikle dosyayı bir editörle açalım.

Bash:
sudo nano /etc/memcached.conf

Dosyanın içinde `-l` parametresiyle başlayan bir satır bulacaksınız (genellikle `-l 127.0.0.1` şeklindedir). Bu satır, Memcached'in hangi IP adresini dinleyeceğini belirler. Eğer sadece localhost üzerinden erişim olacaksa bu satırı olduğu gibi bırakın. Ancak, diğer sunuculardan da (örneğin web sunucunuzdan) erişim gerekiyorsa, o sunucunun özel IP'sini veya `0.0.0.0` (tüm ağ arabirimleri) yazmalısınız.

UYARI: `-l 0.0.0.0` yapmak, sunucuyu tüm IP'lere açar. Bunu YALNIZCA güvenli bir özel ağınız (VPC/VLAN) varsa ve SASL kimlik doğrulamayı etkinleştirdiğinizden eminseniz yapın. Doğrudan internete açmak çok risklidir!

Şimdi, SASL'ı etkinleştirmek için aşağıdaki parametreyi dosyaya ekleyin. Bu parametre genellikle dosyada yoktur, en son satıra ekleyebilirsiniz.

NGINX:
-S
-s /var/run/memcached/memcached-sasl.sock

İlk parametre `-S`, SASL desteğini etkinleştirir. İkinci parametre `-s` ise UNIX soket dosyasının yolunu belirtir (isteğe bağlı, eğer sadece yerel uygulamalar bağlanacaksa kullanışlıdır). Eğer ağ üzerinden erişim sağlayacaksanız, `-s` parametresini kullanmayabilir veya yorum satırı yapabilirsiniz.

Değişiklikleri kaydedip editörden çıktıktan sonra, Memcached servisini yeniden başlatalım.

Bash:
sudo systemctl restart memcached

🔧 Adım 4: Test ve Uzaktan Erişim Kontrolü

Kurulumun çalışıp çalışmadığını test edelim. Öncelikle servisin durumuna bakalım.

Bash:
sudo systemctl status memcached --no-pager -l

Çıktıda "Initialized SASL." gibi bir mesaj görüyorsanız, SASL başarıyla yüklenmiş demektir.

Şimdi, yerelden kimlik doğrulama gerektirmeden bağlanmayı deneyelim. Aşağıdaki komut hata vermeli veya timeout'a uğramalı.

Bash:
echo "stats" | nc localhost 11211

Şimdi de doğru kimlik bilgileriyle bağlanalım. `libmemcached-tools` paketini kurmanız gerekebilir.

Bash:
sudo apt-get install -y libmemcached-tools
memcstat --servers=localhost --username=cacheadmin --password=GÜCLÜ_SIFRENIZ

Eğer istatistikleri (hit, miss, connection sayısı gibi) listeleyebiliyorsanız, kurulum tamamlanmış demektir! Tebrikler.

🌐 Uzaktan Erişim için Güvenlik Duvarı (Firewall)

Eğer diğer sunuculardan erişime izin verdiyseniz (`-l` parametresiyle), mutlaka güvenlik duvarınızı da yapılandırın. Sadece belirli kaynak IP adreslerinin 11211 portuna bağlanmasına izin verin. Örnek bir UFW kuralı:

Bash:
sudo ufw allow from 10.0.1.0/24 to any port 11211 proto tcp

Bu kural, sadece `10.0.1.0/24` ağındaki sunucuların bağlanmasına izin verir.

💎 Sonuç ve Tavsiyeler
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri