Kullanıcı Kimlik Denetimini Güvenli Hale Getirmek

Birçok linux dağıtımı kullanıcı kimlik kanıtlamasını yeterince güvenli gerçekleştirmez. Bu bölümde sisteminizde kimlik denetimini nasıl daha güvenli hale getirebileceğinizi tartışacağız. Burada anlatılanları yapmanız sisteminizi daha güvenli hale getirir ama kırılamaz yapmaz.

Güçlü /etc/pam.d/other dosyası

/etc/pam.d/ dizinindeki dosyaların tümü özel bir servis için yapılandırmaları içerir. Bu kuralın tek istisnası /etc/pam.d/other dosyasıdır. Bu dosya kendisi için bir yapılandırma dosyası bulunmayan servisler için yapılandırmaları içerir. Örneğin, eğer (hayali) xyz servisi kimlik kanıtlamasına ihtiyaç duyarsa PAM /etc/pam.d/xyz dosyasını arar. Bulamayınca xyz uygulaması için kimlik denetiminde /etc/pam.d/other dosyasını kullanır. /etc/pam.d/other sahipsiz PAM servislerinin yapılandırma dosyası olduğundan onun güvenli olması önemlidir. Burada /etc/pam.d/other dosyasının birisi neredeyse paranoyak diğeri biraz daha mantıklı olan iki farklı güvenli yapılandırmasını tartışacağız.

Paronayak Yapılandırma

/etc/pam.d/other dosyasının paronayak yapılandırması aşağıdaki gibidir:

auth        required        pam_deny.so
auth        required        pam_warn.so
account     required        pam_deny.so
account     required        pam_warn.so
password    required        pam_deny.so
password    required        pam_warn.so
session     required        pam_deny.so
session     required        pam_warn.so

Bu yapılandırma ile bilinmeyen bir servis dört yapılandırma türünden birine erişmeye çalışırsa PAM kimlik denetimini reddeder (pam_deny.so modülü ile) ve sistem günlüklerine bir uyarı mesajı (pam_warn.so modülü ile) kaydeder. Bu yapılandırma ile PAM kabaca güvenlidir. Bu kabalık ile ilgili tek problem eğer bir servisin yapılandırma dosyasını silerseniz ortaya çıkar. Örneğin eğer /etc/pam.d/login dosyasını kazara silerseniz kimse oturum açamaz!

Daha nazik yapılandırma

O kadar da kaba olmayan bir yapılandırma aşağıdaki gibidir:

auth        required        pam_unix.so
auth        required        pam_warn.so
account     required        pam_unix.so
account     required        pam_warn.so
password    required        pam_deny.so
password    required        pam_warn.so
session     required        pam_unix.so
session     required        pam_warn.so

Bu yapılandırma ile bilinmeyen bir servis için kullanıcı kimlik kanıtlamasına (pam_unix.so modülü ile) izin verilir ama parolasını değiştirmesine izin verilmez. Bilinmeyen servislerin kimlik kanıtlaması yapmalarına izin verilse bile sistem günlüklerine bir uyarı mesajı kaydeder.

/etc/pam.d/other dosyalarından birini seçmek

Aksi yönde çok iyi bir nedeniniz olmadıkça yukarıdaki /etc/pam.d/other dosyalarından ilkini seçmenizi kuvvetle öneririm. 'Öntanımlı olarak güvenli' olmak her zaman iyi fikirdir. Eğer yeni bir servis için kimlik kanıtlamasına izin vermeniz gerekirse bunu basitçe o servis için bir PAM yapılandırma dosyası yaratarak yapabilirsiniz.

Kullanıcıların boş parolalarla oturum açmasını engellemek

Linux sistemlerinin çoğunda ftp, web sunucusu ve mail gibi sistem servislerine ayrıcalıklar tanıyabilmek için bir takım ←sözde→ kullanıcı hesapları bulunur. Bu hesapların bulunması sisteminizi daha güvenli hale getirir. Çünkü bir servisin açığından faydalanan saldırgan sınırsız root yetkilerini değil sadece kısıtlı ayrıcalıkları olan sözde hesabın yetkilerini kazanacaktır. Bununla birlikte bu sözde hesapların bulunması genellikle boş (null) parolaları olduğundan bir güvenlik açığıdır. Boş parolaların kabul edilmesine ←nullok→ yapılandırma seçeneği izin verir. Bu seçeneği oturum açmasına izin verilen 'auth' türündeki tüm servislerden kaldırmak isteyebilirsiniz. Bu genellikle login servisidir ama rlogin ve ssh gibi servisleri de kapsayabilir. Bu yüzden /etc/pam.d/login dosyasının aşağıdaki satırı:

auth         required        pam_unix.so     nullok

yerine

auth         required        pam_unix.so

getirilmelidir.

Kullanılmayan servislerin iptal edilmesi

/etc/pam.d/ dizinindeki dosyalara baktığınızda kullanmadığınız hatta bazılarının adını bile duymadığınız programlar için yapılandırma dosyaları olduğunu göreceksiniz. Bu servislerin kimlik denetimi yapmasına izin vermek sisteminizde büyük güvenlik açıkları oluşturmasa da kimlik denetiminden reddedilmeleri daha iyidir. Bu programlar için PAM kimlik denetimine izin vermemenin en iyi yolu dosyalarını yeniden adlandırmaktır. PAM kimlik kanıtlama talebinde bulunan servis için gerekli dosyayı bulamadığında çok güvenli olan /etc/pam.d/other dosyasını kullanacaktır. Eğer ilerde bu programlardan birine ihtiyacınız olduğunu farkederseniz dosyanın adnı eski haline getirmeniz her şeyin gerektiği gibi çalışması için yeterli olacaktır.

Parola-kırma araçları

Parola-kırma araçları saldırganlar tarafından sistemi ele geçirmek için kullanılabilecekleri gibi sistem yöneticileri tarafından sistemlerinde güçlü parolalar kullanıldığından emin olmak için de kullanılırlar. En yaygın kullanılan parola-kırma araçları ←crack→ ve ←John the Ripper→'dır. Crack büyük ihtimalle kullandığınız dağıtıma dahil edilmiştir. John the Ripper ise http://www.openwall.com/john/ adresinden edinilebilir. Bu araçları parola veri tabanınızda çalıştırdığınızda sonuçlar büyük ihtimalle sizi şaşırtacaktır.

Bunlara ilave olarak, kullanıcılar parolalarını değiştirirken parolaların dayanıklılıklarını ölçen bir PAM modülü de mevcuttur. Bu modül yüklendiğinde kullanıcılar parolalarını ancak minimum dayanıklılığa sahip parolalar ile değiştirebilirler.

Gölgelenmiş ve MD5 parolalar

Bu belgenin ilk bölümünde bahsettiğimiz gibi gölgelenmiş ve MD5 parolalar sisteminizi daha güvenli hale getirir. Modern dağıtımların çoğu kurulum aşamasında gölgelenmiş ve/veya MD5 parolaları kullanmak isteyip istemediğinizi sorar. Aaksi için çok iyi bir nedeniniz yokta onları aktif edin. Gölgelenmemiş/MD5-lenmemiş parolaların dönüştürülmesi karmaşık bir süreçtir ve bu belgenin kapsamının dışındadır. Gölgelenmiş Parola NASIL belgesi eskimiş olsa da yardımcı olabilir.