控制用戶的登錄地點
文件/etc/secruity/access.conf可控制用戶登錄地點,為了使用access.conf,必須在文件/etc/pam.d/login中加入下面行:
account required /lib/security/pam_access.so
access.conf文件的格式:
permission : users : origins
其中:
permission:可以是 "+"或"-",表示允許或拒絕。
user:可以是用戶名、用戶組名,如果是all則表示所有用戶。
origins:登錄地點。local表示本地,all表示所有地點,console表示控制臺。另外,origins也可以是某一網絡。
后面兩個域中加上 except是"除了"的意思。例如:除了用戶wheel、shutdown、sync禁止所有的控制臺登錄:
-:ALL EXCEPT wheel shutdown sync:console
root賬戶的登錄地點不在access.conf文件中控制,而是由/etc/securetty文件控制。
必須保證/etc/pam.d/login有下面這行:
auth required???? pam_securetty.so
etc/securetty文件指定了允許root登錄的tty設備,由/bin/login程序讀取,其格式是一個被允許的名字列表,你可以編輯/etc/securetty且注釋掉如下的行。
# tty2
# tty3
# tty4
# tty5
# tty6
這時,root僅可在tty1終端登錄。
關于PAM的一些解釋
熱身:
何要授予用戶特權的程序都要能夠進行用戶認證。當您登入系統(tǒng)時,您需要提供用戶名和口令,而后登入進程據(jù)此以檢驗登入的合法性---確認您就是該用戶。還有除口令認證之外的其他認證形式,而且口令的存儲方式也是各不相同的。
1、說明
A、PAM可加載目標文件(模塊)是在RedHat Linux系統(tǒng)中它們被放在了/lib/security目錄下
B、PAM庫本地系統(tǒng)配置文件/etc/pam.conf OR /etc/pam.d/目錄下的一些配置文件來設置
2、# more login
#%PAM-1.0
auth required???? pam_securetty.so
用來控制root用戶只可以從包含在/etc/securetty文件中的終端登錄系統(tǒng)。
auth required???? pam_stack.so service=system-auth
auth required???? pam_nologin.so
提供標準的UNIX nologin登錄認證。如果/etc/nologin文件存在,則只有root用戶可以登錄,其他用戶登錄時只會得到/etc/nologin文件的內容。如果/etc/nologin不存在,則該模塊沒有作用。
account??? required???? pam_stack.so service=system-auth
password?? required???? pam_stack.so service=system-auth
# pam_selinux.so close should be the first session rule
session??? required???? pam_selinux.so close
session??? required???? pam_stack.so service=system-auth
session??? optional???? pam_console.so
# ls -l /dev/pts/1
crw--w---- 1 root tty 136, 1 May 15 21:19 /dev/pts/1
# ls -l /dev/pts/2
crw--w---- 1 test tty 136, 2 May 15 21:20 /dev/pts/2
用戶登陸時,它將TTY設備權限改成該用戶所有,當用戶退出時,將TTY設備權限改為root所有。
# pam_selinux.so open should be the last session rule
session??? required???? pam_selinux.so multiple open
login要做兩件事,首先查詢用戶,然后為用戶提供所需服務,例如提供一個shell程序。
通常,login會提示用戶輸入密碼。然后對密碼進行校驗,這項任務就是Linux-PAM完成的。
上 例中三個required連續(xù)使用, 即便第一個模塊失敗了,也要完成三個模塊的校驗。這是一種安全上的考慮 ---這種設計永遠不要讓用戶知道他或她們?yōu)槭裁磿痪芙^,否則會讓其更容易突破認證??梢詫?required"改成"requisite"來修改這種 認證方式。如果有任何"requisite"模塊以失敗返回,整個PAM認證將終止再調用其它模塊也以失敗返回。
3、pam_unix認證模塊
所屬類型: account; auth; password; session
功能描述:該模塊是標準UNIX認證模塊pam_unix的替代模塊。
在 作為auth類型使用時,此時該模塊可識別的參數(shù)有debug、audit、use_first_pass、try_first_pass、 nullok、nodelay,主要功能是驗證用戶密碼的有效性,在缺省情況下(即不帶任何參數(shù)時),該模塊的主要功能是禁止密碼為空的用戶提供服務;
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類型使用時,此時該模塊可識別的參數(shù)有debug、audit,該模塊主要執(zhí)行建立用戶帳號和密碼狀態(tài)的任務,然后執(zhí)行提示用戶修改密碼,用戶采用新密碼后才提供服務之類的任務;
account???? required????? /lib/security/$ISA/pam_unix.so
account???? sufficient??? /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet
account???? required????? /lib/security/$ISA/pam_permit.so
在 作為password類型使用時,此時該模塊可識別的參數(shù)有debug、 audit、 nullok;、not_set_pass、use_authtok、try_first_pass、use_first_pass、md5、 bigcrypt、shadow、nis、
remember,該模塊完成讓用戶更改密碼的任務;
password??? requisite???? /lib/security/$ISA/pam_cracklib.so retry=3
password??? sufficient??? /lib/security/$ISA/pam_unix.so nullok use_authtok md5
shadow
password??? required????? /lib/security/$ISA/pam_deny.so
#p#副標題#e#
在作為session類型使用時,此時該模塊沒有可識別的參數(shù),該模塊僅僅完成記錄用戶名和服務名到日志文件的工作。
session???? required????? /lib/security/$ISA/pam_limits.so
session???? required????? /lib/security/$ISA/pam_unix.so
可帶參數(shù):
debug:將調試信息寫入日志
audit:記錄更為信息的信息
nullok:缺省情況下,如果用戶輸入的密碼為空,則系統(tǒng)能夠不對其提供任何服務。但是如果使用參數(shù),用戶不輸入密碼就可以獲得系統(tǒng)提供的服務。同時,也允許用戶密碼為空時更改用戶密碼。 ?
nodelay:當用戶認證失敗,系統(tǒng)在給出錯誤信息時會有一個延遲,這個延遲是為了防止。黑客猜測密碼,使用該參數(shù)時,系統(tǒng)將取消這個延遲。通常這是一個1秒鐘的延遲。
try_first_pass:在用作auth模塊時,該參數(shù)將嘗試在提示用戶輸入密碼前,使用前面一個堆疊的auth模塊提供的密碼認證用戶;在作為password模塊使用時,該參數(shù)是為了防止用戶將密碼更新成使用以前的老密碼。
use_first_pass:在用作auth模塊時,該參數(shù)將在提示用戶輸入密碼前,直接使用前面一個堆疊的auth模塊提供的密碼認證用戶;在作為password模塊使用時,該參數(shù)用來防止用戶將密碼設置成為前面一個堆疊的password模塊所提供的密碼。
no_set_pass:使密碼對前后堆疊的password模塊無效。
use_authok:強制使用前面堆疊的password模塊提供的密碼,比如由pam_cracklib模塊提供的新密碼。
md5:采用md5對用戶密碼進行加密。
shadow:采用影子密碼。
unix:當用戶更改密碼時,密碼被放置在/etc/passwd中。
bigcrype:采用DEC C2算法加密用戶密碼。
nis:使用NIS遠處過程調用來設置新密碼。
remember=x:記錄x個使用過的舊密碼,這些舊密碼以MD5方式加密后被保存在/etc/security/opasswd文件中。
broken_shadow:在作為account使用時,該參數(shù)用來忽略對影子密碼的讀錯誤。
likeauth:未知。
配置實例:
參考/etc/pam.d/system-auth
設置密碼中的常見錯誤信息?
⑴當用戶輸入的密碼字符數(shù)太少時:
BAD PASSWORD: it's WAY too short
⑵當用戶輸入的密碼相同字符太多時:
BAD PASSWORD: it does not cont
關鍵詞標簽:linux控制用戶的登錄地
相關閱讀
熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP
人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址 dmidecode命令查看內存型號 linux tc實現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關機、重啟、注銷 命令 查看linux服務器硬盤IO讀寫負載