日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PAM认证机制

發布時間:2023/12/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PAM认证机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、PAM簡介

Sun公司1995年開發的一種與認證相關的通用框架機制,PAM只關注如何為服務驗證用戶的API,通過提供一些動態鏈接庫和一套統一的API,將系統提供的服務和該服務的認證方式分開;PAM只是一個框架而已,自身不做認證。

它提供了對所有服務進行認證的中央機制,適用于login\telnet\rlogin\fsh\ftp\pp\su等應用程序中。

PAM-API 調用認證接口
PAM-SPI 提供認證接口

對應的文件名:pam_xxxx()

PAM認證一般遵循這樣的順序:Service->PAM(配置文件)->pam_*.so,這就是調用機制

二、配置PAM

PAM的目錄:

/lib64/security/pam* 全是pam模塊
/etc/security/ pam模塊的配置文件
/etc/pam.conf? pam主配置文件,默認不存在(不推薦使用)
/etc/pam.d/ pam子配置文件,推薦使用

?

我們查看/etc/pam.d/passwd

  • [root@newhostname 1372]# cat /etc/pam.d/passwd
  • #%PAM-1.0
  • auth include system-auth
  • account include system-auth
  • password substack system-auth
  • -password optional pam_gnome_keyring.so use_authtok
  • password substack postlogin
  • [root@newhostname 1372]#
  • pam.conf文件格式
    1)、第一列為type包括一下項目:
    session
    auth 只負責賬戶的認證和授權
    account 負責賬戶相關,但是是認證之后的
    password 負責用戶修改口令時,口令復雜度檢查
    -type 表示因為缺失二不能加載的模塊將不記錄在日志內:例-password -session

    pam.conf內,每一行,都要經過一次認證

    2)、第二列為control,用來表示如何控制,一般都是簡單實現,即一個關機自
    required 表示一票否決制,本模塊必須返回成功才能通過認證,但如果失敗,繼續檢查,但總體結果已經失敗了。
    requisite 表示一票否決,它和required不同的地方是,不會繼續向下認證,直接返回失敗。
    optional :表明本模塊是可選的,它的成功與否不會對身份認證起關鍵作用,其返回值一般被忽略
    include: 調用其他的配置文件中定義的配置信息
    sufficient:一票通過
    3)、第三列為模塊名
    具體路徑的引用由主配置文件/etc/pam.conf 中定義

    三、PAM模塊示例

    1、模塊:pam_securetty.so

    功能:只允許root用戶在/etc/securetty列出的安全終端上登陸

    例:

  • 允許root在telnet登陸
  • 方法一:
  • [root@newhostname 1372]# vim /etc/pam.d/remote
  • #%PAM-1.0
  • auth required pam_securetty.so
  • auth substack password-auth
  • auth include postlogin
  • account required pam_nologin.so
  • account include password-auth
  • password include password-auth
  • # pam_selinux.so close should be the first session rule
  • session required pam_selinux.so close
  • session required pam_loginuid.so
  • # pam_selinux.so open should only be followed by sessions to be executed in the user context
  • session required pam_selinux.so open
  • session required pam_namespace.so
  • session optional pam_keyinit.so force revoke
  • session include password-auth
  • session include postlogin
  • 注釋auth required pam_securetty.so這一行
  • 方法二:
  • [root@newhostname 1372]# vim /etc/securetty
  • 添加
  • pts/0
  • pts/1
  • pts/2
  • pts/3
  • .
  • .
  • .
  • pts/9
  • 第一種修改方法是直接通過禁用該模塊實現的
  • 第二種方法則是修改pam的規則來實現的
  • 關于如何獲取修改pam模塊的規則的方法,可以通過 man 模塊名來獲得
  • 2、模塊:pam_shells

    功能:檢查有效shell

    例:

  • 不允許使用/bin/csh的用戶本地登錄
  • [root@newhostname 1372]# vim /etc/shells
  • /bin/sh
  • /bin/bash
  • /sbin/nologin
  • /usr/bin/sh
  • /usr/bin/bash
  • /usr/sbin/nologin
  • /bin/tcsh
  • /bin/csh
  • 去掉 /bin/csh
  • useradd –s /bin/csh testuser
  • testuser將不可登錄
  • 3、模塊:pam_nologin.so

    功能:

    如果/etc/nologin文件存在,將導致非root用戶不能登陸
    如果用戶shell是/sbin/nologin 時,當該用戶登陸時,會顯示
    /etc/nologin.txt文件內容,并拒絕登陸

    4、模塊:pam_limits.so

    功能:在用戶級別實現對其可使用的資源的限制,例如:可打
    開的文件數量,可運行的進程數量,可用內存空間

    修改限制的實現方式:

    (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

    <value> 指定具體值

    ?

    示例:pam_limits.so

  • 限制用戶最多打開的文件數和運行進程數
  • 查看 /etc/pam.d/system-auth內是否存在“session required pam_limits.so”
  • vim /etc/security/limits.conf
  • * soft nofile 102400
  • * hard nofile 102400
  • * soft nproc 40960
  • * hard nproc 40960
  • 設置所有人最大打開的進程數為40960
  • 設置雖有人最大打開的文件數為102400
  • ?

    四、總結

    我們只是pam模塊的使用戶,不是開發者,每個模塊的用法各不相同,所以我們要知道如何去尋找pam模塊的幫助,我們可以通過man來查詢模塊的用法,這個是最快的途徑,或者在官網上下載pam模塊的文檔也是一個不錯的選擇。

    pam文檔說明

    /user/share/doc/pam-*
    rpm -qd pam
    man –k pam_模塊名
    man 模塊名 如man rootok

    pam模塊手冊《The Linux-PAM System Administrators’ Guide》

    ?

    轉載于:https://www.cnblogs.com/momenglin/p/8486069.html

    總結

    以上是生活随笔為你收集整理的PAM认证机制的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。