Sisteminizde Kullanıcı Bilgileri Nasıl Saklanır
Önceki Kullanıcı Kimlik Kanıtlama NASIL Sonraki
Sisteminizde Kullanıcı Bilgileri Nasıl Saklanır
/etc/passwd
Neredeyse tüm Linux dağıtımlarında (ve ticari *nix'lerde) kullanıcı bilgisi /etc/passwd dosyasında saklanır. Bu metin dosyasında kullanıcının kullanıcı adı, şifrelenmiş parolası, benzersiz sayısal kullanıcı kimliği (uid), sayısal grup kimliği (gid), seçimlik yorum alanı (burada genellikle kullanıcının gerçek adı, telefon numarası gibi bilgiler bulunur), ev dizini ve tercih ettiği kabuk bilgileri bulunur. /etc/passwd dosyasındaki girdiler aşağıdaki gibidir:
pete:K3xcO1Qnx8LFN:1000:1000:Peter Hernberg,,,1-800-FOOBAR:/home/pete:/bin/bash
Gördüğünüz gibi anlaşılması oldukça kolaydır. Her girdi için yukarıda anlatılan altı alan vardır ve alanlar birbirinden : ile ayrılırlar. Kullanıcı kimlik denetimi sadece bu kadarcık karışık olsaydı bu NASIL belgesine ihtiyaç olmazdı.
Gölgelenmiş Parolalar
Sisteminizdeki /etc/passwd dosyasına bakarsanız aşağıdakine benzer olduğunu görürsünüz :
pete:x:1000:1000:Peter Hernberg,,,1-800-FOOBAR:/home/pete:/bin/bash
Şifrelenmiş parola nereye gitti? Buna yanıt vermeden önce biraz açıklama yapmak gerekiyor.
Kullanıcılar hakkındaki, şifrelenmiş parolaları dahil, tüm bilgilerin tutulduğu /etc/passwd dosyası tüm kullanıcılar tarafından okunabildiğinden herhangi bir kullanıcı sistemdeki tüm kullanıcıların şifrelenmiş parolalarını elde edebilir. Parolalar şifrelenmiş olsalar bile parola-kırma programları yaygın olarak bulunmaktadır. Bu güvenlik tehditiyle mücadele edebilmek için gölgelenmiş parolalar geliştirilmiştir.
Bir sistemde gölgelenmiş parolalar etkin kılındığında /etc/passwd dosyasındaki parola alanına x yazılır ve kullanıcının gerçek şifrelenmiş parolası /etc/shadow dosyasında saklanır. /etc/shadow dosyası sadece root tarafından okunabildiği için kötü niyetli kullanıcılar başkalarının parolalarını kıramazlar. /etc/shadow dosyası her girdi için kullanıcı adı, şifrelenmiş parola ve parolanın geçerliliği ile ilgili bir kaç alan içerir. Örnek bir girdi aşağıdaki gibidir:
pete:/3GJllg1o4152:11009:0:99999:7:::
/etc/group ve /etc/gshadow
Grup bilgisi /etc/group dosyasında saklanır. Dosya biçimi /etc/passwd'e benzer. Her girdi için grup adı, parolası, grup numarası (gid) ve birbirinden virgülle ayrılmış grup üyelerinin yeraldığı alanlar bulunur. /etc/group içindeki bir girdi aşağıdaki gibidir:
pasta:x:103:spagetti,fettucini,linguine,vermicelli
Parola alanındaki “x” ifadesinden anlaşıldığı gibi grup parolaları da gölgelenebilir. Neredeyse hiçbir grubun parolası olmasa da gölgelenmiş grup parolalarının /etc/gshadow dosyasında saklandığını hatırlatmakta fayda var.
MD5 şifreli parolalar
Geleneksel olarak Unix parolaları crypt() işlevi kullanılarak şifrelenir. (crypt() işlevi hakkında daha fazla bilgi almak için crypt(3) kılavuz dosyasını okuyabilirsiniz.) Bilgisayarların hızlı gelişimi bu işlevle şifrelenmiş parolaların kolayca kırılabilir hale gelmesine yol açtı. Internet'in ortaya çıkmasıyla parola-kırma görevini çok sayıda düğüme dağıtabilmek mümkün hale geldi. Bir çok 'güncel' dağıtım parolaların daha güçlü MD5 çırpılama algoritmasıyla şifrelenebilmesi seçeneğiyle gelmektedir (MD5 çırpılama algoritmasıyla ilgili ayrıntılı bilgi RFC 1321 adresinden alınabilir). MD5 şifreli parolalar kullanarak parola-kırmanın tamamen önüne geçilemese bile oldukça zorlaştırılır.
Karışıklığı önlemek
Gördüğünüz gibi sisteminizde kullanıcı kimlik kanıtlamasında kullanılacak bilgileri saklamak için farklı yöntemler mevcuttur (MD5 şifrelemesi olmadan gölgelenmiş parolalar, parolaların MD5 ile şifrelenip /etc/passwd dosyasında saklanması, vs.). login veya su gibi programlar parolaları nasıl doğrulayacaklarını nereden biliyorlar? Daha kötüsü, sisteminizde parolaların saklanma biçimini değiştirirseniz ne olur? Parolanıza ihtiyaç duyan programlar parolaların artık farklı biçimde saklandığını nasıl bilecekler? Bu soruların yanıtı bizi PAM'e götürür.
Önceki Üst Ana Başlık Sonraki
Giriş Başlangıç PAM (Eklenebilir Kimlik Kanıtlama Modülleri)
Bir Linux Kitaplığı Sayfası