1. 程式人生 > 其它 >解決jenkins配置ssh祕鑰登入時的兩種異常

解決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