Linux-PAM認證模組

來源:互聯網
上載者:User

標籤:

Linux-PAM認證模組  

 

  

使用者訪問伺服器的時候,伺服器的某一個服務程式把使用者的誰請求發送到PAM模組進行認證。對於不同的伺服器應用程式所對應的PAM模組也是不同的。如果想查看某個程式是否支援PAM認證,可以用ldd命令進行檢查:

例如:查看sshd是不是支援PAM模組認證:

由於在程式模組裡連結了libpam.so.0 =< /lib/libpam.so.0 ,說明此程式可以進行PAM認證。

當一個伺服器請求PAM模組的時候,PAM本身是不提供服務驗證的,它是調用其它的一群模組來進行伺服器請求驗證,這樣的檔案全放在了/lib/security中。具體到哪一個服務使用哪一種具體的模組,這是由具體的PAM服務檔案定義的(/etc/pam.d/).

[[email protected] root]# ls /etc/pam.d/
authconfig      neat                      redhat-config-network        su
chfn            other                       redhat-config-network-cmd    sudo
chsh            passwd                    redhat-config-network-druid  system-auth
halt            poweroff                   rhn_register                 up2date
internet-druid  ppp                       setup                        up2date-config
kbdrate         reboot                    smtp                         up2date-nox
login           redhat-config-mouse   sshd

PAM服務檔案

1、# more /etc/pam.d/login 
auth       required     pam_securetty.so
auth       required     pam_stack.so service=system-auth
auth       required     pam_nologin.so
account    required     pam_stack.so service=system-auth
password   required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
session    optional     pam_console.so

PAM服務檔案的格式(四部分)

Module-type control-flag module-path arguments
Module-type: auth、account、session、password Control-flag:required、requisite、sufficient、optional eg: 
   auth         required     pam_securety.so
auth required pam_stack.so   service=system_auth
Module-type(屬於認證裡面的第一部分,主要是分配許可權)auth:認證、授權(檢查使用者的名字、密碼正確與否);account:檢查使用者的帳戶是否到期、禁用等。session:控制會話password:控制使用者修改密碼過程 Control-flag (屬於認證裡面的第二部分,控制標識位)required:必須通過此認證,否則不再往下認證下去,直接退出;requisite:必須通過認證,但以後還有機會,可以往下認證;sufficient:一經通過,後面的不再認證(只要通過這個條件則直接通過);optional:可選的,通不通過均可。                                            常用的PAM服務檔案  1)、login ----    /etc/pam.d/login     2)、ipop3d ---  /etc/pam.d/pop 3)、ftp  ----  /etc/pam.d/ftp   或   vsftpd -- /etc/pam.d/vsftpd 4)、sshd--- /etc/pam.d/sshd    5)、su --- /etc/pam.d/su    6)、imap--- /etc/pam.d/imcp                                                                                                    認證堆棧 

①、auth              required        pam_securety.so
②、auth              required        pam_stack.so         service=system-auth
③、auth              required        pam_nologin.so

如果 號認證結束,則在後面有個結束標誌,轉到下一個認證即 號認證,依次類推,相同類型的認證會放在一起進行。其中pam_stack.so調用一個子模組服務,通過這個服務再調用一個第三方的模組進行認證授權。                                                 常用PAM模組1)、pam_access.so    控制訪問者的地址與帳號的名稱2)、pam_listfile.so     控制訪問者的帳號名稱或登陸位置3)、pam_limits.so      控製為使用者指派的資源4)、pam_rootok.so   對管理員(uid=0)無條件通過5)、pam_userdb.so   設定獨立使用者帳號資料庫認證如下:

[[email protected] root]# cd /etc/pam.d/
[[email protected] pam.d]# more login
#%PAM-1.0
auth       required     pam_securetty.so
auth       required     pam_stack.so service=system-auth
auth       required     pam_nologin.so
account    required     pam_stack.so service=system-auth
password   required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
session    optional     pam_console.so
[[email protected] pam.d]# cd /usr/share/doc/pam-0.75/txts/
[[email protected] txts]# ls
pam_appl.txt               README.pam_ftp          README.pam_shells
pam_modules.txt          README.pam_limits       README.pam_stack
pam.txt                      README.pam_listfile      README.pam_stress
README                     README.pam_localuser   README.pam_tally
README.pam_access    README.pam_mail         README.pam_time
README.pam_chroot    README.pam_nologin     README.pam_timestamp
README.pam_console   README.pam_permit      README.pam_unix
README.pam_cracklib   README.pam_pwdb       README.pam_userdb
README.pam_deny      README.pam_rhosts      README.pam_warn
README.pam_env        README.pam_rootok     README.pam_wheel
README.pam_filter      README.pam_securetty  README.pam_xauth
[[email protected] txts]# more README.pam_securetty
pam_securetty:
        Allows root logins only if the user is logging in on a
        "secure" tty, as defined by the listing in /etc/securetty

        Also checks to make sure that /etc/securetty is a plain
        file and not world writable.

        - Elliot Lee , Red Hat Software.
                July 25, 1996.
[[email protected] txts]# more /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
[[email protected] txts]# more /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      /lib/security/$ISA/pam_env.so
auth        sufficient    /lib/security/$ISA/pam_unix.so likeauth nullok
auth        required      /lib/security/$ISA/pam_deny.so

account     required      /lib/security/$ISA/pam_unix.so

password    required      /lib/security/$ISA/pam_cracklib.so retry=3 type=
password    sufficient    /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password    required      /lib/security/$ISA/pam_deny.so

session     required      /lib/security/$ISA/pam_limits.so
session     required      /lib/security/$ISA/pam_unix.so
[[email protected] txts]# pwd
/usr/share/doc/pam-0.75/txts
[[email protected] txts]# more README.pam_nologin
# $Id: README,v 1.1.1.1 2000/06/20 22:11:46 agmorgan Exp $
#

This module always lets root in; it lets other users in only if the file
/etc/nologin doesn‘t exist.  In any case, if /etc/nologin exists, it‘s
contents are displayed to the user.

module services provided:

        auth            _authentication and _setcred (blank)

Michael K. Johnson
[[email protected] txts]# touch /etc/nologin
[[email protected] txts]# useradd leekwen
[[email protected] txts]# passwd leekwen
Changing password for user leekwen.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[[email protected] txts]# ssh [email protected]
[email protected]‘s password:
Permission denied, please try again.
[email protected]‘s password:
Permission denied, please try again.
[email protected]‘s password:
Permission denied (publickey,password,keyboard-interactive).
[[email protected] txts]# rm /etc/nologin
rm: remove regular empty file `/etc/nologin‘? y
[[email protected] txts]# ssh [email protected]
[email protected]‘s password:
[[email protected] leekwen]$ pwd
/home/leekwen
[[email protected] leekwen]$ exit
logout
Connection to 192.168.0.188 closed.
[[email protected] txts]# cd /etc/pam.d/
[[email protected] pam.d]# more login
#%PAM-1.0
auth       required     pam_securetty.so
auth       required     pam_stack.so service=system-auth
auth       required     pam_nologin.so
account    required     pam_stack.so service=system-auth
password   required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
session    optional     pam_console.so 
[[email protected] pam.d]# tty
/dev/pts/2
[[email protected] pam.d]# ls /dev/tty1
/dev/tty1

Linux-PAM認證模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.