Tümünü birden denemek
Önceki Kullanıcı Kimlik Kanıtlama NASIL Sonraki
Tümünü birden denemek
Bu bölümde bir önceki bölümde anlatılanların anlaşılmasına yardımcı olacak basit bir örnek vereceğim.
Apache + mod_auth_pam
Örneğimizde PAM kullanarak web sunucunuzun kullanıcılarının kimlik denetimini yapmak üzere bir Apache modülü olan mod_auth_pam'i kurup yapılandıracağız. Örneğin hedefine ulaşabilmesi için kurulu bir Apache'niz olduğunu kabul edeceğim. Eğer kurulu değilse dağıtımınızın kurulum paketlerinden yararlanabilirsiniz.
Örnek
Kullanıcılarımızın kimlik denetimini PAM ile yapabilmek için hedefimiz web sunucumuzda kısıtlı bir aile/ dizini yapılandırmak olacak. Bu dizin özel aile bilgileri içerecek ve sadece “aile” grubunun üyeleri tarafından erişilebilir olacak.
mod_auth_pam kurulumu
İlk olarak mod_auth_pam paketini indirmek isteyeceksiniz. Aşağıdaki komutlarla (root olarak) mod_auth_pam derlenebilir:
~# tar xzf mod_auth_pam.tar.gz
~# cd mod_auth_pam-1.0a
~/mod_auth_pam-1.0a# make
~/mod_auth_pam-1.0a# make install
mod_auth_pam modülünü yüklerken bir hata ile karşılaşırsanız dağıtımınızın apache-dev paketini kurup kurmadığınızı kontrol edin. mod_auth_pam kurulduktan sonra apache'yi yeniden başlatmanız gerekir. Bunu aşağıdaki komutla (yine root olarak) yapabilirsiniz:
~# /etc/init.d/apache restart
PAM Yapılandırması
Apache için PAM yapılandırması /etc/pam.d/httpd dizininde saklanır. Öntanımlı yapılandırma (mod_auth_pam kurulumunda yapılan yapılandırma) güvenlidir ama birçok sistemde kurulu olmayabilen pam_pwdb.so modülünü kullanır. (Ayrıca, sıfırdan yapılandırmak eğlencelidir!) Bu nedenle /etc/pam.d/httpd dosyasını silin ve yeni bir tanesiyle başlayın.
PAM'in nasıl yapılandırılacağına karar vermek
Eğer PAM Apache'nin kimlik kanıtlama isteklerine yanıt verecek şekilde yapılandırılacaksa PAM'in tam olarak neyi denetlemesine ihtiyacımız olduğunu bilmeliyiz. İlk olarak PAM kullanıcının parolasının standart unix parola veritabanındaki parola ile aynı olup olmadığına bakmalıdır. Bu 'auth' türüne ve pam_unix.so modülüne benzer. Modülün denetim türünü 'required' olarak atayacağız. Bu sayede doğru parola girilmez ise kimlik denetimi başarısız olacaktır. /etc/pam.d/httpd dosyamızın ilk satırı aşağıdaki gibi olmalıdır:
auth       required        pam_unix.so
İkinci olarak, kullanıcı hesabının geçerli olduğundan (yani parolasının süresinin geçmediğinden veya bunun gibi bir uyumsuzluk olmadığından) emin olmalıyız. Bu 'account' türüdür ve pam_unix.so modülü ile sağlanır. Yine bu modülün denetim türünü 'required' olarak atayacağız. Bu satırı da ekledikten sonra /etc/pam.d/httpd yapılandırma dosyamız aşağıdaki hale gelir:
auth       required        pam_unix.so
account    required        pam_unix.so
Çok karışık değildir ama görevini yapar. PAM servislerini nasıl yapılandıracağınızı öğrenmek için iyi bir başlangıç olabilir.
Apache'nin Yapılandırılması
Artık PAM, apache isteklerinin kimlik denetimini yapacak şekilde yapılandırıldı. Bundan sonra apache'yi aile/ dizinine erişimi kısıtlaması için PAM kimlik kanıtlamasını kullanacak şekilde yapılandıracağız. Bunu yapabilmek için, aşağıdaki satırları httpd.conf dosyanıza (genellikle /etc/apache/ ya da /etc/httpd dizininde bulunur) ekleyin:
<Directory /var/www/family>
  AuthPAM_Enabled on
  AllowOverride None
  AuthName "Aile Sirlari"
  AuthType "basic"
  require group aile
</Directory>
/var/www/ ifadesini web sunucunuzun kök dizini ile değiştirmelisiniz. Bu dizin bazen /home/httpd/ olabilmektedir. Her nerede olursa olsun, içinde aile dizinini oluşturmalısınız.
Kurulumu denetlemeden önce Apache yapılandırmasına yukarıda eklediklerinizi açıklayayım. <Directory> ifadesi yapılandırmanın sadece bu dizin için geçerli olması için kullanılır. Bu ifadenin içinde PAM kimlik denetimini etkinleştirdik (AuthPAM_enabled on), başka bir yapılandırmanın önceliği olmasını engelledik (AllowOverride none), bu kimlik denetim alanını “Aile Sirlari” olarak adlandırdık (AuthName “Aile Sirlari”), http kimlik kanıtlamasını (PAM değil) öntanımlı olarak atadık (AuthType “basic”) ve gerekli kullanıcı grubu olarak aile'yi atadık (require group aile).
Kurulumun Denetlenmesi
Herşeyi gerektiği gibi kurduk, artık kutlama zamanıdır. Tercih ettiğiniz web tarayıcısını çalıştırın ve http://sizin-alaniniz/aile/ adresini (sizin-alaniniz yerine kendi alanınızın adını yazın) açın. Tebrikler, başardınız!
Önceki Üst Ana Başlık Sonraki
Kullanıcı Kimlik Denetimini Güvenli Hale Getirmek Başlangıç Kaynaklar
Bir Linux Kitaplığı Sayfası