Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Linux PAM Modülü

PAM (Pluggable Authentication Modules), servislere göre farklı kimlik denetleme yöntemleri belirleyebilmeyi sağlayan bir sistemdir.

Linux dağıtımlarında 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ı (kullanıcının gerçek adı, telefon numarası vb. bilgiler), ev dizini ve tercih ettiği kabuk bilgileri bulunur.

Bir sistemde gölgelenmiş parolalar aktif edildiğinde  /etc/passwd  dosyasındaki parola alanına x yazılır.

passwd

 

Kullanıcının gerçek şifrelenmiş parolası  /etc/shadow  dosyasında saklanır.

shadow

Login veya su gibi programlar parolaları nasıl doğrulayacaklarını nereden bildiğini veya sistemdeki parolaların saklanma biçimini değiştirirseniz neler olacağını öğrenmek için PAM e bakalım.

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, iki bileşenden oluşmaktadır:

  • Biri API ( Application Programming Interface – Uygulama Programlama Arayüzü ) sağlar.
  • Diğeri kimlik denetimini gerçekleştirir.

PAM modülleri 4 farklı görev için kullanılmaktadır. Bu görevler;

  • kimlik denetim yönetimi,
  • hesap yönetimi,
  • oturum yönetimi
  • şifre yönetimi.

Önemli pam modülleri ; pam_unix, pam_nologin, pam_ldap, pam_securetty, pam_limits, pam_access, pam_warn, pam_deny, pam_permit olarak sayabiliriz.

 

Pam_limits modülünü inceleyecek olursak;

limitconf

Kişi / Grup : @student – user

Kısıtlama : soft – hard

Kaynak : core – rss – nproc

Değer : 0 – 100000 – 20 – 50

Tanımlamalar ;

core : Core dosyasının boyutu (KByte)

data : Kullanıcının çağırdığı programlarda ayrılacak maksimum hafıza (KByte)

fsize : Kullanıcı en büyük kaç KB’lık dosya yaratabilir.

nofile : Aynı anda açılabilecek dosya sayısı.

nproc : Maksimum uygulama sayısı.

rss : KByte cinsinden hafıza kaplacak yer.

maxlogins : Sisteme aynı anda kaç kere login olabilir.

soft : kullanıcı kendine göre tanımlayabilir.

hard : son limitler, kullanıcılar değiştiremez.

NOT : @ işareti grubu ifade eder, “*” ise tümü demektir.

 

 PAM yapılandırması

  • Her servis için ayrı olan yapılandırma dosyaları /etc/pam.d dizini altında olmalıdır.etcpam

 

  • Tüm yapılandırma tek bir dosyada tutulur ve bu dosya  /etc/pam.conf dosyasıdır.etcpamconf

 

PAM SSH Servisi Konfigürasyon Örneği

PAM, sunucunuza erişimi zorlaştırmanın ve ekstra güvenlik kuralları sağlamanın yollarından biridir. Sunucunuza hangi kullanıcıların erişebileceğini belirlemek için alternatif bir çözümdür.

