| |||||||
Eklenebilir kimlik kanıtlama modülleri tüm modern linux dağıtımlarında kimlik kanıtlamanın esasını oluşturur.
Linux'un eski güzel günlerinde su, passwd, login ya da xlock gibi bir program bir kullanıcının kimlik doğrulamasını yapmak istediğinde gerekli bilgiyi basitçe /etc/passwd dosyasından okurdu. Kullanıcının parolasını değiştirmek için /etc/passwd dosyasını düzenlemek yeterliydi. Bu basit ama beceriksiz yöntem sistem yöneticileri ve uygulama geliştiricilerini problemlerle karşı karşıya bırakıyordu. MD5 ve gölgelenmiş parolalar popüler oldukça kullanıcı kimlik kanıtlamasına ihtiyaç duyan her programın doğru bilgiyi hangi yöntemle alacağını bilmesi gerekliliği ortaya çıktı. Kullanıcı kimlik kanıtlaması şemanızı değiştirmek isterseniz tüm programları yeniden derlemeniz gerekliydi. PAM bu karmaşayı kullanıcı bilgisinin nasıl saklandığından bağımsız olarak, programların kimlik kanıtlamasını şeffaf bir biçimde yapmalarına izin vererek ortadan kaldırdı.
Linux-PAM Sistem Yöneticisinin Kılavuzu'ndan alıntı: ←Linux-PAM projesinin amacı ayrıcalık verme yazılımları ile güvenli ve uygun kimlik kanıtlama şemalarının gelişimini birbirinden ayırmaktır. Bu, uygulamaların kimlik kanıtlamasında kullanabilecekleri bir fonksiyonlar kütüphanesi sağlanarak gerçekleştirilir.→ PAM sayesinde parolalarınızı /etc/passwd dosyasında veya Hong Kong'daki bir sunucuda tutmanız farketmez. Bir program kullanıcı kimlik kanıtlamasına ihtiyaç duyduğunda, PAM uygun kimlik kanıtlama şeması için fonksiyonları içeren bir kütüphane sunar. Bu kütüphane dinamik olarak yüklendiği için kimlik kanıtlama şemasını değiştirmek için basitçe yapılandırma dosyasını düzenlemek yeterli olur.
Esneklik PAM'in en önemli güçlerinden birisidir. PAM belirli programların kullanıcı kimlik kanıtlaması yapamayacağı, sadece belirli kullanıcıların kimlik kanıtlaması yapabileceği, bazı programlar kimlik kanıtlaması yapmak istediğinde uyarı verecek şekilde ve hatta tüm kullanıcıları oturum açma ayrıcalıklarından mahrum bırakacak şekilde yapılandırılabilir. PAM'in modüler tasarımı kimlik denetimi üzerindeki bütün kontrolü elinize almanıza izin verir.
Neredeyse tüm tanınmış dağıtımlar bir süredir PAM destekliyorlar. Aşağıda PAM destekleyen dağıtımların bir kısmının listesi bulunmaktadır:
Bu liste tam olmadığı gibi hatalı da olabilir. Düzeltmelerinizi ve eklemelerinizi <petehern (at) yahoo.com> gönderirseniz memnun olurum.
Sıfırdan PAM kurulumu bu NASIL'ın kapsamını aşan uzun bir süreçtir. Eğer sisteminizde PAM kurulu değilse, büyük olasılıkla kullandığınız dağıtımın çok eski bir sürümünü kullanıyorsunuz. Dağıtımınızı güncellemeniz için başka nedenler de bulunmasına rağmen güncel bir dağıtım kullanmak yerine PAM kurulumunu kendiniz yapmak istiyorsanız kesinlikle benim yardımıma ihtiyacı olan birisi değilsiniz. Bu nedenlerle sisteminizde PAM kurulu olduğunu kabul edeceğim.
Yeterince konuştum, çalışma zamanı.
PAM yapılandırma dosyaları /etc/pam.d/ dizininde bulunur. (Eğer sisteminizde /etc/pam.d/ dizini yoksa dert etmeyin, sıradaki bölümde ne yapacağınızı anlatacağım) Şimdi bu dizine geçelim ve neler olduğuna bakalım.
~$ cd /etc/pam.d /etc/pam.d/$ ls chfn chsh login other passwd su xlock /etc/pam.d/$ |
Bu dizinin içerdiği dosyalar sisteminize neler kurduğunuza bağlı olarak üç aşağı beş yukarı böyledir. Ayrıntılar ne olursa olsun, sisteminizde kullanıcı kimlik kanıtlamasına ihtiyaç duyan her program için bir dosya görüyor olmalısınız. Tahmin ettiğiniz gibi her dosya bir program için PAM kimlik kanıtlaması yapılandırmasını içerir (other dosyası bir istisnadır, ondan birazdan bahsedeceğiz). Login için PAM yapılandırma dosyasının içeriğine bakalım (dosyanın içeriğini basitleştirdim):
/etc/pam.d/$ cat login # PAM configuration for login auth requisite pam_securetty.so auth required pam_nologin.so auth required pam_env.so auth required pam_unix.so nullok account required pam_unix.so session required pam_unix.so session optional pam_lastlog.so password required pam_unix.so nullok obscure min=4 max=8 |
Dosyanın içeriğine geçmeden önce biraz bilgi vermem gerekir.
Okuyucuların küçük bir kısmı şöyle düşünüyor olmalı; ←Olamaz! Sistemimde /etc/pam.d dizini yok! Yukarıdaki listenizde dağıtımımın PAM içerdiği söyleniyor ama bulamıyorum. PAM olmadan hayatım boş ve anlamsız! Ne yapabilirim?→ Telaşlanmayın, herşey bitmiş değil. Dağıtımınızın PAM içerdiğini bildiğiniz halde /etc/pam.d/ dizini yoksa PAM yapılandırmanız /etc/pam.conf dosyasında saklanıyordur. Birçok dosya kullanmak yerine tüm PAM yapılandırması için tek bir dosya kullanılıyordur. Bu PAM yapılandırmasını biraz karmaşıklaştırır ama uygun ayarlamalar 3.3.4 bölümünde anlatılacaktır.
PAM yapılandırma dosyaları aşağıdaki sözdizimine sahiptir:
type control module-path module-arguments |
Yukarıdaki örnekte login dosyası için verilen yapılandırma dosyasını kullanarak PAM yapılandırma sözdizimine bakalım:
login yapılandırma dosyasında her tür için en az bir girdi olduğunu gördük. Bu program kullanıcıların oturum açmalarına izin verdiğinden (adından anlaşıldığı gibi :), kimlik kanıtlamasının her türlüsüne erişebilmesinin gerekmesi anlaşılabilir bir şeydir.
Login için yapılandırma dosyasında neredeyse tüm kontrol türlerini gördük. En çok ihtiyaç duyulan modül pam_unix.so (temel kimlik kanıtlama modülü), zorunlu tek modül pam_securetty.so (kullanıcının güvenli konsola oturum açtığından emin olmayı sağlar) ve seçimlik tek modül pam_lastlog.so (kullanıcının en son açtığı oturum ile ilgili bilgileri getiren modül).
Eğer PAM yapılandırmanız /etc/pam.d/ dizini yerine /etc/pam.conf dosyasında saklanıyorsa PAM yapılandırma satırları biraz farklıdır. Her servisin kendi yapılandırma dosyası olması yerine tüm yapılandırmalar /etc/pam.conf dosyasında servisin adı ile başlayan satırlardan oluşur. Örneğin /etc/pam.d/login dosyasındaki aşağıdaki satır:
auth required pam_unix.so nulok |
/etc/pam.conf dosyasında şu hale gelir:
login auth required pam_unix.so nulok |
Bu basit farklılıkların dışında, yapılandırmanın geri kalanında PAM sözdizimi uygulanır.
PAM yapılandırması hakkında daha fazla bilgi edinmek ve bütün PAM modül referanslarına ulaşmak için Linux-PAM Sistem Yöneticisinin Kılavuzu'nu kullanabilirsiniz. Bu kılavuz size PAM yapılandırması hakkındaki en güncel referansları sağlar.
| ||||||||||