Linux ortamlarında kullanıcıları yönetirken güvenlik esastır ve her zaman bu amaç için dahili veya harici olarak mevcut en iyi seçenekleri aramalıyız.Linux sistemlerinde güvenliği artırmanın en güvenli yöntemlerinden biri, çok daha verimli bir şekilde yönetmektir. Kullanıcıların sistemde kimliklerinin doğrulanma şekli, bu yalnızca doğru kimlik bilgilerine sahip kullanıcıların sisteme erişmesine izin verir.
Bu durumda, sistem yöneticisinin uygulamaların hangi yolu seçeceğini seçmesinin mümkün olacağı bir dizi kitaplık olarak geliştirilmiş Linux-PAM (Linux için Takılabilir Kimlik Doğrulama Modülleri - Linux için Takılabilir Kimlik Doğrulama Modülleri) adlı bir işlevselliğe sahibiz. yerel ağdaki kullanıcıların kimliğini doğrulayın.
PAM ile uyumlu bir uygulama derlerken, kullanılan kimlik doğrulama mekanizmaları arasında geçiş yapabiliyoruz.
Bu kavramı biraz daha iyi anlamak için, kullanıcıların şu anda kimliklerinin nasıl doğrulandığını analiz edebiliriz, öncelikle kullanıcıya atanan şifre girildiğinde kullanıcının kimliği doğrulanır, bu şifreler / etc / passwd dosyasında saklanır, daha sonra ayrıcalık, UID adı verilen kişisel kullanıcı tanımlayıcısı şeklinde tanımlanır ve her kullanıcının kişisel ve grup kimliğine dayalı olarak mevcut gruplara, hizmetlere ve uygulamalara üyelik sağlanır.
PAM kitaplığı yerel olarak /etc/pam.conf sistem dosyasında veya /etc/pam.d/ dizininde bulunan bir dizi dosyada, yalnızca yerel olarak kullanılabilen Kimlik Doğrulama modülleri aracılığıyla bir kullanıcı isteğinin kimliğini doğrulamak için yapılandırılır.
Modüller / lib / security veya / lib64 / security dizininde bulunur. /etc/pam.conf yapılandırma dosyası sözdizimi bir kurallar listesinden oluşur ve her kural tek bir satırda bulunur, ancak `\' ile biten bir satırla genişletilebilir. Yorumlardan önce '#' işaretleri gelir ve seçilen satırın bir sonraki sonuna kadar uzanır.
Her kuralın biçimi, boşluklarla ayrılmış bir sekmeler topluluğudur, ilk üçü şu şekilde büyük/küçük harfe duyarlı değildir:
servis tipi kontrol modülü yolu modül argümanlarıKullanılan parametreler şunlardır:
HizmetUygulamanın gerçek adıdır.
TipModül/bağlam/arayüz tipidir.
KontrolModülün kimlik doğrulama görevini yerine getirememesi durumunda PAM API'sinin davranışını ifade eder.
Modül yoluBu, PAM'nin mutlak dosya adı veya göreli yoludur.
modül argümanlarıModülün davranışını kontrol etmek amacıyla boşlukla ayrılmış bir belirteçler listesini gösterir.
/etc/pam.d/ içindeki her dosyanın sözdizimi aynıdır ve aşağıdaki yapıya sahip satırlardan oluşur:
tip kontrol bayrağı modülü modülü argümanlarıÖrneğin, /etc/pam.d/sshd dosyasında bulunan ve / etc / nologin kullanılabilir olduğunda kök dışı oturum açmalara izin vermeyen bir kural tanımı (modül bağımsız değişkenleri olmadan):
hesap gerekli pam_nologin.so
1. Linux'ta PAM Kontrolleri ve Grupları Nasıl Yönetilir
PAM kimlik doğrulama görevleri, bu grupların her biri bir kullanıcının kısıtlı bir hizmet talebinin farklı yönlerini yöneten dört ayrı yönetim grubuna ayrılmıştır.
Bir modül, bu yönetim gruplarından biriyle aşağıdaki şekilde ilişkilendirilir:
hesapBu değer, kullanıcı parolasının süresinin dolması veya kullanıcının talep edilen hizmete erişmesine izin verilip verilmediği gibi hususlarla hesabın doğrulanmasına yönelik hizmetler sunar.
kimlik doğrulamaBu değerle bir kullanıcının kimliği doğrulanır ve kullanıcı kimlik bilgileri yapılandırılabilir.
parolaKullanıcıların parolaları güncellemesine olanak tanır ve PAM kimlik doğrulama modülleriyle entegredir.
oturum, toplantı, celseBu, bir oturumun başında ve sonunda gerçekleştirilen eylemleri yönetmekten sorumludur.
PAM nesne dosyaları, kullanılan mimariye bağlı olarak aşağıdaki dizinde / lib / güvenlik / veya / lib64 / güvenlik bulunur.
PAM'de desteklenen kontrol bayrakları şunlardır:
gerekliBu gösterge ile, hata anında kontrolü uygulamaya geri vererek birinci modülün arızasının niteliğini gösterir.
gereklidirTüm modüllerin libpam'in doğru çalışması ve uygulamaya başarı döndürmesi için gerekli olduğu belirtilir.
yeterliBu modül, uygulamanın anında ve doğru bir şekilde geri dönmesine yol açar, bu durumda bu modülün arızası göz ardı edilir.
isteğe bağlıBu modülün başarısı veya başarısızlığı genellikle bu göstergede kaydedilmez.
Aşağıdakiler gibi başka değerler de vardır:
Dahil etmekBu kontrol için bir argüman olarak belirli yapılandırma dosyasına dayalı türün tüm satırlarını içerir.
alt yığınBu özel denetime bir bağımsız değişken olarak belirtilen yapılandırma dosyasından verilen türdeki tüm satırları içerir.
2. Linux'ta bir programın PAM ile uyumlu olduğu nasıl doğrulanır?
Bir uygulamada PAM uygulamak için, özellikle PAM kullanmak üzere yazılmış ve derlenmiş olmalıdır, bu uygulamanın uyumlu olup olmadığını kontrol etmek için, örneğin SSH, aşağıdakileri uygulayacağız:
sudo ldd / usr / sbin / sshd | grep libpam.so
BÜYÜT
3. Linux'ta PAM ile SSH üzerinden kök erişimi nasıl kısıtlanır
PAM, SSH ve oturum açma programları aracılığıyla bir sisteme kök kullanıcı erişimini devre dışı bırakmak için kullanılabilir ve bu, sistemin güvenlik seçeneklerini artırmaya yardımcı olur.
Bunu yapmak istiyorsak, belirli hesapların ayrıcalıklarını sınırlama seçeneği sunan /lib/security/pam_listfile.so modülünü kullanacağız.
Aşama 1
Bu eylemi gerçekleştirmek için /etc/pam.d/ dosyasına aşağıdaki gibi erişeceğiz:
sudo nano /etc/pam.d/sshdVEYA
sudo nano /etc/pam.d/loginAdım 2
Orada şunları göreceğiz:
BÜYÜT
Aşama 3
Bu durumda, sonuna aşağıdaki satırları ekleyeceğiz:
auth gerekli pam_listfile.so \ onerr = başarılı öğe = kullanıcı duygusu = dosyayı reddet = / etc / ssh / reddedilen kullanıcılar
BÜYÜT
Bu durumda, aşağıdaki parametreler eklenmiştir:
yetkiKullanılacak modül türüdür
gereklidirModül kullanılıyorsa, diğer modüllerin durumundan bağımsız olarak, geçilmesi gereken veya genel sonucun başarısız olacağı bir kontrol bayrağıdır.
pam_listfile.soİsteğe bağlı bir dosyaya dayalı hizmetleri reddetmesine veya izin vermesine izin verilen bir modüldür.
onerr = başarılıModülün argümanıdır.
öğe = kullanıcıDosyada listelenenlerin belirtildiği ve doğrulanması gereken modülün argümanıdır.
anlam = inkarDosyada bulunuyorsa yapılacak işlemin belirtildiği, yoksa tersi işlemin istendiği modülün argümanını ifade eder.
dosya = / etc / ssh / reddedilen kullanıcılarHer satırda bir eleman içeren bir dosyanın belirtildiği modülün argümanıdır.
Ctrl + O tuşlarını kullanarak değişiklikleri kaydediyoruz ve Ctrl + X tuşlarını kullanarak editörden çıkıyoruz.
Bundan sonra / etc / ssh / reddeusers dosyasını oluşturmalı ve içine kök kullanıcıyı eklemeli ve daha sonra ilgili izinleri atamalıyız:
sudo chmod 600 / etc / ssh / reddedilen kullanıcılar
4. Linux'ta PAM'yi Gelişmiş Yapılandırma
Özel bir değer, PAM'deki varsayılan değerdir, bu nedenle tüm değerler açıkça belirtilmez, bu nedenle, değerN, satırın tanımlandığı modülde çağrılan işlevin dönüş koduna karşılık gelir.
Eylemin aşağıdaki gibi bazı argümanları vardır:
aldırmamakBu eylemin bir modül yığını ile kullanılması durumunda, modülün dönüş durumu uygulamadan bir dönüş kodu oluşturmaz.
kötüDönüş kodunun, kullanılan modülün arızalarının göstergesi olarak değerlendirilmesi gerektiğini belirtir.
ölmekKötü ile aynı işlevi yerine getirir, ancak modül yığınını sonlandırabilir ve PAM hemen uygulamaya döner.
tamam aşkımBu değer, PAM'e sistem yöneticisinin bu dönüş kodunu doğrudan tam modül yığınının dönüş koduna kullanacağını söyler.
tamamlamakTamam ile aynı rolü yerine getirir, ancak modül yığınını sonlandırabilir
n(işaretsiz bir tamsayı) - Tamam'a eşdeğerdir, ancak yığındaki sonraki N modülün üzerinden atlayabilir.
SıfırlaBu parametrenin kullanılması, tüm modül yığın durumu belleğini siler ve bir sonraki modül yığını ile yeniden başlar.
PAM temel sözcüklerinin her biri, gerekli; gerekli; yeterli ve isteğe bağlı olarak, aşağıdakiler gibi daha karmaşık kurallar yazmanın mümkün olacağı […] sözdizimi açısından eşdeğer bir ifadeye sahip olun:
gereklidir[başarı = tamam new_authtok_reqd = tamam yoksay = varsayılanı yoksay = kötü]
gerekli[başarı = tamam new_authtok_reqd = tamam yoksay = varsayılanı yoksay = öl]
yeterli[başarı = yapıldı new_authtok_reqd = varsayılan yapıldı = yoksay]
isteğe bağlı[başarı = tamam new_authtok_reqd = tamam varsayılan = yoksay]
Aşama 1
Örneğin, CentOS 7'de aşağıdakileri yürüterek PAM dosyasının kurallarını görebiliriz:
sudo nano /etc/pam.d/postlogin
BÜYÜT
Adım 2
Dosyaya erişirsek:
sudo nano /etc/pam.d/smartcard-auth
BÜYÜT
Daha fazla PAM yardımına erişmek için şunları yürütebiliriz:
adam pam.dPAM ile Linux'ta kimlik doğrulama süreçlerinin daha iyi yönetimi için kurallar oluşturmak veya düzenlemek mümkün olacaktır.