解決jenkins配置ssh祕鑰登入時的兩種異常
系統安全及應用
目錄賬號安全控制
賬號安全基礎措施
系統賬號清除
1.將非登入使用者的shell設為/sbin/nologin
2.鎖定長期不使用的賬號
3.刪除無用的賬號
4.鎖定賬號檔案passwd、shadow
示例:
方法一
使用usermod命令修改使用者賬號屬性
-s:修改shell
方法二
這裡有兩種命令用法基本一致
passwd [選項] 使用者名稱
-l :鎖定使用者賬號
-u:解鎖使用者賬號
-S:檢視使用者狀態
usermod [選項] 使用者名稱
-L:鎖定使用者賬號
-U:解鎖使用者賬號
這兩條命令可以串起來用,好比我用passwd命令鎖定使用者可以用usermod命令解鎖,反之也是可以的。
方法三
新增-r選項時,表示連同使用者的宿主目錄一併刪除
方法四
鎖定使用者賬號檔案passwd、shadow
使用chattr命令更改檔案屬性
-i:不得任意更改檔案或目錄
密碼安全控制
1.設定密碼有效期
2.要求使用者下次登入時修改密碼
chage命令
用來修改帳號和密碼的有效期限。
格式:
chage [選項] 使用者名稱
常用選項
-m:密碼可更改的最小天數。為零時代表任何時候都可以更改密碼。
-M:密碼保持有效的最大天數。
-w:使用者密碼到期前,提前收到警告資訊的天數。
-E:帳號到期的日期。過了這天,此帳號將不可用。
-d:上一次更改的日期。
-i:停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用。
-l:例出當前的設定。由非特權使用者來確定他們的密碼或帳號何時過期。
1.設定密碼有效期
方法一
使用chage命令進行修改(這種方法適合用於已有使用者修改)
方法二
進入配置檔案修改檔案位置/etc/login.defs(這種方法只針對新建使用者)
2.要求使用者下次登入時修改密碼方法與上方一樣
方法
命令歷史限制
1.減少記錄的命令條數
方法一
通過配置檔案修改,檔案位置/etc/profile(此方法為永久修改當前shell環境)
方法二
使用export命令定義變數(此方法針對所有的bash環境重啟後將失效)
2.登出時自動清空歷史命令
[root@localhost ~]# vim .bash_logout #編輯關機自動啟動配置檔案
echo " " > ~/.bash_history
3.開機時自動清除歷史命令
[root@localhost ~]# vim .bashrc#編輯開機自動啟動配置檔案
echo " " > ~/.bash_history
終端自動登出
閒置20秒後自動登出
方法一
寫入配置檔案 檔案位置 .bash_profile
[root@localhost ~]# vim .bash_profile #編輯配置檔案
su命令
用途及用法
用途(Subastitute User):用於切換使用者
格式:su -[目標使用者] (這裡如果不加目標使用者系統預設切換到root使用者)
密碼驗證
1.從root切換到任意使用者不需要驗證密碼
2.普通使用者切換到其他使用者需要驗證目標使用者的密碼
3.限制使用者使用su切換使用者
wheel組
wheel組的作用
wheel組是一個很特殊的使用者組,它被一些Unix系統用來控制能否通過su命令來切換到超級使用者(root使用者)。也就是說在wheel組中的成員有一些特殊的許可權,我們可以通過把普通使用者加入wheel組,然後配置相關的檔案就可以使處在wheel 組的成員有特殊許可權,而且可以用su命令來切換到root使用者。為了加強系統的安全性,我們可以配置一些檔案使得非wheel組的成員無法用 su命令切換的root使用者。這麼做的好處是我們在需要root的許可權才能操作時我們直接su切換到root即可,無需再次用root用 戶登陸,同時還能禁止其他非wheel組的成員通過su命令來切換到root使用者,這樣就加強了系統的安全性。
示例:
[root@localhost ~]# gpasswd -a ky18 wheel
正在將使用者“ky18”加入到“wheel”組中
[root@localhost ~]# vim /etc/pam.d/su #編輯pam認證模組
檢視su操作記錄
安全日誌檔案位置:/var/log/secure
sudo命令—提升執行許可權
sudo命令作用以及用法
作用:指定使用者以超級使用者的身份來執行部分命令
用法:sudo 授權命令
1.在配置檔案中新增授權,檔案位置visudo 或者 vim /etc/sudoers
root ALL=(ALL) ALL #這裡的all表示所以命令
記錄格式 :使用者 登入主機 = (代表使用者) 命令
可以使用萬用字元“ * ”號任意值和“ !”號進行取反操作。
許可權生效後,輸入密碼後5分鐘可以不用重新輸入密碼。
示例一:
示例二:
示例三:
也可以在/etc/sudoers配置檔案裡使用alias設定別名進行批量給普通使用者提升執行許可權
驗證
子目錄
在配置檔案下建立子目錄將使用者許可權寫入子目錄
驗證
PAM安全認證
su命令的安全隱患
預設情況下,任何使用者都允許使用su命令,有機會反覆嘗試其他使用者(如root) 的登入密碼,帶來安全風險;
為了加強su命令的使用控制,可藉助於PAM認證模組,只允許極個別使用者使用su命令進行切換。
PAM(Pluggable Authentication Modules)可插拔式認證模組
是一種高效而且靈活便利的使用者級別的認證方式
也是當前linux伺服器普遍使用的認證方式
PAM認證原理
一般遵循的順序
Service (服務)—>PAM (配置檔案) —>pam_*.so
首先要確定哪一項服務,然後載入相應的PAM的配置檔案(位於:/etc/pam.d),最後呼叫認證檔案(位於:/bin/security下)進行安全認證。
使用者詢問服務時,伺服器的某一個服務程式把使用者的請求傳送到PAM模組進行認證。
不同的應用程式所對應的PAM模組時不同的。
如果想檢視某個程式是否支援PAM 認證,可以用ls命令進行檢視/etc/pam.d/
PAM安全認證流程
控制型別也稱作Control Flags,用於PAM驗證型別返回的結果
1.required驗證失敗時任然繼續,但返回Fail
2.requisite驗證失敗則立即結束整個驗證過程,返回Fail
3.sufficien驗證成功則立即返回,不在繼續,否則忽略結果並繼續
4.optional不用於驗證,只顯示資訊
系統引導和登入控制
開關機安全控制
調整BLOS引導設定
將第一引導裝置設為當前系統所在硬碟
禁止從其他裝置(光碟、U盤、網路)引導系統
將安全級別設為setup,並設定管理員密碼
GRUP限制
使用grub2-mkpasswd-pbkdf2生成金鑰
修改/etc/grub.d/00_header檔案中,新增密碼記錄
生成新的grub.cfg配置檔案
示例一:
示例二:
終端登入安全控制
限制root只在安全終端登入
安全終端配置:/etc/securetty
禁止普通使用者登入
建立/etc/nologin
刪除nologin檔案或重啟後即恢復正常
弱口令檢測
Joth the Ripper,簡稱為 JR
一款密碼分析工具,支援字典式的暴力破解
通過對shadow檔案的口令分析,可以檢測密碼強度
暴力破解密碼
示例:
只能破解密碼檔案中已有的密碼password.lst