Ⅰ Linux認證的概念
Linux認證的概念
RHCA(Red Hat Certified Architect),是RedHat公司在2004年推出的頂級認證,也是Linux界公認的操作系統最高級認證。下面是我整理的關於Linux認證的概念,歡迎大家參考!
Linux用戶認證方法簡介
當今IT環境中,任何計算機系統都要充分考慮設計、使用和運行過程中的安全性。所以在目前主流操作系統的各個環節當中都增加了很多安全方面的功能和特性,而在眾多的安全特性和功能中有相當多的技術是確保用戶鑒別和身份認證方面的安全性的。
所謂用戶鑒別,就是用戶向系統以一種安全的方式提交自己的身份證明,然後由系統確認用戶的身份是否屬實的過程。換句話說,用戶鑒別是系統的門戶,每個用戶進入到系統之前都必須經過鑒別這一道關。 而所謂認證安全,簡而言之就是計算機系統確認了用戶是經過授權的合法用戶之後才能允許訪問。安全認證最常用的方式是比對用戶輸入和預存於資料庫中的密碼。
不過在用戶進行身份鑒別和安全認證的過程中,肯定會涉及幾個核心問題。例如:
如何真正實現正確鑒別用戶的真實身份?
在鑒別用戶合法身份之後,如何確定用戶可以對哪些資源進行訪問?
如何控制用戶以何種方式來訪問計算機資源?
如何對用戶的安全訪問隨時隨地按需調整?
上述這些問題都是在設計鑒別和認證程序過程中需要充分考慮和精心設計的。而在Linux類的操作系統中,這些問題的處理實際上有一套完整的流程和機制。
在Linux類的操作系統中,最初用戶鑒別過程就像各種Unix操作系統一樣:系統管理員為用戶建立一個帳號並為其指定一個口令,用戶用此指定的口令登錄之後重新設置自己的口令,這樣用戶就具有了一個只有它自己知道的口令或者密碼。一般情況下,用戶的身份信息在Linux系統中存放在/etc/passwd文件當中,這實際上是一個擁有簡單格式的資料庫表,通過":"作為分隔符分隔出多個欄位,其中包括用戶的名稱、用戶ID、組ID、用戶說明、主目錄和登錄使用的shell等相關信息。而用戶口令經過加密處理後存放於/etc/shadow 文件中。也是一個格式類似的資料庫表,除了用戶名和經過加密之後的密碼之外,還包括多個對密碼有效期進行定義的欄位,包括密碼有效時間、密碼報警時間等。
用戶登錄的時候,登錄服務程序提示用戶輸入其用戶名和口令,然後將口令加密並與/etc/shadow 文件中對應帳號的加密口令進行比較,如果口令相匹配,說明用戶的身份屬實並允許此用戶訪問系統。這種思想基於只有用戶自己知道它的口令,所以輸入的口令是正確的話,那麼系統就認定它是所聲稱的那個人。
在Linux類操作系統中,定義用戶信息和密碼信息的欄位和格式都需要符合標準的Linux Naming Service Switch定義,即NSS定義。因此用戶信息只要保證滿足NSS規范,就可以來源於本地passwd和shadow之外的其它信息資料庫和認證源。所以在此基礎上還派生出一些其它認證解決方案。例如NIS、LDAP等,都可作為存放用戶信息的資料庫,而存放用戶口令或者鑒別用戶身份的資料庫,可以採用專用於網路環境的Kerberos以及智能卡鑒別系統等方式。
這一整套的鑒別和認證方案貌似無懈可擊,但是將這種解決方案真正應用到操作系統中的話就會發現一些問題:
第一,在操作系統上所包含的認證不僅僅只涉及到系統登錄和訪問,在系統外圍往往提供了眾多的應用程序,相當多的應用程序在訪問過程中是有認證需求的。那麼是否需要針對每一個應用程序都得加入認證和鑒別的功能?如果要,那麼無論從程序的開發和使用管理角度來講,工作量都將成倍增加;如果不要,則系統級的用戶鑒別和安全認證與應用程序沒有任何關系,意味著不管用戶是否需要登錄系統,但是對應用程序的訪問都將缺乏最基本的安全性。
第二,如果針對每一個應用程序都開發用戶鑒別和認證的功能,那麼一旦發現所用的.演算法存在某些缺陷或想採用另一種鑒別和認證方法時,開發者或者用戶都將不得不重寫(修改或替換)應用程序,然後重新編譯原程序。
所以,尤其是當實現鑒別功能的代碼以通常方法作為應用程序一部分一起編譯的時候,上述問題將十分突出。很明顯,傳統的身份鑒別和用戶認證方式一旦整合到實際的操作系統中,在實用當中缺乏靈活性。
鑒於以上原因,Linux操作系統的開發者和設計人員開始尋找一種更佳的替代方案:一方面,將鑒別功能從應用中獨立出來,單獨進行模塊化的設計,實現和維護;另一方面,為這些鑒別模塊建立標準的應用程序介面即API,以便眾多的應用程序能方便地使用它們提供的各種功能;同時,鑒別機制對上層用戶(包括應用程序和最終用戶)要求一定要是透明的,這樣可以對使用者隱藏其中比較復雜的實現細節。
可插拔認證模塊PAM的基本概念
事實上直到1995年的時候,SUN的研究人員才提出了一種滿足以上需求的方案,這就是可插拔認證模塊(Pluggable Authentication Mole--PAM)機制,並首次在其操作系統 Solaris 2.3上部分實現。
可插拔認證模塊(PAM)機制採用模塊化設計和插件功能,使用戶可以輕易地在應用程序中插入新的認證模塊或替換原先的組件,同時不必對應用程序做任何修改,從而使軟體的定製、維持和升級更加輕松。因為認證和鑒別機制與應用程序之間相對獨立。所以應用程序可以通PAM API來方便地使用PAM提供的各種鑒別功能而不必了解太多的底層細節。此外PAM的易用性也較強,主要表現在它對上層屏蔽了鑒別和認證的具體細節,所以用戶不必被迫學習各種各樣的鑒別方式,也不必記住多個口令;又由於它實現了多鑒別認證機制的集成問題,所以單個程序可以輕易集成多種鑒別機制,如Kerberos和Diffie - Hellman等認證機制,但用戶仍可以用同一個口令登錄而且感覺不到採取了各種不同的鑒別方法。
在廣大開發人員的努力下,各版本的UNIX系統陸續增加和提供了對PAM應用的支持。其中Linux-PAM是專門為Linux操作系統實現的,眾多的Linux操作系統包括Caldera、Debian、Turbo、Red Hat、SuSE 及它們的後續版本都提供對PAM的支持。而FreeBSD從3.1版本也開始支持PAM。而且除了具體實現方法上多少有些不同外,各種版本Unix系統上PAM的框架是相同的。所以我們在這里介紹的Linux的PAM框架知識具有相當的普遍性,而且在下文介紹其框架過程中可以看到,我們並沒有刻意區分Unix PAM與Linux PAM這兩個技術術語。
PAM的分層體系結構
PAM 為了實現其插件功能和易用性,採取了分層設計思想。就是讓各鑒別模塊從應用程序中獨立出來,然後通過PAM API作為兩者聯系的紐帶,這樣應用程序就可以根據需要靈活地在其中"插入"所需要的鑒別功能模塊,從而真正實現了在認證和鑒別基礎上的隨需應變。實際上,這一思路也非常符合軟體設計中的"高內聚,低耦合"這一重要思想。
PAM 的體系如下簡圖所示:
從上面的結構圖可以看出,PAM 的API起著承上啟下的作用,它是應用程序和認證鑒別模塊之間聯系的紐帶和橋梁:當應用程序調用PAM API 時,應用介面層按照PAM配置文件的定義來載入相應的認證鑒別模塊。然後把請求(即從應用程序那裡得到的參數)傳遞給底層的認證鑒別模塊,這時認證鑒別模塊就可以根據要求執行具體的認證鑒別操作了。當認證鑒別模塊執行完相應的操作後,再將結果返回給應用介面層,然後由介面層根據配置的具體情況將來自認證鑒別模塊的應答返回給應用程序。
上面描述了PAM的各個組成部分以及整體的運作機理。下面將對PAM中的每一層分別加以介紹。
第一層:模塊層。模塊層處於整個PAM體系結構中的最底層,它向上為介面層提供用戶認證鑒別等服務。也就是說所有具體的認證鑒別工作都是由該層的模塊來完成的。對於應用程序,有些不但需要驗證用戶的口令,還可能要求驗證用戶的帳戶是否已經過期。此外有些應用程序也許還會要求記錄和更改當前所產生的會話類的相關信息或改變用戶口令等。所以PAM在模塊層除了提供鑒別模塊外,同時也提供了支持帳戶管理、會話管理以及口令管理功能的模塊。當然,這四種模塊並不是所有應用程序都必需的,而是根據需要靈活取捨。比如雖然login可能要求訪問上述所有的四種模塊,但是su可能僅僅需要使用到鑒別模塊的功能即可。至於如何取捨則涉及到介面層的PAM API和配置文件,這部分內容將在後文中加以介紹。
第二層:應用介面層。應用介面層位於PAM結構的中間部分,它向上為應用程序屏蔽了用戶鑒別等過程的具體細節,向下則調用模塊層中的具體模塊所提供的特定服務。由上圖可以看出,它主要由PAM API和配置文件兩部分組成,下面將逐一介紹。
PAM API可以分為兩類:一類是用於調用下層特定模塊的介面,這類介面與底層的模塊相對應,包括:
鑒別類介面:pam_authenticate()用於鑒別用戶身份,pam_setcred()用於修改用戶的私密信息。
帳號類介面:pam_acct_mgmt()用於檢查受鑒別的用戶所持帳戶是否有登錄系統許可,以及該帳戶是否已過期等。
會話類介面:包括用於會話管理和記帳的 pam_open_session()和 pam_close_session()函數。
口令類介面:包括用於修改用戶口令的 pam_chauthtok()。
第二類介面通常並不與底層模塊一一對應,它們的作用是對底層模塊提供支持以及實現應用程序與模塊之間的通信等。具體如下:
管理性介面: 每組 PAM 事務從 pam_start()開始,結束於 pam_end()函數。介面 pam_get_item()和 pam_set_item()用來讀寫與 PAM 事務有關的狀態信息。同時,能夠用 pam_str()輸出 PAM 介面的出錯信息。
應用程序與模塊間的通訊介面:在應用程序初始化期間,某些諸如用戶名之類的數據可以通過 pam_start()將其存放在PAM介面層中,以備將來底層模塊使用。另外底層模塊還可以使用 pam_putenv()向應用程序傳遞特定的環境變數,然後應用程序利用pam_getenv()和pam_getenvlist()讀取這些變數。
用戶與模塊間的通訊介面:pam_start()函數可以通過會話式的回調函數,讓底層模塊通過它們讀寫模塊相關的鑒別信息,比如以應用程序所規定的方式提示用戶輸入口令。
模塊間通訊介面:盡管各模塊是獨立的,但是它們仍然能夠通過pam_get_item()和pam_set_item()介面共享某些與鑒別會話有關的公用信息,諸如用戶名、服務名、口令等。此外,這些API還可以用於在調用pam_start()之後,讓應用程序修改狀態信息。
讀寫模塊狀態信息的介面:介面pam_get_data()和pam_set_data()用以按照PAM句柄要求訪問和更新特定模塊的信息。此外,還可以在這些模塊後附加一個清除數據函數,以便當調用 pam_end()時清除現場。
由於 PAM 模塊隨需載入,所以各模塊始化任務在第一次調用時完成。如果某些模塊的清除任務必須在鑒別會話結束時完成,則它們應該使用 pam_set_data()規定清除函數,這些執行清除任務的函數將在應用程序調用 pam_end()介面時被調用。
;Ⅱ 全球認可的12個Linux認證
全球認可的12個Linux認證
1. CompTIA Linxu+
CompTIA Linux+ 是LPI(Linux Professional Institute,Linux專業委員會)主辦的一個Linux認證,在全世界范圍內提供培訓。其提供的Linux相關知識,可以用於從事一大批Linux相關專業的工作,如Linux管理員、高級網路管理員、系統管理員、Linux資料庫管理員和Web管理員。如果任何人想從事安裝和維護Linux操作系統,該課程會幫助他達到認證要求,並且通過提供對Linux系統更寬闊的認識,能夠為通過考試做好准備。LPI的CompTIA Linux+認證的主要目的就是,提供給證書持有者足夠扎實的,關於安裝軟體、操作、管理和設備排障的知識。我們可以付出一定的費用、時間和努力,完成CompTIA Linux+,同時獲得三個業內認可的證書:LPI LPIC-1和SUSE Certified Linux Administrator (CLA)證書。
認證代碼 : LX0-103,LX0-104(2015年3月30日啟動)或者LX0-101,LX0-102
題目數量:每次考試60道題
題目類型:多選
考試時長:90分鍾
要求:A+,Network+,並且有至少12個月的Linux管理經驗
分數線:500 (對於200-800的范圍來說)
語言:英語,將來會有德語,葡萄牙語,繁體中文,西班牙。
有效期:認證後三年有效
注意:不同系列的考試不能合並。如果你考的是LX0-101,那麼你必須考LX0-102完成認證。同樣的,LX0-103和LX0-104又是一個系列。LX0-103和LX0-104系列是LX0-101和LX0-102系列的升級版。
2. LPIC
LPIC,全稱Linux專業委員會認證( Linux Professional Institute Certification),是Linux專業委員會的一個Linux認證程序。這是一個多級別的認證程序,要求在每個級別通過一系列(通常是兩個)的認證考試。該認證有三個級別,包括初級水平認證 LPIC-1 ,高級水平認證 LPIC-2和最高水平認證 LPIC-3。前兩個認證側重於 Linux系統管理,而最後一個認證側重一些專業技能,包括虛擬化和安全。為了得到 LPIC-3 認證,一個持有有效的 LPIC-1 與LPIC-2 認證的考生必須通過300復雜環境測試、303安全測試、304虛擬化測試和高可用性測試中的一個。LPIC-1認證按照證書持有者可以通過運行Linux,使用命令行界面和基本的網路知識安裝,維護,配置等任務而設計,LPIC-2測試考生是否作為管理中小型混合網路的候選人。LPIC-3認證是為企業級Linux專業技能設計所設計,代表了最高的專業水平和不針對特定 Linux 發行版的行業認證。
認證代碼:LPIC-1(101和102),LPIC-2(201和202)和LPIC-3(300,303或者304)
題目類型:60個多項選擇
考試時長:90分鍾
要求:無,建議有 Linux Essentials 認證
分數線:500(在200-800的范圍內)
語言:LPIC-1:英語,德語,義大利語,葡萄牙語,西班牙語(現代),漢語(簡體),漢語(繁體),日語
LPIC-2:英語,德語,葡萄牙語,日語
LPIC-3:英語,日語
有效期:退休之後五年內仍然有效
3.Oracle Linux OCA
Oracle聯合認證(OCA)為個人而定製,適用於那些想證明其部署和管理Oracle Linux操作系統的知識牢固的人。該認證專業知識僅僅針對Oracle Linux發行版,這個系統完全是為Oracle產品特別剪裁的,可以運行Oracle設計的系統,包括Oracle Exadata資料庫伺服器,Oracle Exalytics In-Memory 伺服器,Oracle Exalogic 均衡雲,和Oracle資料庫應用等。Oracle Linux的“堅不可摧企業內核”為企業應用帶來了高性能、高擴展性和穩定性。OCA認證覆蓋了如管理本地磁碟設備、管理文件系統、安裝和移除Solaris包與補丁,優化系統啟動過程和系統進程。這是拿到OCP證書系列的第一步。OCA認證以其前身為Sun Certified Solaris Associate(SCSAS)而為人所知。
認證代碼:OCA
題目類型:75道多項選擇
考試時長:120分鍾
要求:無
分數線:64%
有效期:永遠有效
4. Oracle Linux OCP
Oracle專業認證(OCP)是Oracle公司為Oracle Linux提供的一個認證,覆蓋更多的進階知識和技能,對於一個Oracle Linux管理員來說。它囊括的知識有配置網路介面、管理交換分區配置、崩潰轉儲、管理軟體、資料庫和重要文件。OCP認證是技術性專業知識和專業技能的基準測試,這些知識與技能需要在公司里廣泛用於開發、部署和管理應用、中間件和資料庫。Oracle Linux OCP的工作機會在增長,這得益於工作市場和經濟發展。根據考試綱領,證書持有者有能力勝任安全管理、為Oracle 資料庫准備Oracle Linux系統、排除故障和進行恢復操作、安裝軟體包、安裝和配置內核模塊、維護交換空間、完成用戶和組管理、創建文件系統、配置邏輯卷管理(LVM)、文件分享服務等等。
認證代碼:OCP
題目類型:60至80道多項選擇題
考試時長:120分鍾
要求:Oracle Linux OCA
分數線:64%
有效期:永遠有效
5. RHCSA
RHCSA是紅帽公司作為紅帽認證系統工程師推出的一個認證程序。RHCSA們是指一些擁有在著名的紅帽Linux環境下完成核心系統管理技能和能力的人。這是一個入門級的認證程序,關注在系統管理上的實際勝任能力,包括安裝、配置一個紅帽Linux系統,接入一個可用的網路提供網路服務。一個紅帽認證的系統管理員可以理解和使用基本的工具,用以處理文件、目錄、命令行環境和文檔;操作運行中的系統,包括以不同的啟動級別啟動、識別進程、開啟和停止虛擬機和控制服務;使用分區和邏輯卷配置本地存儲;創建和配置文件系統和文件系統屬性,包括許可權、加密、訪問控制列表和網路文件系統;部署配置和維護系統,包括軟體安裝、更新和核心服務;管理用戶和組,包括使用一個中心的目錄用於驗證;安全性的工作,包括基本的'基本防火牆和SELinux配置。要獲得RHCE和其他認證,首先得認證過RHCSA。
認證代碼:RHCSA
課程代碼:RH124,RH134和RH199
考試代碼:EX200
考試時長:21-22小時,取決於選擇的課程
要求:無。有一些Linux基礎知識更好
分數線:300總分,210過(70%)
有效期:3年
6. RHCE
RHCE,也叫做紅帽認證工程師,是一個中到高級水平的認證程序,為一些想要學習更多技能和知識,成為一個負責紅帽企業Linux的高級系統管理員的RHCSA開設的,RHCE應該有能力、知識和技能來配置靜態路由、包過濾、NAT、設定內核運行參數、配置一個ISCSI初始化程序,生成並發送系統用量報告、使用shell腳本自動完成系統維護任務、配置系統日誌,包括遠程日誌、提供網路服務如HTTP/HTTPS、FTP、NFS、SMB、SMTP、SSH和NTP等等。推薦希望獲得更多高級水平的認證的RHCSA們、已經完成系統管理員I,II和III、或者已經完成RHCE 快速跟進培訓的人們參加認證。
認證代碼:RHCE
課程代碼:RH124,RH134,RH254和RH199
考試代碼:EX200和EX300
考試時長:21-22個小時,取決於所選課程
要求:一個RHCSA證書
分數線:300總分,210過(70%)
有效期:3年
7. RHCA
RHCA即紅帽認證架構師,是紅帽公司的一個認證程序。它的關注點在系統管理的實際能力,包括安裝和配置一個紅帽Linux系統,並加入到一個可用網路中運行網路服務。RHCA是所有紅帽認證中最高水平的認證。考生需要選擇他們希望針對的領域,或者選擇合格的紅帽認證的任意組合來創建一個他們自己的領域。這里有三個主要的領域:數據中心、雲和應用平台。精通數據中心領域的RHCA能夠運行、管理數據中心;而熟悉雲的可以創建、配置和管理私有雲和混合雲、雲應用平台以及使用紅帽企業Linux平台的靈活存儲方案;精通應用平台集合的RHCA擁有技能如安裝、配置和管理紅帽JBoss企業應用平台和應用,雲應用平台和混合雲環境,藉助紅帽的OpenShift企業版,使用紅帽JBoss數據虛擬化技術從多個資源里組合數據。
認證代碼:RHCA
課程代碼:CL210,CL220.CL280,RH236,RH318,RH413,RH436,RH442,JB248和JB450
考試代碼:EX333,EX401,EX423或者EX318,EX436和EX442
考試時長:21-22個小時,取決於所選課程
要求:未過期的RHCE證書
分數線:300總分,210過(70%)
有效期:3年
8. SUSE CLA
SUSE認證Linux管理員(SUSE CLA)是SUSE推出的一個初級認證,關注點在SUSE Linux企業伺服器環境下的日常任務管理。為了獲得SUSE CLA認證,不用必須完成課程任務,只需要通過考試就能獲得認證。SUSE CLA們能夠、也有技術去使用Linux桌面、定位並利用幫助資源、管理Linux文件系統、用Linux Shell和命令行工作、安裝SLE 11 SP22、管理系統安裝、硬體、備份和恢復、用YaST管理Linux、Linux進程和服務、存儲、配置網路、遠程接入、SLE 11 SP2監控,任務自動化和管理用戶訪問和安全工作。我們可以同時獲得SUSE CLA,LPIC-1和CompTIA Linux認證,因為SUSE,Linux Professional Institute和CompATI合作提供了這個同時獲得三個Linux認證的機會。
認證代碼:SUSE CLA
課程代碼:3115,3116
考試代碼:050-720,050-710
問題類型:多項選擇
考試時長:90分鍾
要求:無
分數線:512
9. SUSE CLP
SUSE認證Linux專業人員(CLP)是一個認證程序,為那些希望獲得關於SUSE Linux企業伺服器更多高級且專業的知識的人而服務。SUSE CLP是通過SUSE CLA認證後的下一步。應該通過CLA的考試並擁有證書,然後通過完成CLP的考試才能獲得CLP的認證。通過SUSE CLP認證的人員有能力完成安裝和配置SLES 11系統、維護文件系統、管理軟體包、進程、列印、配置基礎網路服務、samba、Web伺服器、使用IPv6、創建和運行bash shell腳本。
認證代碼:SUSE CLP
課程代碼:3115,3116和3117
考試代碼:050-721,050-697
考試類型:手寫
考試時長:180分鍾
要求:SUSE CLA 認證
10. SUSE CLE
SUSE認證Linux工程師(CLE)是一個工程師級別的高級認證,為那些已經通過CLE考試的人准備。為了獲得CLE認證,人們需要已經獲得SUSE CLA和CLP的認證。獲得CLE認證的人員擁有架設復雜SUSE Linux企業伺服器環境的技能。CLE認證過的人可以配置基本的網路服務、管理列印、配置和使用Open LDAP、samba、IPv6、完成伺服器健康檢測和性能調優、創建和執行shell腳本、部署SUSE Linux企業板、通過Xen實現虛擬化等等。
認證代碼:SUSE CLE
課程代碼:3107
考試代碼:050-723
考試類型:手寫
考試時長:120分鍾
要求:SUSE CLP 10或者11證書
11. LFCS
Linux基金會認證系統管理員(LFCS)認證考生使用Linux和通過終端環境使用Linux的知識。LFCS是Linux基金會的一個認證程序,為使用Linux操作系統工作的系統管理員和工程師准備。Linux基金會聯合業內專家、Linux內核社區,測試考生的核心領域、關鍵技能、知識和應用能力。通過LFCS認證的人員擁有一些技能、知識和能力,包括在命令行下編輯和操作文件、管理和處理文件系統與存儲的錯誤、聚合分區作為LVM設備、配置交換分區、管理網路文件系統、管理用戶帳號/許可權和屬組、創建並執行bash shell腳本、安裝/升級/移除軟體包等等。
認證代碼:LFCS
課程代碼:LFCS201,LFCS220(可選)
考試代碼:LFCS 考試
考試時長:2小時
要求:無
分數線:74%
語言:英語
有效期:兩年
12. LFCE
Linux基金會認證工程師(LFCE),是Linux基金會為Linux工程師推出的認證。相比於LFCS,通過LFCE認證的人員在Linux方面擁有更大范圍的技能。這是一個工程師級別的高級認證程序。LFCE認證的人具備一些網路管理方面的技能和能力,如配置網路服務、配置包過濾、監控網路性能、IP流量、配置文件系統和文件服務、網路文件系統、從倉庫安裝/升級軟體包、管理網路安全、配置iptables、http服務、代理服務、郵件服務等等。由於其為高級工程級別的認證程序,所以普遍認為相比LFCS,學習和通過的難度更大些。
認證代碼:LFCE
課程代碼:LFS230
考試代碼:LFCE 考試
考試時長:2小時
要求:認證過LFCS
分數線:72%
語言:英語
有效期:2年
;