Sunucularınızda zayıf şifrelerin varlığı, siber güvenlik ihlallerinin en yaygın nedenlerinden biridir.
Sunucularınızda zayıf şifrelerin varlığı, siber güvenlik ihlallerinin en yaygın nedenlerinden biridir. Zayıf şifreler, brute-force saldırıları veya sözlük tabanlı denemelerle kolayca kırılabilir ve bu durum veri kaybı, yetkisiz erişim veya sistem ele geçirme riskini artırır. Bu makalede, Linux tabanlı sunucularda zayıf şifreleri sistematik olarak tespit etme ve bunları zorunlu değiştirme politikalarıyla yönetme yöntemlerini adım adım ele alacağız. Bu süreç, hem mevcut şifreleri taramayı hem de gelecekteki şifrelemeleri güçlendirmeyi kapsar. Kurumsal ortamlar için pratik araçlar ve konfigürasyonlar üzerinden rehberlik sağlayarak, güvenlik seviyenizi yükseltmenize yardımcı olacağız.
Sunucuda zayıf şifreleri tespit etmek için öncelikle /etc/shadow dosyasındaki hash’leri analiz etmelisiniz. Bu dosya, kullanıcı şifrelerinin kriptografik hash’lerini içerir ve root yetkisiyle erişilebilir. İlk adım, pwck komutunu kullanarak şifre dosyalarının bütünlüğünü kontrol etmektir: sudo pwck. Bu komut, geçersiz veya zayıf hash’leri raporlar. Daha derin analiz için pwquality kütüphanesini etkinleştirin; bu, cracklib ile entegre çalışarak yaygın zayıf şifreleri (örneğin “123456” veya “password”) otomatik tarar.
İleri seviye tespit için John the Ripper gibi araçları kullanabilirsiniz. Shadow dosyasını kopyalayın ve unshadow passwd shadow > hashes.txt ile hash’leri çıkarın. Ardından john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt komutuyla sözlük saldırısı yapın. Bu işlem, dakikalar içinde kırılabilir şifreleri listeler. Tespit edilen zayıf şifreler için kullanıcıları uyarın ve chage komutuyla son değiştirme tarihini kontrol edin: chage -l username. Bu yaklaşım, proaktif güvenlik sağlar ve her taramada raporlama yapmanızı öneririz; örneğin haftalık cron job ile otomatikleştirin.
Şifre hash’lerini doğrudan analiz etmek, en güvenilir yöntemdir. SHA-512 gibi modern hash’ler kullanın, ancak eski MD5 hash’leri zayıf kabul edin. awk -F: '($2 ~ /^.{1,5}$/ || $2 == "*" || $2 == "!") {print $1}' /etc/shadow komutuyla boş veya kısa hash’li hesapları listeleyin. Bu filtreleme, 70 karakterden kısa hash’leri yakalar ve anında müdahale gerektirir. Analiz sonuçlarını loglayarak uyumluluk raporları oluşturun.
Sözlük saldırıları simüle etmek için Hashcat aracını tercih edin; GPU destekli hızlı tarama sağlar. hashcat -m 1800 -a 0 hashes.txt wordlist.txt ile Linux SHA-512 hash’lerini test edin. Bu, gerçek saldırı hızlarını yansıtır ve 10 dakikada binlerce şifreyi kırar. Sonuçlara göre, minimum 12 karakter, büyük/küçük harf, rakam ve sembol içeren politikalar belirleyin. Pratikte, bu simülasyonları test sunucusunda çalıştırarak production’a taşımayın.
Zayıf şifreleri tespit ettikten sonra, PAM (Pluggable Authentication Modules) modüllerini kullanarak zorunlu değiştirme kurun. /etc/pam.d/common-password dosyasına pam_pwquality.so ekleyin: password requisite pam_pwquality.so retry=3 minlen=12 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1. Bu konfigürasyon, şifrelerin en az 12 karakter, bir büyük harf, rakam vb. içermesini zorunlu kılar. Kullanıcılar passwd komutuyla şifre değiştirirken bu kurallara uymak zorunda kalır.
/etc/login.defs dosyasını düzenleyerek global politikaları tanımlayın: PASS_MAX_DAYS 90, PASS_MIN_DAYS 7, PASS_WARN_AGE 14 gibi değerler ekleyin. Chage komutuyla bireysel kullanıcılara uygulayın: sudo chage -M 90 -m 7 -W 14 username. Bu, şifreleri 90 günde bir değiştirmeyi ve uyarıyı zorunlu kılar. Grup bazlı yönetim için /etc/security/pwquality.conf kullanın ve difok=3 ile tekrarlanan karakterleri engelleyin. Bu politikalar, LDAP veya Active Directory entegrasyonuyla ölçeklenebilir.
PAM’i yapılandırırken, öncelikle pwquality paketini yükleyin: sudo apt install libpwquality-tools. pwquality.cfg dosyasında minclass=4 belirterek dört farklı karakter sınıfı zorunlu kılın. Test için pwmake 12 "test" ile şifre gücü puanını kontrol edin. Bu modül, login sırasında gerçek zamanlı doğrulama yapar ve başarısız denemeleri syslog’a kaydeder, böylece izlenebilirlik sağlar.
Tespit edilen zayıf şifreler için acil değiştirme uygulayın: sudo passwd -l username ile kilitleyip, sudo chage -d 0 username ile bir sonraki loginde değiştirmeyi zorunlu kılın. E-posta bildirimleri için cron script’i yazın, örneğin zayıf şifre raporu gönderen bir bash dosyası. Bu, kullanıcı deneyimini bozmadan güvenliği artırır ve kurumsal uyumluluğu (örneğin GDPR) destekler.
Güvenlik politikalarını sürekli izlemek için Fail2Ban gibi araçları entegre edin; başarısız şifre denemelerini ban’lar. Aylık audit’ler düzenleyin ve raporları yönetimle paylaşın. Şifre yöneticileri (KeePass) teşvik edin, tek kullanımlık şifrelerden kaçının. Bu bütünleşik yaklaşım, sıfır güven mimarisine geçişi kolaylaştırır.
Uygulamada, test ortamında politikaları valide edin: Yeni kullanıcı oluşturup şifre değiştirme deneyin. Log rotasyonuyla (/var/log/auth.log) izlemeyi sağlayın. Sonuç olarak, zayıf şifre yönetimiyle sunucularınızı proaktif koruma altına alın; bu, uzun vadeli güvenlik yatırımıdır ve olası ihlalleri önler.