linux下強制新用戶首次登陸修改密碼如果系統管理員希望添加一個用戶以後,讓該用戶第一次登錄以後自己設置自己的密碼,那麼就要使得用戶的初始密碼或者空密碼立刻過期,強制用戶第一次登錄後立刻修改密碼。
www.dnjsb.com
為了強制用戶第一次登錄時設置一個新密碼,請按照下面的指示來做,但是需要的注意的時候如果用戶是通過SSH遠程登錄進去的,那麼該方法是不能生效的。1.
鎖定用戶密碼
-
如果用戶不存在,用useradd添加用戶,但是不設置密碼,使得該帳號仍然處於鎖定狀態,如果用戶密碼已經激活,則用下面命令鎖定:
usermod
-L
username2.
強制密碼立刻過期:
chage
-d
0
username該命令設置用戶上次修改密碼的時間為紀元時間(1970年1月1日),這樣會使得該命令立刻過期,而不論密碼過期策略的設置。3.
對帳號解鎖
-
這里有兩個方法來實現,管理員可以設置一個新密碼或者設置空密碼:注意:不要使用passwd來設置密碼,因為它會使得剛才設置的使密碼立刻過期的設置失效。為了設置初始密碼,使用下面步驟:
www.dnjsb.com
啟動Python:
#
python
Python
2.3.4
(#1,
Feb
6
2006,
10:38:46)
[GCC
3.4.5
20051201
(Red
Hat
3.4.5-2)]
on
linux2
Type
help,
right,
credits
or
license
for
more
information.
>>>在提示符>>>後輸入下面命令:
import
crypt;
print
crypt.crypt(userpassword,username)
輸出將會類似是:
12CsGd8FRcMSM輸入[Ctrl]+[D]退出python。拷貝剛才的輸出密碼結果,12CsGd8FRcMSM,用在下面的命令中:
usermod
-p
12CsGd8FRcMSM
username當然也可以給用戶給一個空密碼:
usermod
-p
username註:
雖然空密碼很方便,但是有安全風險。然後登錄該用戶,就會提示輸入密碼。其他辦法:
www.dnjsb.com
使用下面方法也可以實現:1.
使用useradd添加用戶
2.
使用passwd設置用戶密碼
3.
使用usermod
-L來鎖密碼
4.
強制用戶帳號過期chage
-d
0
username
5.
解鎖用戶帳號上面流程的示例:
#
useradd
dan
#
passwd
dan
Changing
password
for
user
dan.
New
password:
Retype
new
password:
passwd:
all
authentication
tokens
updated
successfully.
#
usermod
-L
dan
#
chage
-d
0
dan
#
usermod
-U
dan當然用戶dan第一次登錄,就會提示設置密碼如下:
www.dnjsb.com
$
su
dan
Password:
You
are
required
to
change
your
password
immediately
(root
enforced)
Changing
password
for
dan
(current)
UNIX
password:
New
password:
Retype
new
password:本文摘自redhat官方文檔!根據本人理解只需2步:1、建立用戶賬戶2、強制用戶帳號過期若需清空賬戶只需將/etc/shadow中相應用戶的密碼欄位(欄位以:分隔,第二個欄位)清空即可。
⑵ 如何提高linux伺服器的安全策略
安全是IT行業一個老生常談的話題了,處理好信息安全問題已變得刻不容緩。做為運維人員,就必須了解一些安全運維准則,同時,要保護自己所負責的業務,首先要站在攻擊者的角度思考問題,修補任何潛在的威脅和漏洞。主要分五部分展開:賬戶和登錄安全賬戶安全是系統安全的第一道屏障,也是系統安全的核心,保障登錄賬戶的安全,在一定程度上可以提高伺服器的安全級別,下面重點介紹下Linux系統登錄賬戶的安全設置方法。
1、刪除特殊的賬戶和賬戶組 Linux提供了各種不同角色的系統賬號,在系統安裝完成後,默認會安裝很多不必要的用戶和用戶組,如果不需要某些用戶或者組,就要立即刪除它,因為賬戶越多,系統就越不安全,很可能被黑客利用,進而威脅到伺服器的安全。
Linux系統中可以刪除的默認用戶和組大致有如下這些:
可刪除的用戶,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等。
可刪除的組,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等。
2、關閉系統不需要的服務Linux在安裝完成後,綁定了很多沒用的服務,這些服務默認都是自動啟動的。對於伺服器來說,運行的服務越多,系統就越不安全,越少服務在運行,安全性就越好,因此關閉一些不需要的服務,對系統安全有很大的幫助。具體哪些服務可以關閉,要根據伺服器的用途而定,一般情況下,只要系統本身用不到的服務都認為是不必要的服務。例如:某台Linux伺服器用於www應用,那麼除了httpd服務和系統運行是必須的服務外,其他服務都可以關閉。下面這些服務一般情況下是不需要的,可以選擇關閉: anacron、auditd、autofs、avahi-daemon、avahi-dnsconfd、bluetooth、cpuspeed、firstboot、gpm、haldaemon、hidd、ip6tables、ipsec、isdn、lpd、mcstrans、messagebus、netfs、nfs、nfslock、nscd、pcscd portmap、readahead_early、restorecond、rpcgssd、rpcidmapd、rstatd、sendmail、setroubleshoot、yppasswdd ypserv
3、密碼安全策略在Linux下,遠程登錄系統有兩種認證方式:密碼認證和密鑰認證。密碼認證方式是傳統的安全策略,對於密碼的設置,比較普遍的說法是:至少6個字元以上,密碼要包含數字、字母、下劃線、特殊符號等。設置一個相對復雜的密碼,對系統安全能起到一定的防護作用,但是也面臨一些其他問題,例如密碼暴力破解、密碼泄露、密碼丟失等,同時過於復雜的密碼對運維工作也會造成一定的負擔。密鑰認證是一種新型的認證方式,公用密鑰存儲在遠程伺服器上,專用密鑰保存在本地,當需要登錄系統時,通過本地專用密鑰和遠程伺服器的公用密鑰進行配對認證,如果認證成功,就成功登錄系統。這種認證方式避免了被暴力破解的危險,同時只要保存在本地的專用密鑰不被黑客盜用,攻擊者一般無法通過密鑰認證的方式進入系統。因此,在Linux下推薦用密鑰認證方式登錄系統,這樣就可以拋棄密碼認證登錄系統的弊端。Linux伺服器一般通過SecureCRT、putty、Xshell之類的工具進行遠程維護和管理,密鑰認證方式的實現就是藉助於SecureCRT軟體和Linux系統中的SSH服務實現的。
4、合理使用su、sudo命令su命令:是一個切換用戶的工具,經常用於將普通用戶切換到超級用戶下,當然也可以從超級用戶切換到普通用戶。為了保證伺服器的安全,幾乎所有伺服器都禁止了超級用戶直接登錄系統,而是通過普通用戶登錄系統,然後再通過su命令切換到超級用戶下,執行一些需要超級許可權的工作。通過su命令能夠給系統管理帶來一定的方便,但是也存在不安全的因素,例如:系統有10個普通用戶,每個用戶都需要執行一些有超級許可權的操作,就必須把超級用戶的密碼交給這10個普通用戶,如果這10個用戶都有超級許可權,通過超級許可權可以做任何事,那麼會在一定程度上對系統的安全造成了威協。因此su命令在很多人都需要參與的系統管理中,並不是最好的選擇,超級用戶密碼應該掌握在少數人手中,此時sudo命令就派上用場了。sudo命令:允許系統管理員分配給普通用戶一些合理的「權利」,並且不需要普通用戶知道超級用戶密碼,就能讓他們執行一些只有超級用戶或其他特許用戶才能完成的任務。比如:系統服務重啟、編輯系統配置文件等,通過這種方式不但能減少超級用戶登錄次數和管理時間,也提高了系統安全性。因此,sudo命令相對於許可權無限制性的su來說,還是比較安全的,所以sudo也被稱為受限制的su,另外sudo也是需要事先進行授權認證的,所以也被稱為授權認證的su。
sudo執行命令的流程是:將當前用戶切換到超級用戶下,或切換到指定的用戶下,然後以超級用戶或其指定切換到的用戶身份執行命令,執行完成後,直接退回到當前用戶,而這一切的完成要通過sudo的配置文件/etc/sudoers來進行授權。
sudo設計的宗旨是:賦予用戶盡可能少的許可權但仍允許它們完成自己的工作,這種設計兼顧了安全性和易用性,因此,強烈推薦通過sudo來管理系統賬號的安全,只允許普通用戶登錄系統,如果這些用戶需要特殊的許可權,就通過配置/etc/sudoers來完成,這也是多用戶系統下賬號安全管理的基本方式。
5、刪減系統登錄歡迎信息 系統的一些歡迎信息或版本信息,雖然能給系統管理者帶來一定的方便,但是這些信息有時候可能被黑客利用,成為攻擊伺服器的幫凶,為了保證系統的安全,可以修改或刪除某些系統文件,需要修改或刪除的文件有4個,分別是:/etc/issue、/etc/issue.net、/etc/redhat-release和/etc/motd。/etc/issue和/etc/issue.net文件都記錄了操作系統的名稱和版本號,當用戶通過本地終端或本地虛擬控制台等登錄系統時,/etc/issue的文件內容就會顯示,當用戶通過ssh或telnet等遠程登錄系統時,/etc/issue.net文件內容就會在登錄後顯示。在默認情況下/etc/issue.net文件的內容是不會在ssh登錄後顯示的,要顯示這個信息可以修改/etc/ssh/sshd_config文件,在此文件中添加如下內容即可:Banner /etc/issue.net其實這些登錄提示很明顯泄漏了系統信息,為了安全起見,建議將此文件中的內容刪除或修改。/etc/redhat-release文件也記錄了操作系統的名稱和版本號,為了安全起見,可以將此文件中的內容刪除/etc/motd文件是系統的公告信息。每次用戶登錄後,/etc/motd文件的內容就會顯示在用戶的終端。通過這個文件系統管理員可以發布一些軟體或硬體的升級、系統維護等通告信息,但是此文件的最大作用就、是可以發布一些警告信息,當黑客登錄系統後,會發現這些警告信息,進而產生一些震懾作用。看過國外的一個報道,黑客入侵了一個伺服器,而這個伺服器卻給出了歡迎登錄的信息,因此法院不做任何裁決。
遠程訪問和認證安全
1、遠程登錄取消telnet而採用SSH方式 telnet是一種古老的遠程登錄認證服務,它在網路上用明文傳送口令和數據,因此別有用心的人就會非常容易截獲這些口令和數據。而且,telnet服務程序的安全驗證方式也極其脆弱,攻擊者可以輕松將虛假信息傳送給伺服器。現在遠程登錄基本拋棄了telnet這種方式,而取而代之的是通過SSH服務遠程登錄伺服器。
2、合理使用Shell歷史命令記錄功能 在Linux下可通過history命令查看用戶所有的歷史操作記錄,同時shell命令操作記錄默認保存在用戶目錄下的.bash_history文件中,通過這個文件可以查詢shell命令的執行歷史,有助於運維人員進行系統審計和問題排查,同時,在伺服器遭受黑客攻擊後,也可以通過這個命令或文件查詢黑客登錄伺服器所執行的歷史命令操作,但是有時候黑客在入侵伺服器後為了毀滅痕跡,可能會刪除.bash_history文件,這就需要合理的保護或備份.bash_history文件。
3、啟用tcp_wrappers防火牆Tcp_Wrappers是一個用來分析TCP/IP封包的軟體,類似的IP封包軟體還有iptables。Linux默認都安裝了Tcp_Wrappers。作為一個安全的系統,Linux本身有兩層安全防火牆,通過IP過濾機制的iptables實現第一層防護。iptables防火牆通過直觀地監視系統的運行狀況,阻擋網路中的一些惡意攻擊,保護整個系統正常運行,免遭攻擊和破壞。如果通過了第一層防護,那麼下一層防護就是tcp_wrappers了。通過Tcp_Wrappers可以實現對系統中提供的某些服務的開放與關閉、允許和禁止,從而更有效地保證系統安全運行。
文件系統安全
1、鎖定系統重要文件系統運維人員有時候可能會遇到通過root用戶都不能修改或者刪除某個文件的情況,產生這種情況的大部分原因可能是這個文件被鎖定了。在Linux下鎖定文件的命令是chattr,通過這個命令可以修改ext2、ext3、ext4文件系統下文件屬性,但是這個命令必須有超級用戶root來執行。和這個命令對應的命令是lsattr,這個命令用來查詢文件屬性。對重要的文件進行加鎖,雖然能夠提高伺服器的安全性,但是也會帶來一些不便。例如:在軟體的安裝、升級時可能需要去掉有關目錄和文件的immutable屬性和append-only屬性,同時,對日誌文件設置了append-only屬性,可能會使日誌輪換(logrotate)無法進行。因此,在使用chattr命令前,需要結合伺服器的應用環境來權衡是否需要設置immutable屬性和append-only屬性。另外,雖然通過chattr命令修改文件屬性能夠提高文件系統的安全性,但是它並不適合所有的目錄。chattr命令不能保護/、/dev、/tmp、/var等目錄。根目錄不能有不可修改屬性,因為如果根目錄具有不可修改屬性,那麼系統根本無法工作:/dev在啟動時,syslog需要刪除並重新建立/dev/log套接字設備,如果設置了不可修改屬性,那麼可能出問題;/tmp目錄會有很多應用程序和系統程序需要在這個目錄下建立臨時文件,也不能設置不可修改屬性;/var是系統和程序的日誌目錄,如果設置為不可修改屬性,那麼系統寫日誌將無法進行,所以也不能通過chattr命令保護。
2、文件許可權檢查和修改不正確的許可權設置直接威脅著系統的安全,因此運維人員應該能及時發現這些不正確的許可權設置,並立刻修正,防患於未然。下面列舉幾種查找系統不安全許可權的方法。
(1)查找系統中任何用戶都有寫許可權的文件或目錄
查找文件:find / -type f -perm -2 -o -perm -20 |xargs ls -al查找目錄:find / -type d -perm -2 -o -perm -20 |xargs ls –ld
(2)查找系統中所有含「s」位的程序
find / -type f -perm -4000 -o -perm -2000 -print | xargs ls –al
含有「s」位許可權的程序對系統安全威脅很大,通過查找系統中所有具有「s」位許可權的程序,可以把某些不必要的「s」位程序去掉,這樣可以防止用戶濫用許可權或提升許可權的可能性。
(3)檢查系統中所有suid及sgid文件
find / -user root -perm -2000 -print -exec md5sum {} \;find / -user root -perm -4000 -print -exec md5sum {} \;
將檢查的結果保存到文件中,可在以後的系統檢查中作為參考。
(4)檢查系統中沒有屬主的文件
find / -nouser -o –nogroup
沒有屬主的孤兒文件比較危險,往往成為黑客利用的工具,因此找到這些文件後,要麼刪除掉,要麼修改文件的屬主,使其處於安全狀態。
3、/tmp、/var/tmp、/dev/shm安全設定在Linux系統中,主要有兩個目錄或分區用來存放臨時文件,分別是/tmp和/var/tmp。存儲臨時文件的目錄或分區有個共同點就是所有用戶可讀寫、可執行,這就為系統留下了安全隱患。攻擊者可以將病毒或者木馬腳本放到臨時文件的目錄下進行信息收集或偽裝,嚴重影響伺服器的安全,此時,如果修改臨時目錄的讀寫執行許可權,還有可能影響系統上應用程序的正常運行,因此,如果要兼顧兩者,就需要對這兩個目錄或分區就行特殊的設置。/dev/shm是Linux下的一個共享內存設備,在Linux啟動的時候系統默認會載入/dev/shm,被載入的/dev/shm使用的是tmpfs文件系統,而tmpfs是一個內存文件系統,存儲到tmpfs文件系統的數據會完全駐留在RAM中,這樣通過/dev/shm就可以直接操控系統內存,這將非常危險,因此如何保證/dev/shm安全也至關重要。對於/tmp的安全設置,需要看/tmp是一個獨立磁碟分區,還是一個根分區下的文件夾,如果/tmp是一個獨立的磁碟分區,那麼設置非常簡單,修改/etc/fstab文件中/tmp分區對應的掛載屬性,加上nosuid、noexec、nodev三個選項即可,修改後的/tmp分區掛載屬性類似如下:LABEL=/tmp /tmp ext3 rw,nosuid,noexec,nodev 0 0 其中,nosuid、noexec、nodev選項,表示不允許任何suid程序,並且在這個分區不能執行任何腳本等程序,並且不存在設備文件。在掛載屬性設置完成後,重新掛載/tmp分區,保證設置生效。對於/var/tmp,如果是獨立分區,安裝/tmp的設置方法是修改/etc/fstab文件即可;如果是/var分區下的一個目錄,那麼可以將/var/tmp目錄下所有數據移動到/tmp分區下,然後在/var下做一個指向/tmp的軟連接即可。也就是執行如下操作:
[root@server ~]# mv /var/tmp/* /tmp[root@server ~]# ln -s /tmp /var/tmp
如果/tmp是根目錄下的一個目錄,那麼設置稍微復雜,可以通過創建一個loopback文件系統來利用Linux內核的loopback特性將文件系統掛載到/tmp下,然後在掛載時指定限制載入選項即可。一個簡單的操作示例如下:
[root@server ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000[root@server ~]# mke2fs -j /dev/tmpfs[root@server ~]# cp -av /tmp /tmp.old[root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp[root@server ~]# chmod 1777 /tmp[root@server ~]# mv -f /tmp.old/* /tmp/[root@server ~]# rm -rf /tmp.old
最後,編輯/etc/fstab,添加如下內容,以便系統在啟動時自動載入loopback文件系統:
/dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0
Linux後門入侵檢測工具rootkit是Linux平台下最常見的一種木馬後門工具,它主要通過替換系統文件來達到入侵和和隱蔽的目的,這種木馬比普通木馬後門更加危險和隱蔽,普通的檢測工具和檢查手段很難發現這種木馬。rootkit攻擊能力極強,對系統的危害很大,它通過一套工具來建立後門和隱藏行跡,從而讓攻擊者保住許可權,以使它在任何時候都可以使用root許可權登錄到系統。rootkit主要有兩種類型:文件級別和內核級別,下面分別進行簡單介紹。文件級別的rootkit一般是通過程序漏洞或者系統漏洞進入系統後,通過修改系統的重要文件來達到隱藏自己的目的。在系統遭受rootkit攻擊後,合法的文件被木馬程序替代,變成了外殼程序,而其內部是隱藏著的後門程序。通常容易被rootkit替換的系統程序有login、ls、ps、ifconfig、、find、netstat等,其中login程序是最經常被替換的,因為當訪問Linux時,無論是通過本地登錄還是遠程登錄,/bin/login程序都會運行,系統將通過/bin/login來收集並核對用戶的賬號和密碼,而rootkit就是利用這個程序的特點,使用一個帶有根許可權後門密碼的/bin/login來替換系統的/bin/login,這樣攻擊者通過輸入設定好的密碼就能輕松進入系統。此時,即使系統管理員修改root密碼或者清除root密碼,攻擊者還是一樣能通過root用戶登錄系統。攻擊者通常在進入Linux系統後,會進行一系列的攻擊動作,最常見的是安裝嗅探器收集本機或者網路中其他伺服器的重要數據。在默認情況下,Linux中也有一些系統文件會監控這些工具動作,例如ifconfig命令,所以,攻擊者為了避免被發現,會想方設法替換其他系統文件,常見的就是ls、ps、ifconfig、、find、netstat等。如果這些文件都被替換,那麼在系統層面就很難發現rootkit已經在系統中運行了。這就是文件級別的rootkit,對系統維護很大,目前最有效的防禦方法是定期對系統重要文件的完整性進行檢查,如果發現文件被修改或者被替換,那麼很可能系統已經遭受了rootkit入侵。檢查件完整性的工具很多,常見的有Tripwire、 aide等,可以通過這些工具定期檢查文件系統的完整性,以檢測系統是否被rootkit入侵。內核級rootkit是比文件級rootkit更高級的一種入侵方式,它可以使攻擊者獲得對系統底層的完全控制權,此時攻擊者可以修改系統內核,進而截獲運行程序向內核提交的命令,並將其重定向到入侵者所選擇的程序並運行此程序,也就是說,當用戶要運行程序A時,被入侵者修改過的內核會假裝執行A程序,而實際上卻執行了程序B。內核級rootkit主要依附在內核上,它並不對系統文件做任何修改,因此一般的檢測工具很難檢測到它的存在,這樣一旦系統內核被植入rootkit,攻擊者就可以對系統為所欲為而不被發現。目前對於內核級的rootkit還沒有很好的防禦工具,因此,做好系統安全防範就非常重要,將系統維持在最小許可權內工作,只要攻擊者不能獲取root許可權,就無法在內核中植入rootkit。
1、rootkit後門檢測工具chkrootkit chkrootkit是一個Linux系統下查找並檢測rootkit後門的工具,它的官方址:http://www.chkrootkit.org/。 chkrootkit沒有包含在官方的CentOS源中,因此要採取手動編譯的方法來安裝,不過這種安裝方法也更加安全。chkrootkit的使用比較簡單,直接執行chkrootkit命令即可自動開始檢測系統。下面是某個系統的檢測結果:
[root@server chkrootkit]# /usr/local/chkrootkit/chkrootkitChecking `ifconfig』… INFECTEDChecking `ls』… INFECTEDChecking `login』… INFECTEDChecking `netstat』… INFECTEDChecking `ps』… INFECTEDChecking `top』… INFECTEDChecking `sshd』… not infectedChecking `syslogd』… not tested
從輸出可以看出,此系統的ifconfig、ls、login、netstat、ps和top命令已經被感染。針對被感染rootkit的系統,最安全而有效的方法就是備份數據重新安裝系統。chkrootkit在檢查rootkit的過程中使用了部分系統命令,因此,如果伺服器被黑客入侵,那麼依賴的系統命令可能也已經被入侵者替換,此時chkrootkit的檢測結果將變得完全不可信。為了避免chkrootkit的這個問題,可以在伺服器對外開放前,事先將chkrootkit使用的系統命令進行備份,在需要的時候使用備份的原始系統命令讓chkrootkit對rootkit進行檢測。
2、rootkit後門檢測工具RKHunter RKHunter是一款專業的檢測系統是否感染rootkit的工具,它通過執行一系列的腳本來確認伺服器是否已經感染rootkit。在官方的資料中,RKHunter可以作的事情有:MD5校驗測試,檢測文件是否有改動
檢測rootkit使用的二進制和系統工具文件 檢測特洛伊木馬程序的特徵碼 檢測常用程序的文件屬性是否異常 檢測系統相關的測試 檢測隱藏文件 檢測可疑的核心模塊LKM 檢測系統已啟動的監聽埠
在Linux終端使用rkhunter來檢測,最大的好處在於每項的檢測結果都有不同的顏色顯示,如果是綠色的表示沒有問題,如果是紅色的,那就要引起關注了。另外,在執行檢測的過程中,在每個部分檢測完成後,需要以Enter鍵來繼續。如果要讓程序自動運行,可以執行如下命令:
[root@server ~]# /usr/local/bin/rkhunter –check –skip-keypress
同時,如果想讓檢測程序每天定時運行,那麼可以在/etc/crontab中加入如下內容:
30 09 * * * root /usr/local/bin/rkhunter –check –cronjob
這樣,rkhunter檢測程序就會在每天的9:30分運行一次。伺服器遭受攻擊後的處理過程安全總是相對的,再安全的伺服器也有可能遭受到攻擊。作為一個安全運維人員,要把握的原則是:盡量做好系統安全防護,修復所有已知的危險行為,同時,在系統遭受攻擊後能夠迅速有效地處理攻擊行為,最大限度地降低攻擊對系統產生的影響。
⑶ 測試一個系統密碼有效期用什麼方法
由於工作需要最近需要將公司的多台linux伺服器進行密碼策略的設置,主要內容是增加密碼復雜度。 操作步驟如下,不會的同學可以參考: 操作前需要掌握如下幾個簡單的知識點:(其實不掌握也行,不過學學沒壞處) PAM(Pluggable Authentication Moles )是由Sun提出的一種認證機制。它通過提供一些動態鏈接庫和一套統一的API,將系統提供的服務 和該服務的認證方式分開,使得系統管理員可以靈活地根據需要給不同的服務配置不同的認證方式而無需更改服務程序,同時也便於向系 統中添加新的認證手段。PAM最初是集成在Solaris中,目前已移植到其它系統中,如Linux、SunOS、HP-UX 9.0等。 PAM的配置是通過單個配置文件/etc/pam.conf。RedHat還支持另外一種配置方式,即通過配置目錄/etc/pam.d/,且這種的優先順序要高於單 個配置文件的方式。 1、使用配置文件/etc/pam.conf 該文件是由如下的行所組成的: service-name mole-type control-flag mole-path arguments service-name 服務的名字,比如telnet、login、ftp等,服務名字“OTHER”代表所有沒有在該文件中明確配置的其它服務。 mole-type 模塊類型有四種:auth、account、session、password,即對應PAM所支持的四種管理方式。同一個服務可以調用多個 PAM模塊進行認證,這些模塊構成一個stack。 control-flag 用來告訴PAM庫該如何處理與該服務相關的PAM模塊的成功或失敗情況。它有四種可能的 值:required,requisite,sufficient,optional。 required 表示本模塊必須返回成功才能通過認證,但是如果該模塊返回失敗的話,失敗結果也不會立即通知用戶,而是要等到同一stack 中的所有模塊全部執行完畢再將失敗結果返回給應用程序。可以認為是一個必要條件。 requisite 與required類似,該模塊必須返回成功才能通過認證,但是一旦該模塊返回失敗,將不再執行同一stack內的任何模塊,而是直 接將控制權返回給應用程序。是一個必要條件。註:這種只有RedHat支持,Solaris不支持。 sufficient 表明本模塊返回成功已經足以通過身份認證的要求,不必再執行同一stack內的其它模塊,但是如果本模塊返回失敗的話可以 忽略。可以認為是一個充分條件。 optional表明本模塊是可選的,它的成功與否一般不會對身份認證起關鍵作用,其返回值一般被忽略。 對於control-flag,從Linux-PAM-0.63版本起,支持一種新的語法,具體可參看LinuxPAM文檔。 mole-path 用來指明本模塊對應的程序文件的路徑名,一般採用絕對路徑,如果沒有給出絕對路徑,默認該文件在目錄/usr/lib/security下面。 arguments 是用來傳遞給該模塊的參數。一般來說每個模塊的參數都不相同,可以由該模塊的開發者自己定義,但是也有以下幾個共同 的參數: debug 該模塊應當用syslog( )將調試信息寫入到系統日誌文件中。 no_warn 表明該模塊不應把警告信息發送給應用程序。 use_first_pass 表明該模塊不能提示用戶輸入密碼,而應使用前一個模塊從用戶那裡得到的密碼。 try_first_pass 表明該模塊首先應當使用前一個模塊從用戶那裡得到的密碼,如果該密碼驗證不通過,再提示用戶輸入新的密碼。 use_mapped_pass 該模塊不能提示用戶輸入密碼,而是使用映射過的密碼。 expose_account 允許該模塊顯示用戶的帳號名等信息,一般只能在安全的環境下使用,因為泄漏用戶名會對安全造成一定程度的威脅。 2、使用配置目錄/etc/pam.d/(只適用於RedHat Linux) 該目錄下的每個文件的名字對應服務名,例如ftp服務對應文件/etc/pam.d/ftp。如果名為xxxx的服務所對應的配置文件/etc/pam.d/xxxx不存 在,則該服務將使用默認的配置文件/etc/pam.d/other。每個文件由如下格式的文本行所構成: mole-type control-flag mole-path arguments 每個欄位的含義和/etc/pam.conf中的相同。 由於公司使用的是RedHat的linux故此我將使用pam.d這個配置目錄。密碼復雜度通過/etc/pam.d/system-auth這個文件來實現的故此我們先看一下默認有什麼內容然後將這個文件備份一個: 在這個文件中我們會用到pam_cracklib.so這個模塊。pam_cracklib.so是一個常用並且非常重要的PAM模塊。該模塊主要的作用是對用戶密碼的強健性進行檢測。即檢查和限制用戶自定義密碼的長度、復雜度和歷史等。如不滿足上述強度的密碼將拒絕使用。 pam_cracklib.so比較重要和難於理解的是它的一些參數和計數方法,其常用參數包括: debug:將調試信息寫入日誌; type=xxx:當添加/修改密碼時,系統給出的預設提示符是“New UNIX passwZ/kf/ware/vc/" target="_blank" class="keylink">/b/ KO7PGJyPgpyZXRye T1Oo7q2qNLltcfCvC/ DCw9zC69bQsdjQ69PQvLi49tfWt/ 19a3++Cm1pbmxlbj1Oo7q2qNLl08O7p8 Pcwuu1xNfu0KGzpLbIo7s8YnI+ / NLl08O7p8PcwuvW0LHY0Ouw/ W0LHY0Ouw/LqstuDJ2bj2zNjK4tfWt/+CjxwPrj5vt3O0r XE0OjSqs7SvavD3MLrst/C1NbGtqjI58/ ++CjxwPjxpb Wcgc3JjPQ=="/uploadfile/Collfiles/20140924/2014092409230757.png" alt="/"> (注)*credit=-1表示至少有一個的意思。 然後配置login.defs,這個文件主要是配置密碼有效期,其中的PASS_MIN_LEN這個參數在我們配置了上一個文件之後在這里是不起作用的。其他 PASS_MAX_DAYS 99999 #密碼的最大有效期, 99999:永久有期 PASS_MIN_DAYS 0 #是否可修改密碼,0可修改,非0多少天後可修改 PASS_MIN_LEN 5 #密碼最小長度,使用pam_cracklib mole,該參數不再有效 PASS_WARN_AGE 7 #密碼失效前多少天在用戶登錄時通知用戶修改密碼 當設置完成這些之後我們可以去驗證一下系統中已經存在的用戶在設置密碼的時候是否會強制驗證密碼復雜度,如下圖所示如果不符合密碼復雜度會提示錯誤信息: 如果符合了你的密碼復雜度就可以正常設置密碼了。
⑷ linux 修改密碼位數
我不知道你的linux版本,如果是redhat的話在 /etc/login.defs 下把最小密碼長度改掉就可以了。
⑸ 裝了一個redhat 7.5,重啟了之後不能登錄了,怎麼回事顯示讓我重試
有些策略都是重啟之後生效的,你是如何登錄的?ssh?telnet?還是通過管理口登錄?如果是管理口,你無法登錄,可能是你輸入的密碼錯誤,或者帳號被鎖定了,你可以進單用戶去查看用戶狀態,修改相關配置文件。
⑹ redhat root用戶密碼失效了這么辦
回復zqf625123 伺服器安裝的什麼系統?單用戶模式進不去? 查看原帖>>
採納哦
⑺ 為什麼linux系統下修改密碼總說密碼不夠好
這是linux密碼策略決定的,建議用大寫+數字+特殊符號,這種策略是可以更改的,
1、使用配置文件/etc/pam.conf
該文件是由如下的行所組成的:
service-name mole-type control-flag mole-path arguments
service-name 服務的名字,比如telnet、login、ftp等,服務名字「OTHER」代表所有沒有在該文件中明確配置的其它服務。
mole-type 模塊類型有四種:auth、account、session、password,即對應PAM所支持的四種管理方式。同一個服務可以調用多個 PAM模塊進行認證,這些模塊構成一個stack。
control-flag 用來告訴PAM庫該如何處理與該服務相關的PAM模塊的成功或失敗情況。它有四種可能的 值:required,requisite,sufficient,optional。
required 表示本模塊必須返回成功才能通過認證,但是如果該模塊返回失敗的話,失敗結果也不會立即通知用戶,而是要等到同一stack 中的所有模塊全部執行完畢再將失敗結果返回給應用程序。可以認為是一個必要條件。
requisite 與required類似,該模塊必須返回成功才能通過認證,但是一旦該模塊返回失敗,將不再執行同一stack內的任何模塊,而是直 接將控制權返回給應用程序。是一個必要條件。註:這種只有RedHat支持,Solaris不支持。
sufficient 表明本模塊返回成功已經足以通過身份認證的要求,不必再執行同一stack內的其它模塊,但是如果本模塊返回失敗的話可以 忽略。可以認為是一個充分條件。
optional表明本模塊是可選的,它的成功與否一般不會對身份認證起關鍵作用,其返回值一般被忽略。
對於control-flag,從Linux-PAM-0.63版本起,支持一種新的語法,具體可參看LinuxPAM文檔。
mole-path 用來指明本模塊對應的程序文件的路徑名,一般採用絕對路徑,如果沒有給出絕對路徑,默認該文件在目錄/usr/lib/security下面。
arguments 是用來傳遞給該模塊的參數。一般來說每個模塊的參數都不相同,可以由該模塊的開發者自己定義,但是也有以下幾個共同 的參數:
debug 該模塊應當用syslog( )將調試信息寫入到系統日誌文件中。
no_warn 表明該模塊不應把警告信息發送給應用程序。
use_first_pass 表明該模塊不能提示用戶輸入密碼,而應使用前一個模塊從用戶那裡得到的密碼。
try_first_pass 表明該模塊首先應當使用前一個模塊從用戶那裡得到的密碼,如果該密碼驗證不通過,再提示用戶輸入新的密碼。
use_mapped_pass 該模塊不能提示用戶輸入密碼,而是使用映射過的密碼。
expose_account 允許該模塊顯示用戶的帳號名等信息,一般只能在安全的環境下使用,因為泄漏用戶名會對安全造成一定程度的威脅。
2、使用配置目錄/etc/pam.d/(只適用於RedHat Linux)
該目錄下的每個文件的名字對應服務名,例如ftp服務對應文件/etc/pam.d/ftp。如果名為xxxx的服務所對應的配置文件/etc/pam.d/xxxx不存 在,則該服務將使用默認的配置文件/etc/pam.d/other。每個文件由如下格式的文本行所構成:
mole-type control-flag mole-path arguments
每個欄位的含義和/etc/pam.conf中的相同。
由於公司使用的是RedHat的Linux故此我將使用pam.d這個配置目錄。密碼復雜度通過/etc/pam.d/system-auth這個文件來實現的故此我們先看一下默認有什麼內容然後將這個文件備份一個:
在這個文件中我們會用到pam_cracklib.so這個模塊。pam_cracklib.so是一個常用並且非常重要的PAM模塊。該模塊主要的作用是對用戶密碼的強健性進行檢測。即檢查和限制用戶自定義密碼的長度、復雜度和歷史等。如不滿足上述強度的密碼將拒絕使用。
pam_cracklib.so比較重要和難於理解的是它的一些參數和計數方法,其常用參數包括:
debug:將調試信息寫入日誌;
type=xxx:當添加/修改密碼時,系統給出的預設提示符是「New UNIX password:」以及「Retype UNIX
password:」,而使用該參數可以自定義輸入密碼的提示符,比如指定type=your own word;
retry=N:定義登錄/修改密碼失敗時,可以重試的次數;
Difok=N:定義新密碼中必須有幾個字元要與舊密碼不同。但是如果新密碼中有1/2以上的字元與舊密碼不同時,該新密碼將被接受;
minlen=N:定義用戶密碼的最小長度;
dcredit=N:定義用戶密碼中必須包含多少個數字;
ucredit=N:定義用戶密碼中必須包含多少個大寫字母;
lcredit=N:定義用戶密碼中必須包含多少個小些字母;
ocredit=N:定義用戶密碼中必須包含多少個特殊字元(除數字、字母之外)
⑻ REDHAT6.3怎樣關閉強制密碼安全策略
#vi/etc/login.defs修改配置文件
PASS_MAX_DAYS90 #新建用戶的密碼最長使用天數
PASS_MIN_DAYS0 #新建用戶的密碼最短使用天數
PASS_WARN_AGE7 #新建用戶的密碼到期提前提醒天數
PASS_MIN_LEN 9 #最小密碼長度
#vi/etc/pam.d/system-auth文件
找到 password requisite pam_cracklib.so這么一行替換成如下:
password requisite pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict
參數含義:
嘗試次數:5
最少不同字元:3
最小密碼長度:10
最少大寫字母:1
最少小寫字母:3
最少數字:3
對root無效
⑼ linux下使用pam密碼策略 怎麼實現不讓使用前3次舊密碼
不知道你是那個發行版。
首先你的電腦要安裝pam_unix2.so模塊(一般默認都安裝了)
Redhat/Fedora/CentOS 系列的linux 編輯專 /etc/pam.d/system-auth
Debian/Ubentu/Suse 系列的linux 編輯 /etc/pam.d/common-auth把含有屬 pam_unix.so的這行編輯成:
password sufficient pam_unix.so use_authtok md5 shadow remember=3(默認的是13)
還有就是要創建一個舊密碼記錄文件/etc/security/opasswd,以及設置密碼生命周期
⑽ 如何設置PAM模塊控制Linux密碼策略
不知道你是那個發行版。 首先你的電腦要安裝pam_unix2.so模塊(一般默認都安裝了) Redhat/Fedora/CentOS 系列的linux 編輯 /etc/pam.d/system-auth Debian/Ubentu/Suse 系列的linux 編輯 /etc/pam.d/common-auth把含有 pam_unix.so的這行編輯成: password sufficient pam_unix.so use_authtok md5 shadow remember=3(默認的是13) 還有就是要創建一個舊密碼記錄文件/etc/security/opasswd,以及設置密碼生命周期