Issuu on Google+

10/15 Linux  PAM ( Pluggable Authentication Module,可插入式認證模組 ) 

相關檔案:

1.

PAM 認證模組設定檔:/etc/pam.d/ program_name

2.

PAM 模組全域設定檔:/etc/security/*

3.

PAM 函式:/lib/libpam*.so

4.

PAM 認證模組:/lib/security/*.so

( PAM 核心 )

在圖二的流程圖中,是說明應用程式會先去呼叫 PAM 函式,然後再由其去讀取 /etc/pam.d/ 目錄下的 PAM 模組設定檔,並依序載入檔案中所指定的 PAM 模組, 而這些模組是以在設定檔中所設定的順序依序被堆疊起來。

出處:http://www.suse.url.tw/sles10/lesson20.htm


Modules types: 1.

auth

帳號、密碼檢查

2.

account

帳號檢查 ( 權限是否符合 )

3.

session

建立連線前後,相關資源控制

4.

password

更新密碼資訊

Control

flags:

1.

required

成功、失敗 → 執行;有失敗就回傳失敗

2.

requisite

成功 → 執行,失敗 → 不執行;有失敗就回傳失敗

3.

sufficient

成功 → 不執行,失敗 → 執行,不回傳;

4.

optional

不一定執行;不回傳

#which login #ldd

/bin/login

#cat

/etc/pam.d/login

#man

pam_securetty

ldd 能夠顯示可執行模組的 dependency 透過模組設定檔知道 login 使用哪些模組 查詢模組手冊

( 若查詢不到手冊,還可以到 /usr/share/doc/packges/pam/modules 裡找 ) #cat #man

/etc/securetty pam_nologin

pam_securetty 會檢查此內容來允許或拒絕登入 若有 /etc/nologin 此檔案,則除 root 外,其他 人拒絕登入


限制 user1 不能在星期五 02:00am~04:00am 登入 tty4 #vi

/etc/pam.d/login account

#vi

required pam_time.conf

/etc/security/time.conf

login; tty4;user1;!fr0200-0400 

更改密碼最小長度 PAM 模組設定檔的設定格式

#vi

/etc/pam.d/common-password

password 

required

加入參數

/etc/security/pam_pwcheck.conf

password:

nullok

use_cracklib

no_obscure_checks

限制使用者開啟的檔案數量 ( 小於 12 則無法登入 ) #vi

/etc/security/limit.conf

user1 

minlen=8

不檢查密碼強度 #vi

pam_pwcheck.so nullok

hard

nofile 10

sudo 的執行僅需要自己的密碼即可。由於 sudo 可以讓你以其他用戶的身份執行 指令 ( 通常是使用 root 的身份來執行指令 ) ,因此並非所有人都能夠執行 sudo, 而是僅有規範到 /etc/sudoers 內的用戶才能夠執行 sudo 這個指令。


#visudo

( = vi

/etc/sudoers )

# user1 使用者帳號

server1=/etc/init.d/apache2 來源主機名稱

>sudo /etc/init.d/apache2 

status

測試 user1 是否可以用 sudo 執行

預設安全原則的存放位置:/etc/default/ #vi

/etc/default/useradd

INACTIVE = -1

帳號不停用 ( 密碼到期後 )

EXPIRE = 2012-01-01

帳號到期日

SKEL = /etc/skel

( skeleton,框架 )

CREATE_MAIL_SPOOL = yes #mkdir /etc/skel/uc103

建立使用者郵件存放位置

在框架下新增一個資料夾,看新增的使用者的家目錄 是否是套用此框架

#useradd #ll #cat #cd 

#vi

-m user2

/home/user2

user2 家目錄內是否有多一個 uc103 資料夾

/etc/shadow /var/spool/mail

查看 user2 的帳號到期日 ( 第八個欄位會多一個值 ) 查看此路徑底下是否有多出 user2 的資料夾

/etc/login.defs

FAIL_DELAY

30

當登入帳號密碼錯誤時,需等 30 秒


PASS_MAX_DAYS #pwunconv

60

密碼需要重新變更的天數

將 /etc/shadow 內的密碼欄資料寫回 /etc/passwd 當中, 並 且刪除 /etc/shadow 檔案

#pwconv

#cat #vi

將 /etc/passwd 內的帳號與密碼,移動到 /etc/shadow 當中

/etc/shadow

可看到大家的第五個欄位都改成 60

/etc/hushlogins

設定指定帳號看不到登入後的訊息

user2 

#wall #mesg

abc.txt n

#finger user1

發佈 abc.txt 2 的內容給大家看 不要收到其他人發的訊息,除了 root 外 查看其他使用者的資訊


 ACLs ( Access Control Lists,存取控制清單 ) 主要的目的是在提供傳統的 owner、group、others 的 read、write、execute 權限 之外的細部權限設定。ACL 可以針對單一使用者,單一檔案或目錄來進行 rwx 的權限 規範,對於需要特殊權限的使用狀況非常有幫助。 如果依照 ACL 的設定來做區分的話,大致上有以下兩種: 

access ACL: 使用者及群組對檔案目錄的存取權限,就依照該檔案目錄的存取控制清單來決定。

default ACL: 只能針對目錄來做設定。對於已設定預設存取控制清單的目錄而言,位於其下的檔 案目錄,將會繼承這個目錄的 ACL 設定。

目前像 ReiserFS、ext2、ext3、JFS、XFS 等檔案系統都可支援 ACL 噢 !


#getfacl

/pub

#setfacl

-m u:user1:rwx

#setfacl

-m -d

pub/

u:aman:rwx pub/

設定 pub 目錄使用 default ACL ( -d )


10/15 Linux