天天看點

nsswitch&PAM認證架構

一、nsswitch概述

  1.nsswitch:network/name  service  switch

      nsswitch網路名稱服務解析是通用架構,與各種類型存儲進行互動的公共子產品化實作;

實作:/usr/lib64/libnss*,/lib64/libnss*

架構子產品:libnss;驅動子產品:libnss_files-

  2.配置檔案:/etc/nsswitch.conf

     (1)格式   

          為每一種用到解析庫的應用通過配置定義其位置,格式======解析庫: store1  store2  …=======

          解析庫可以為檔案、關系型資料管理系統(MySQL)、NIS、LDAP、DNS

例如:passwd: files        密碼通過檔案解析

             hosts: files  dns    hosts通過檔案解析,若沒有再通過dns解析

    (2)查找結果和狀态

           每種種存儲中的查找結果狀态:STATSU => success | notfound | unavail | tryagain

           對應于每種狀态結果的行為(action):return| continue

例子:

hosts:files  nis [NOTFOUND=return]  dns

  3.getent指令:get  entries,從指明庫中查找指定名稱

         getent  DATABASE  [key]

二、PAM概述

  1.pam:pluggableauthenticationmodule,可插入式認證子產品

       通用架構,提供了與各種類型存儲進行互動的公共實作、以及多種輔助類的功能:/lib64/security/*

       提供認證庫有多種類型的存儲:檔案、關系型資料管理系統、LDAP、NIS… ...

nsswitch&PAM認證架構

  2.配置檔案:

   (1)為各種調用了pam的應用提供其專用配置

             通用:/etc/pam.conf,可為每一種調用pam完成認證功能的應用程式提供配置;

             專用:/etc/pam.d/*,通常專用于為某種特定的應用程式提供配置;通常每個應用會使用一個單獨的配置檔案;

   (2)配置檔案格式

通用配置檔案:application    type    control    module-path    module-arguments

專用配置檔案:type    control    module-path  module-arguments

  3.配置檔案格式詳解

      (1)type:檢查的功能類别

  可能使用一個或者多個進行限定認證

auth

賬号的認證和授權;

account

與賬号管理相關的非認證類的功能;

password

使用者修改密碼時密碼複雜度檢查機制;

session

使用者擷取到服務之前或使用服務完成之後需要進行一些附加性操作;

      (2)control:同一種功能的多個檢查之間如何進行組合;

             1)簡單實作:使用一個關鍵詞來定義控制

         required:必須通過檢查;否則,即為失敗;無論成功還是失敗,都需繼續由後續同種功能的其它子產品進行檢查;

         requisite:一票否決;檢測失敗就直接傳回失敗;檢測成功,則由由後續同種功能的其它子產品進行檢查;

         sufficient:一票通過,檢測成功就直接傳回成功;檢測失敗,則由由後續同種功能的其它子產品進行檢查;

         optional:可選的,參考性控制機制;

         include:調用其它配置檔案中的同種功能的檢測機制;

             2)詳細實作:使用一個或多個“status=action”

[status1=action1,status2=action2, ...]

status:傳回狀态

action:采取的行為,比如ok,done, die, bad, ignore, ...

      (3)module-path:子產品檔案路徑;

    相對路徑:相對于/lib64/security/目錄而言;

    絕對路徑:可位于任何可通路路徑;

      (4)module-arguments:子產品的專用參數;

三、pam_limits.so:資源限制

 1.pam_linits.so    

        在使用者級别實作對其可使用的資源的限制,例如可打開的檔案數量,可運作的程序數量,可用記憶體空間;

  2.修改限制的實作方式:

     (1)ulimit指令:用于調整軟限制;

    -n        最多的打開的檔案描述符個數

    -u        最大使用者程序數

    -S        使用 `soft'(軟)資源限制

    -H       使用 `hard'(硬)資源限制

     (2)配置檔案:/etc/security/limits.conf,/etc/security/limits.d/*.conf

  配置檔案:每行一個定義;

 格式:<domain>       <type>  <item>  <value>

<domain>:應用于哪些對象

username

@group

*:所有使用者

<type>:限制的類型

soft:軟限制,普通使用者自己可以修改;

hard:硬限制,由root使用者設定,且通過kernel強制生效;

-:軟硬使用相同限制;

<item>:限制的資源類型

nofile:所能夠同時打開的最大檔案數量;預設為1024;

nproc:所能夠同時運作的程序的最大數量;預設為1024;

繼續閱讀