Pardus Linux’ta /etc/pam.d/ Dizini (Pluggable Authentication Modules – Kimlik Doğrulamanın Kalbi)
1️⃣ PAM Nedir?
PAM (Pluggable Authentication Modules), Linux sistemlerde:
-
Kullanıcı kimlik doğrulama
-
Yetkilendirme
-
Oturum açma/kapatma
-
Parola politikaları
gibi süreçleri merkezi ve modüler bir şekilde yöneten altyapıdır.
📌 Pardus’ta;
-
Terminal
-
Grafik oturum (LightDM / GDM)
-
sudo -
login,ssh -
Samba / AD entegrasyonu
hepsi PAM üzerinden kontrol edilir.
2️⃣ /etc/pam.d/ Dizininin Amacı
Bu dizin, her servis için ayrı PAM kural dosyaları içerir.
Örnek çıktı:
📌 Her dosya = Bir servis için kimlik doğrulama senaryosu
3️⃣ PAM Çalışma Mantığı (Çok Önemli)
Bir PAM kural satırı şu yapıdadır:
🔹 Type (Tür)
| Tür | Açıklama |
|---|---|
auth | Kimlik doğrulama |
account | Hesap geçerliliği |
password | Parola değiştirme |
session | Oturum işlemleri |
🔹 Control (Kontrol Bayrağı)
| Bayrak | Anlamı |
|---|---|
required | Başarısızsa tüm işlem başarısız |
requisite | Anında reddeder |
sufficient | Başarılıysa devam etmez |
optional | Etkisi yok denecek kadar az |
[success=1 default=ignore] | Gelişmiş kontrol |
🔹 Module (Modül)
| Modül | Görev |
|---|---|
pam_unix.so | Yerel kullanıcı |
pam_sss.so | Samba AD / LDAP |
pam_pwquality.so | Parola kalitesi |
pam_limits.so | Kaynak sınırları |
pam_time.so | Saat bazlı giriş |
pam_access.so | IP / kullanıcı kısıtı |
4️⃣ En Önemli Dosyalar (Pardus)
📂 common-auth
➡ Kimlik doğrulamanın merkezi
Örnek:
🔍 Anlamı:
-
Önce yerel kullanıcı
-
Sonra Samba AD
-
Hiçbiri olmazsa → reddet
📌 ETAP 23 + Samba AD için kritik dosya
📂 common-account
➡ Hesap durumu kontrolü
📌
-
Hesap kilitli mi?
-
Süresi dolmuş mu?
-
AD’den mi geliyor?
📂 common-password
➡ Parola politikası
📌 /etc/security/pwquality.conf ile birlikte çalışır.
📂 common-session
➡ Oturum açılış/kapanış işlemleri
📌
-
Kullanıcı başına dosya sınırı
-
Bellek, işlem limiti
-
AD oturum kayıtları
5️⃣ Servise Özel Dosyalar
🔐 sudo
📌 sudo yetkisi PAM üzerinden denetlenir.
🖥️ lightdm (ETAP Grafik Giriş)
📌 Öğretmen / öğrenci oturum ayrımı burada başlar.
🌐 sshd
📌 Uzaktan erişim güvenliği
6️⃣ ETAP 23 için Örnek Senaryolar
🎓 Öğrenciler için:
-
Zayıf parola yasak
-
Gece girişleri kapat
-
Kaynak limiti kısıtlı
➡ pam_pwquality.so
➡ pam_time.so
➡ pam_limits.so
👨🏫 Öğretmenler için:
-
Geniş yetki
-
Zaman kısıtı yok
-
sudoerişimi
➡ Grup bazlı PAM kuralı (AD entegrasyonu)
7️⃣ PAM Dosyaları Düzenlenirken DİKKAT ⚠️
❌ Yanlış bir PAM ayarı:
-
Sisteme hiç kimse giremez
-
Grafik giriş kilitlenir
-
SSH erişimi kapanabilir
🔐 Güvenli çalışma önerileri:
8️⃣ PAM – Samba AD – LeaderAhenk İlişkisi
| Bileşen | Görev |
|---|---|
| PAM | Kimlik doğrulama |
| SSSD | AD / LDAP arayüzü |
| Samba AD | Etki alanı |
| LeaderAhenk | Merkezi politika |
📌 PAM olmadan AD çalışmaz.
9️⃣ Eğitimde Kullanım (Öğretmenler İçin)
Bu konuyu öğrencilere anlatırken:
-
Yetkilendirme mantığı
-
Merkezi güvenlik
-
Kurumsal sistemler
örnekleriyle anlatabilirsiniz.
“Windows Group Policy ne ise Linux’ta PAM + limits + access odur.”
🔚 Sonuç
/etc/pam.d/ dizini:
✔ Pardus’un güvenlik beyni
✔ AD entegrasyonunun temeli
✔ Okul ortamlarında kontrol + disiplin sağlar
✔ Yanlış yapılandırılırsa tam kilitlenme sebebidir
1) TSOMTAL için Hazır PAM Şablonu (SSSD tabanlı)
Kurulum paketleri (Pardus 23.x / Debian taban)
DNS / Saat senkronu (AD için kritik)
-
İstemcinin DNS’i AD DNS’i göstermeli (genelde DC’nin IP’si).
-
Saat farkı 5 dk’yı geçmesin:
Etki alanına katılma
Örnek domain: tsomtal.com (senin önceki kurguya uygun)
SSSD ana dosya: /etc/sssd/sssd.conf
Yetkiler:
NSS doğrulama
/etc/nsswitch.conf içinde şu satırlarda sss olmalı:
PAM “common-*” şablonu (Pardus’ta çoğunlukla include ile çalışır)
Aşağıdaki yaklaşım güvenli: önce yerel kullanıcı, sonra AD/SSSD, en sonda deny.
/etc/pam.d/common-auth
/etc/pam.d/common-account
/etc/pam.d/common-password
(AD tarafında parola politikası zaten varsa genelde AD belirler; yine de yerel kullanıcı için kalite kuralı iyi olur.)
/etc/pam.d/common-session
Not:
pam_mkhomedir.soöğrencilerin/öğretmenlerin ilk girişte/home/kullanicioluşturmasını sağlar.
2) Öğrenci–Öğretmen Zaman Kısıtları (PAM Time)
Bu iş için en temiz çözüm: pam_time.so + /etc/security/time.conf
Kısıtları sadece login/sshd/lightdm gibi giriş servislerine uygula (sudo gibi şeyleri etkileme).
2.1) Zaman tablosu: /etc/security/time.conf
Örnek politika:
-
Öğretmen: 7/24
-
Öğrenci: Hafta içi 07:30–18:00 (örnek)
-
Yerel acil admin: 7/24 (örn.
etapadmin)
@ogretmenve@ogrencigrupları: AD’de güvenlik grubu olarak bulunmalı (ve SSSD üzerinden görünmeli).
2.2) pam_time’ı servislere ekle
Konsol girişi: /etc/pam.d/login
account bölümüne ekle:
SSH: /etc/pam.d/sshd
account bölümüne ekle:
Grafik giriş (ETAP’ta çoğunlukla LightDM): /etc/pam.d/lightdm
account bölümüne ekle:
✅ Böylece zaman kısıtı sadece giriş anında devrede olur, sistemin diğer PAM akışlarını gereksiz bozmaz.
3) PAM + Samba AD Tam Entegrasyon Rehberi (SSSD ile)
Aşağıdaki kontrol listesiyle “tam entegrasyon” sorunsuz tamamlanır.
3.1) AD tarafı hazırlık (öneri)
-
AD’de OU yapın (örnek):
-
OU=TSOMTAL,DC=tsomtal,DC=com -
OU=OGRETMENLER,... -
OU=OGRENCILER,...
-
-
Gruplar:
-
ogretmen -
ogrenci -
(isteğe bağlı)
etap_admin
-
3.2) İstemci doğrulama komutları
3.3) Giriş testi
-
Öğretmen hesabı ile giriş (grafik/ssh)
-
Öğrenci hesabı ile giriş
-
Zaman dışında öğrenci girişinin reddedildiğini doğrula
3.4) Öğrencinin SSH ile girmesini tamamen kapatmak istersen (opsiyonel)
Zaman kısıtına ek olarak “SSH yasak” için pam_access çok pratiktir.
/etc/security/access.conf
/etc/pam.d/sshd içine ekle:
3.5) Geri dönüş (kilitlenmeye karşı emniyet)
Değişikliklerden önce:
Bir şey ters giderse TTY/tek kullanıcı modunda geri alırsın:
Yorumlar