• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Linux的PAM安全認證機制

      2017-03-09 04:17:13
      網(wǎng)絡(luò)安全和信息化 2017年1期
      關(guān)鍵詞:配置文件命令賬戶

      引言:對于Linux來說,如果提高安全性,防止非法用戶登錄系統(tǒng),是不可忽視的安全問題。因此,如何鑒別用戶的身份,成了問題的關(guān)鍵。使用PAM認證機制,可以簡單輕松的在系統(tǒng)或者程序中插入不同的認證模塊,來靈活高效的的鑒別用戶的身份。

      使 用PAM(Plugable Authentication Modules,即可插入的認證模塊)認證機制,可以簡單輕松的在系統(tǒng)或者程序中插入不同的認證模塊,來靈活高效的的鑒別用戶的身份。因為PAM模塊和程序是相互獨立的,可以根據(jù)需要自由的插入各種認證模塊,在程序或服務(wù)中集成多種身份認證機制,大大來提高系統(tǒng)和程序的安全性。

      使用NSS管理用戶信息

      一般來說,系統(tǒng)對登錄者的信息進行驗證,依靠的是“/etc/passwd”或者“/etc/shadow”密碼文件。在默認情況下針對的是本地登錄。如果系統(tǒng)中啟動了FTP服務(wù),訪問者也可以利用本地賬戶來通過FTP服務(wù)的驗證。諸如 Samba,MySQL,Apache等服務(wù),是無法利用本地賬戶進行驗證的,必須依靠其本身的認證設(shè)置。

      按照傳統(tǒng)的Unix認證方式,當用戶訪問郵件服務(wù)器等應(yīng)用程序時,需要提交賬戶名和密碼,該應(yīng)用程序會利用C Library庫中的函數(shù)得到對應(yīng)的密碼哈希值,并將其和存儲在本地的系統(tǒng)密碼文件中的哈希值進行比對。隨著系統(tǒng)中安裝的服務(wù)和程序的增多,為了便于賬戶信息集中管控,可以借助于LDAP目錄來實現(xiàn)。這樣,服務(wù)或者應(yīng)用為了實現(xiàn)認證,就必須重寫C Library庫中的函數(shù),使其支持LDAP賬戶信息認證。這種方法實現(xiàn)起來很繁瑣,為了解決該問題,最好辦法涉及到了NSS(Name Service Switch)。

      NSS其實是一些特定的模塊,和一系列的庫文件對應(yīng)。應(yīng)用程序只需添加所需的模塊,讓其負責(zé)上述重寫C Library庫中的函數(shù)的功能,而無需應(yīng)用程序自身的參與。在登錄時系統(tǒng)會將賬戶名轉(zhuǎn)換為唯一的UID,這其實就涉及到了名稱解析機制,這是由NSS負責(zé)。

      在Linux中,賬戶名可能存儲在不同的位置,這就必然需要多種名稱解析方法與之對應(yīng)。在NSS的配置文件中,可以管理和配置這些解析方法。執(zhí)行“vim /etc/nsswitch.conf”命令,在其中可以添加所需的NSS模塊。例如“hosts:”一行中可以添加“dns”,表示在執(zhí)行名稱解析時可以調(diào)用NSS中的DNS模塊來實現(xiàn)。在“password:”行中默認存在“files”項,表示從本地密碼文件中提取賬戶信息,在其后可以添加“LDAP”,表示允許通過NSS的LDAP模塊來定位目錄服務(wù)器位置,進而查找相關(guān)賬戶名等。

      在“shadow:files”一行中就說明了NSS和PAM存在的一定的聯(lián)系,即當NSS完成賬戶名稱的定位以及將其轉(zhuǎn)換為UID之后,還會告訴 PAM 到“/etc/shadow”文件中查找該賬戶對應(yīng)的密碼信息,即將用戶的輸入的密碼通過MD5(Salt)的方式轉(zhuǎn)換為哈希值,然后與“/etc/shadow”文件中對應(yīng)的賬戶的密碼哈希進行比對,如果一致則表示密碼正確。當然這種關(guān)聯(lián)并非絕對,實際上PAM認證機制也可以不用借助于NSS的名稱解析服務(wù)來查找用戶密碼存儲位置。對于很多服務(wù)或者程序來說,對應(yīng)的PAM認證也可以自行查找相關(guān)密碼的存儲位置。執(zhí)行“getent password”命令,就可以從“nsswitch.conf”文件中名為的“password”數(shù)據(jù)庫名中查詢其內(nèi)容,還可以執(zhí)行“getent shadow”,“getent group”,“getent hosts” 等命令,來查詢對應(yīng)的內(nèi)容。

      查看PAM模塊和配置文件

      執(zhí)行“cd/lib”命令,根據(jù)不同的系統(tǒng)版本,進入對應(yīng)的文件夾,例如對于64位系統(tǒng)來說,可以進入其中的“l(fā)ib64”目錄,執(zhí)行“l(fā)s”命令,可以顯示大量的模塊信息。要想支持一個新的New Service名稱服務(wù),就必須在上述目錄中安裝名稱格式為“l(fā)ibnss_具體的服務(wù)名.so”的模塊文件。

      這樣,當用戶訪問某個程序或者服務(wù)時,由特定的NSS模塊負責(zé)處理用戶名信息,而密碼的驗證和管控則交給相應(yīng)的PAM模塊來處理,程序和服務(wù)本身并不參與這些過程。其最大優(yōu)勢是實現(xiàn)了賬戶的集中管理,大大提高了安全管理的靈活性。例如,執(zhí)行“authconfig-tui”命令,在認證配置界面左側(cè)的“User Information”欄中可以選擇賬戶名稱查找和解析方式,包括“Cache Information”,“User LDAP”,“Use NIS”,“Use IPAv2”,“Use Winbind”等。

      這樣,對于用戶名稱信息就交由LDAP模塊負責(zé),對其的認證則交由Kerberos模塊負責(zé)。和Kerberos模塊對應(yīng)的是“/lib64/security/pam_krb5.so”文件,該文件負責(zé)調(diào)用Kerberos認證,而無需應(yīng)用程序參與。在上述“l(fā)ib64”目錄中進入“security”目錄,執(zhí)行“l(fā)s”命令,可以查看所有的PAM模塊文件,這些庫文件都是以“PAM_”開頭的。例如,按照上述方法在本地“/etc/shadow”文件中實現(xiàn)密碼認證,就需要使用到其中的“PAM_unix.so”模塊。PAM認證模塊同樣工作于中間層,在應(yīng)用程序和系統(tǒng)之間提供認證功能。程序或服務(wù)只需調(diào)用對應(yīng)的PAM模塊,就可簡單快捷的來驗證用戶的身份。

      除了系統(tǒng)自帶的PAM模塊外,用戶也可以手工安裝所需的PAM模塊,例如當執(zhí)行Kerberos認證的“kerberos5.so”庫文件并不存在時,可以執(zhí)行“yum provide "/lib64/security/pam_krb5.so"”命令來查找該文件來自何處。執(zhí)行“yum–y install pam_krb5”命令,來安裝該庫文件。當安裝了一個新的PAM模塊,就相當于提供了一種新的認證方式。只要修改程序的PAM配置信息,就可以立即讓該認證方式生效。

      PAM配置文件中的控制參數(shù)

      使 用“required”,“requisite”,“sufficient”,“optional”等參數(shù),可以對上述管理組進行有效控制。對于“required”來說,執(zhí)行的認證必須成功,否則繼續(xù)保持之后的測試,但是最后的結(jié)果是失敗的。例如當?shù)卿汱inux時,先輸入用戶名,即使輸入錯誤的用戶名,系統(tǒng)也不會提示錯誤,而是允許繼續(xù)輸入密碼,但是最終的結(jié)果是無法登錄系統(tǒng)。例如對于“session required pam_limits.so” 來說,會執(zhí)行限制訪問方面的檢測。如在上述“l(fā)imits.conf”文件中添加“yonghu1-maxlogins 2”一行,表示只允許“yonghu1”用戶最多登錄2個控制臺。這樣,當其登錄的控制臺數(shù)量大于預(yù)設(shè)值后就拒絕其繼續(xù)登錄。

      對于“requisite”來說,如果執(zhí)行的驗證失敗,則立即返回失敗信息。例如,在登錄時,如果密碼錯誤,則立即結(jié)束測試并退出。對于“sufficient”來說,不管之前的認證是否通過,只要該次認證通過,就表示測試成功。對于“optional”參數(shù)來說,通常和“session”管理組配合使用?!皊ession optional pa m_kb r5”,“se ssion optional pam_ldap.so”來說,表示不管認證成功與否,都需要在日志中記錄相關(guān)信息,例如何時認證成功/失敗等。但這對于最終的認證結(jié)果沒有什么影響。

      解析簡單的PAM配置文件

      以一個簡單的PAM配置文件為例來分析其功能。例如打開某個PAM配置文件,其第一行為“auth required pam_env.so”,其功能是通過“pem_env.so”文件,根據(jù)“/etc/security/pam_env.conf”文件給出的變量設(shè)置一個環(huán)境?!癮uth sufficient pam_unix.so likeauth nullok”一行的作用是調(diào)用“pam_unix.so”模塊來檢測用戶的密碼,其中的“l(fā)ikeauth”參數(shù)表示允許用戶在輸入密碼時打錯字或者更換密碼字符,只要最終輸入的是正確的密碼即可,“nullok”參數(shù)允許用戶使用空白的密碼,出于安全考慮,最好不要使用該參數(shù)。如果用戶輸入的密碼正確,就不必執(zhí)行以下檢測了。

      “auth required pam_deny.so”行的作用是拒絕訪問,表示密碼出錯將拒絕用戶登錄?!癮ccount required pam_unix.so”行的作用是檢查該用戶是不是一個合法的賬戶以及其是否失效,注意這里使用了“required”管理組,說明只要是無效賬戶,即使其余的檢測通過也將拒絕登錄。“password required pam_cracklib.so retry=3”行的作用是檢查用戶輸入的密碼是不是常見的單詞,如果是的話將不允許其作為密碼使用,“retry=3”參數(shù)表示擁有三次輸入機會,這里使用“required”管理組,如果出錯將無法登錄。

      “password sufficient pam_unix.so use_authtok md5 shadow”行的作用是如果用戶已經(jīng)擁有了身份驗證令牌,就不需提示用戶輸入密碼。因為用戶已經(jīng)輸入了密碼,而且經(jīng)過了驗證,就將該密碼經(jīng)過MD5加密后存放到“/etc/shadow”文件 中。“password required pam_deny.so”行的作用是以上驗證失敗,將拒絕用戶登錄?!皊ession required pam_limits.so”行的作用是根據(jù)“/etc/security/limits.conf”文件的內(nèi)容限制用戶的對系統(tǒng)資源使用情況,包括文件打開的數(shù)量,內(nèi)存使用量,允許訪問進程數(shù)量,最大登錄次數(shù)等?!皊ession required pam_unix.so”行的作用是將本次登錄時間信息寫入到“l(fā)astlog”文件中的“最后一次登錄時間”,將原來的最后一次登錄時間信息提交給“/bin/login”程序。

      PAM認證的常見實例

      使 用“vim /etc/pam.d/system-auth”命令,將其中的“auth required pam_deny.so”行修改為“auth required pam_permit.so”,將“password required pam_deny.so”行修改為“password required pam_permit.so”就會產(chǎn)生一個奇特的效果,不管用戶輸入什么密碼,都可以順利登錄。當然,在實際中是需要嚴格控制訪問權(quán)限的。例如只允許root用戶可以從本地登錄,只允許“yonghu1”用戶從網(wǎng)址192.168.1.100登 錄,可以執(zhí)行“vim /etc/pam.d/login”命令,在“l(fā)ogin”配置文件中第二行之后添加“auth required pam_access.so accessfile=/etc/login.conf”行,使 用了“pam_access”模 塊,通過配置文件“/etc/login.conf”來進行登錄控制。使 用“vim /etc/login.conf”命令,在該文件中添加“+:root:LOCAL”,“:yonghu1:192.168.1.100”,“-:ALL:ALL”等語句,就實現(xiàn)了上述功能,其中的“+”參數(shù)表示允許訪問,“-”參數(shù)表示拒絕訪問。

      如果想更改登錄時系統(tǒng)顯示的內(nèi)容,可以執(zhí)行“vim/etc/issue”命令來設(shè)置需要顯示的內(nèi)容。之后執(zhí)行“vim/etc/pam.d/login”命 令,在其中添加“auth pam_issue.so issue=/etc/issue”行即可。如果不希望有些用戶使用SSH安全連接,可以在“/etc/allowsshd”文 件中添加所需的賬戶,之后在“/etc/pam.d/sshd”配 置文件中添加“auth required pam_listfile.so onerr=fail item=user sense=allow file=/etc/allowsshd”一行,就可禁止其使用SSH。

      在“/etc/security/time.conf”文件中添加“l(fā)ogin;tty*&;!ttyp*;!root;!Al0000-2400” 和“xxx;*;!yonghu1;Wd 0000-2400|wk1800-0800”兩行語句,表示禁止非Root賬戶在任意時間段從控制臺登錄,同時允許非“yongh1”的賬戶在非工作時間段訪問名為“xxx”的服務(wù)。為了防止DoS類型的攻擊,可以對系統(tǒng)中所有的用戶資源使用情況進行限制,例如編輯“/etc/security/limits.conf”文件,在其中添 加“* hard core 0”,“*hard rss 50000”,“* hard nproc 20”,表示禁止所有用戶調(diào)試文件,限制其最多可以訪問50個進程,限制其內(nèi)容使用量為50MB。在“/etc/pam.d/login”文件中添 加“session required /etc/security/limits.conf”,這樣當用戶登錄之后,就會受到上述限制。為了防止用戶隨意使用“su”命令,切換到root環(huán)境,可以執(zhí)行“vim/etc/pam.d/su”命 令,在其中添加“auth sufficient pam_rootok.so debug”,“auth required pam_wheel.so group=aut”。 這樣,只有“aut”組中的賬戶才可以使用“su”命令,切換到root環(huán)境。

      猜你喜歡
      配置文件命令賬戶
      提示用戶配置文件錯誤 這樣解決
      只聽主人的命令
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      探索自由貿(mào)易賬戶體系創(chuàng)新應(yīng)用
      中國外匯(2019年17期)2019-11-16 09:31:14
      外匯賬戶相關(guān)業(yè)務(wù)
      中國外匯(2019年10期)2019-08-27 01:58:28
      忘記ESXi主機root密碼怎么辦
      父親的股票賬戶
      特別健康(2018年4期)2018-07-03 00:38:20
      移防命令下達后
      這是人民的命令
      巩义市| 赞皇县| 阿克苏市| 宽甸| 宜兴市| 勃利县| 弋阳县| 重庆市| 彭山县| 丹凤县| 贺兰县| 额济纳旗| 丰县| 河曲县| 辛集市| 大名县| 台北市| 镇巴县| 宜君县| 阆中市| 荆州市| 通化县| 葵青区| 扎囊县| 平果县| 南汇区| 靖宇县| 乌恰县| 桃江县| 广灵县| 大渡口区| 固镇县| 合水县| 张家界市| 邯郸市| 清流县| 略阳县| 石城县| 都江堰市| 大庆市| 灵璧县|