sshd

  1.  PAM Modül Tipi

  • Auth : Kullanıcı doğrulama, kimlik denetetimi yapar.
  • Account: Kullanıcının sisteme girebileceği saatlerin belirlenmesi, bir kullanıcının en fazla kaç oturum açabileceği gibi bilgileri kontrol eder. Kullanıcının servise erişmeye izni olup olmadığını, parolasının süresinin geçip geçmediğini tespit eder.
  • Session:Kullanıcının oturumu sırasında ve oturum sonrasında yapılması gereken rutin işlemleri kontrol eder. (şifre kaydetme, mount etme vs.)
  • Passwd:Kullanıcının kimlik denetimi verilerinin güncellenmesini denetler.

 

  1. PAM Kontrol Bayrağı – Denetim:

  • Required:PAM kimlik kanıtlamasını reddetmeden önce bu servis için listelenmiş diğer modülleri denemeye devam etse de; sonuç kimlik kanıtlamasının reddi ile başarısızlık olur.
  • Requisite:“required” seçeneğinden  farklı olarak, eğer bir modül başarısız olursa işlemin başarısız olduğu uygulamaya hemen bildirilir. Derhâl reddedilir.
  • Sufficient:“Sufficient”, kontrol bayrağına sahip bir modül başarılı olduğu takdirde, önceki modüllerde başarısız olsa bile, işlemin başarılı olduğu uygulamaya bildirilir.
  • Optional:“Optional” kontrol bayrağına sahip bir modülün başarısı veya başarısızlığı işlemin başarısını etkilememektedir.

 

  1. PAM Modül Dosyalarının Yeri:

  • PAM modülünün sistem içindeki yerini, dizinini belirtir. PAM, hangi modülü kullanacağını ve modülleri nerede bulacağını burada verilen yol sayesinde bilir. Çoğu yapılandırma sadece modülün adını içerir. Böyle durumlarda, PAM öntanımlı PAM modül dizinine bakar, bu normalde/usr/lib/security

 

  1. PAM Arguments (Modül Argümanları):

    Modüle gönderilecek olan argümanlar, modüllerin parametreleridir. Her modülün, kendi parametresi vardır. Örnek olarak; en çok kullanılan modüller şu şekilde sıralanabilir.

pam_unix.so temel kimlik kanıtlama modülüdür. Bu modüle “null ok” parametresi gönderilirse, boş parola geçerli anlamına gelir.
pam_warn.so sistem günlüklerine uyarı mesajı kaydeder.
pam_deny.so kimlik denetimini reddeder.
pam_rootok.so kimlik denetimi yapılırken kullanıcının root olup olmadığını kontrol eder.
pam_securetty.so  kullanıcının güvenli konsola oturum açtığından emin olmayı sağlar.
pam_lastlog.so  kullanıcının en son açtığı oturum ile ilgili bilgileri getiren modüldür.

 

Sudo Komutunun Engellenmesi

Linux işletim sistemlerinde root olarak eylem yapabilmeyi sağlayan sudo komutu /etc altındaki “sudoers” dosyasında yapılan değişikliklerle engellenebilir.

Sudoers dosyasının içerisindeki; sudo komutunun çalışmasını sağlayan satırın önündeki yorum işareti kaldırılırsa, sudo komutunu çalıştırma izni sadece “wheel” grubundaki kullanıcılara verilmiş olur.

# wheel    ALL=(ALL)    ALL

etcsudoers

NOT: Kullanılan linux dağıtımında böyle bir yorum satırı olmayabilir, böyle durumlarda satır dosyaya eklenmelidir.

 

Örnek Senaryo: Root hariç diğer kullanıcıların belirli zamanlarda login işlemini yapabilmelerine izin verelim.

Bu erişim yetkilendirme için bize zaman kısıtlamaları sunan pam_time modülünü kullanalım. Pam_time modülü yapılandırma dosyası /etc/security  altındaki  time.conf dosyasıdır.

Not: Başka yollar denemek isterseniz pam_time’a benzeyen pam_access ve  pam_listfile modüllerine bakabilirsiniz.

Aşağıda görüldüğü gibi time.conf dosyasında,

login ; tty* & !ttyp* ; !root ; !WdSu0000-2400

login islemi için root hariç diğer tüm kullanıcılar haftanın pazar günü hariç giriş yapılabilsin, demek istiyorum. Hangi gün istiyorsanız WdMo, WdSa  şeklinde Wd(weekend) ve günün ilk 2 harfi şeklinde veya tüm zamanlar için Al şeklinde yazabilirsiniz.

timeconf

Ayrıca /etc/pam.d altında login dosyasına ek olarak account satırı ekliyoruz.

tmmm

Ve komut satırından deneme kullanıcısı için login olmak istediğimizde erişim kısıtlamasıyla karşılaşıyoruz.

permissndenied

Kaynaklar:

http://linux.die.net/man/5/time.conf

http://linux.yorenet.com/?hn=483&kn=241&dil=tr&kw=Daha+Guvenli+SSH+Baglantilari

http://dincer.info/yazi/linux-pam-ile-kimlik-denetimi


About CanYouPwnMe

Hero!

Follow Me