前言:作為一種開放源代碼的作業系統,Linux伺服器以其安全、高效和穩定的顯著優勢而得以廣泛應用。
使用者賬号,是計算機使用者的身份憑證或辨別,每一個要通路系統資源的人,必須憑借其使用者賬号才能進入計算機。在Linux系統中,提供了多種機制來確定使用者賬号的正當、安全使用。
我們先了解幾個指令:
1.su指令——切換使用者
su指令用于切換目前使用者身份到其他使用者身份,變更時須輸入所要變更的使用者帳号與密碼。
文法
su(選項)(參數)
選項
-c<指令>或–command=<指令>:執行完指定的指令後,即恢複原來的身份;
-f或——fast:适用于csh與tsch,使shell不用去讀取啟動檔案;
-l或——login:改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更PATH變量;
-m,-p或–preserve-environment:變更身份時,不要變更環境變量;
-s或–shell=:指定要執行的shell;
–help:顯示幫助;
–version;顯示版本資訊。
例如,切換root使用者,輸入使用者root的密碼,驗證成功後獲得root權限。

2.sudo指令——提升執行權限
sudo指令用來以其他身份來執行指令,預設的身份為root。在/etc/sudoers中設定了可執行sudo指令的使用者。若其未經授權的使用者企圖使用sudo,則會發出警告的郵件給管理者。使用者使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過期限則必須重新輸入密碼。
文法
sudo(選項)(參數)
選項
-b:在背景執行指令;
-h:顯示幫助;
-H:将HOME環境變量設為新身份的HOME環境變量;
-k:結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼;。
-l:列出目前使用者可執行與無法執行的指令;
-p:改變詢問密碼的提示符号;
-s:執行指定的shell;
-u<使用者>:以指定的使用者作為新的身份。若不加上此參數,則預設以root作為新的身份;
-v:延長密碼有效期限5分鐘;
-V :顯示版本資訊。
執行個體
配置sudo必須通過編輯/etc/sudoers檔案,而且隻有超級使用者才可以修改它,還必須使用visudo編輯。之是以使用visudo有兩個原因,一是它能夠防止兩個使用者同時修改它;二是它也能進行有限的文法檢查。是以,即使隻有你一個超級使用者,你也最好用visudo來檢查一下文法。
visudo預設的是在vi裡打開配置檔案,用vi來修改檔案。我們可以在編譯時修改這個預設項。visudo不會擅自儲存帶有文法錯誤的配置檔案,它會提示你出現的問題,并詢問該如何處理,就像:
sudoers file: syntax error, line 22
此時我們有三種選擇:鍵入“e”是重新編輯,鍵入“x”是不儲存退出,鍵入“Q”是退出并儲存。如果真選擇Q,那麼sudo将不會再運作,直到錯誤被糾正。
現在,我們一起來看一下神秘的配置檔案,學一下如何編寫它。讓我們從一個簡單的例子開始:讓使用者csdn可以通過sudo執行所有root可執行的指令。以root身份用visudo打開配置檔案,可以看到類似下面幾行:
#Runas alias specification
#User privilege specificationroot ALL=(ALL)ALL
我們一看就明白個差不多了,root有所有權限,隻要仿照現有root的例子就行,我們在下面加一行(最好用tab作為空白):
csdn ALL=(ALL) ALL
儲存退出後,切換到csdn使用者,我們用它的身份執行指令:
好了,我們限制一下csdn的權利,不讓他為所欲為。比如我們隻想讓他像root那樣使用ls和ifconfig,把那一行改為:
csdn localhost= /sbin/ifconfig, /bin/ls
再來執行指令:
現在讓我們來看一下那三個ALL到底是什麼意思。第一個ALL是指網絡中的主機,我們後面把它改成了主機名,它指明csdn可以在此主機上執行後面的指令。第二個括号裡的ALL是指目标使用者,也就是以誰的身份去執行指令。最後一個ALL當然就是指指令名了。
sudo 有自己的方式來保護安全。以root的身份執行sudo-V,檢視一下sudo的設定。因為考慮到安全問題,一部分環境變量并沒有傳遞給sudo後面的指令,或者被檢查後再傳遞的,比如:PATH,HOME,SHELL等。當然,你也可以通過sudoers來配置這些環境變量。
PAM安全認證
PAM: 1995年Sun公司的研究員提出了一種可插入的驗證子產品(Pluggable Authentication Modules)技術.
PAM機制能夠使應用程式與認證機制分離,這樣,當認證機制改變時,不需要修改應用程式,隻需要系統管理者對配置檔案進行修改就能改變,極大地提高了認證機制的靈活性與通用性.
特點如下: 1)應用程式可以通過PAM API友善的使用PAM提供的各種鑒别功能,而不必了解太多的底層細節。
2)此外,PAM的易用性也較強,主要表現在它對上層屏蔽了鑒别的具體細節,是以使用者不必被迫學習各種各樣的鑒别方式。也不必記住多個密碼:
3)又由于它實作了多鑒别機制的內建問題,是以單個程式可以輕易內建多種鑒别機制如Kerberos鑒别機制和Diffie—Hellman鑒别機制等,是以使用者仍可以用同一個密碼登入而感覺不到采取了各種不同鑒别方法。
設計思想:
分層設計,即讓各鑒别子產品從應用程式中獨立出來。然後通過API作為兩者聯系的紐帶。這樣應用程式就可以根據需要靈活地在其中“插入”所需鑒别功能子產品,進而真正實作了“鑒别功能,随需應變”
使用者調用某個應用程式以便得到相對應的服務,PAM應用程式調用背景的PAM庫進行驗證工作,接着PAM庫在目錄/etc/pam.d/目錄下面查找相應的配置檔案,該檔案告訴PAM應用程式使用何種驗證機制以便PAM庫裝在所需要的驗證子產品,這些子產品可以讓PAM庫與應用程式中的轉換函數進行通信。轉換函數向使用者要求有關的驗證資訊,使用者提供對應的資訊,PAM驗證子產品對使用者提供的資訊進行鑒别,然後通過PAM庫将認證的結果傳回給應用程式,認證完成以後,應用程式做出兩種選擇:一,将所有權限賦予使用者,并通知使用者;二,認證失敗,阻止使用者獲得服務。
服務子產品:
1)認證管理(authentication management)
主要是接受使用者名和密碼,進而對該使用者的密碼進行認證。強制使用者在開始服務之前提供認證資訊,這個認證資訊代表一個密碼,這個密碼的内容非常廣泛,甚至可以包括硬體闆卡或傳感器。
2)賬号管理(account management)
主要是讓程式檢查賬戶是否被允許登入系統,密碼有效期或通路時間的限制等。典型的用法是基于一天的不同時間段來限制/允許通路某服務。
3)密碼管理(password management)
主要是更新使用者的認證标志時需要。
4)會話管理(session management) ‘
該子產品和一系列動作有關,表明服務啟動之前和關閉之後所執行的步驟,這包括記錄使用者的登入,登出,挂載必須的目錄等。
應用程式使用PAM認證:
每個使用PAM認證的應用程式都以pam_start開始,pam_end結束。PAM還提供了pam_get_item和pam_set_item共享有關認證會話的某些公共資訊,例如使用者名、服務名、密碼和會話函數。應用程式在調用了pam_start()後也能夠用這些API來改變狀态資訊。實際做認證工作的API函數有4個:
a)認證管理:包括pam_authenticate()函數認證使用者、pam_setcred()設定、重新整理或銷毀使用者證書。
b)賬号管理:包括pam_acc_mgmt()函數檢查認證的使用者是否可以通路他們的賬戶,該函數可以實作密碼有效期、通路時間限制等。
c)會話管理:包括pam_open_session()和para_close_session()函數管理會話和記賬,例如,系統可以存儲會話的全部時間。
d)密碼管理:包括pam_chauthok()函數改變密碼。
弱密碼檢測——John the Ripper
在internet環境中,過于簡單的密碼會使伺服器面臨重要的風險。作為管理人員的我們應及時找出那些密碼強度較弱的使用者賬戶,便于進行下一步的安全措施。
我們可以安裝John the Ripper 軟體進行檢測使用者的密碼強度。
1)下載下傳并安裝:官方網站是http://openwall.com/john/,在該網站可以擷取最新的穩定版源碼包
John the Ripper 不需要特别的安裝操作,編譯完成後的run子目錄中包括可執行程式John及相關配置檔案、字典檔案等,可以複制到任何位置使用。
2)弱密碼檢測
3)使用密碼字典檔案破解,預設的字典檔案為password.lst
對于密碼的暴力破解,字典檔案的選擇很關鍵。隻要字典檔案足夠完整,密碼破解隻是時間問題,
執行破解(破解之前需要重新拷貝shadow檔案)
2、網絡掃描(NMAP)
NMAP是一個強大的端口掃描類安全評測工具,官方網站是http://nmap.org/ NMAP被設計為檢測主機數量衆多的巨大網絡,支援ping掃描、多端口檢測、OS識别等多種技術
1)安裝NMAP包
2)、掃描文法及類型
3)針對本機進行掃描,檢查開放了哪些常用的tcp端口,udp端口
4)掃描常用的udp端口
實際上,NMAP提供的掃描類型、選項還有很多,适用于不同的掃描需。
總結:使用su指令,可以切換為其他使用者身份,并擁有該使用者的所有權限。切換時以目标使用者的密碼進行驗證。
使用sudo指令,可以以其他使用者的權限執行已授權的指令,初次執行時以使用者自己的密碼進行驗證。
RAM,是Linux系統可插拔認真子產品。
John the Ripper 是一款密碼破解工具,可用來檢測系統賬号的密碼安全性。
NMAP是一款端口掃描類工具,可用來檢查目标主機、網絡所開放的端口/伺服器等資訊。