系統安全與使用者

2020-10-27 12:00:43

一、賬號安全控制

1.1 賬號清理

賬號清理手段

  • 將非登入的使用者的shell設為 /sbin/nologin
  • 鎖定長期不使用的賬戶
  • 刪除無用的賬號
  • 鎖定賬號檔案passwd,shadow

賬號清理的具體命令

useradd命令

useradd -s /sbin/nologin  使用者名稱   ## 建立賬戶的時候設定為不可登入

usermod命令

usermod -L 使用者名稱    ## 鎖定已建立好的賬戶
usermod -U 使用者名稱	    ## 與 -L對應解鎖鎖定的賬戶

passwd命令

passwd -l 使用者名稱     ## 鎖定已建立的賬戶
passwd -u 使用者名稱     ## 對 -l對應解鎖鎖定的賬戶

userdel命令

userdel [-r] 使用者   ## 刪除使用者,加 -r刪除使用者時宿主目錄也會被刪除

1.2 鎖定賬號檔案chattr

chattr的命令

[root@server1 ~]# chattr +i  /[目錄]   ## 對該目錄進行保護,不能對該目錄進行刪除、改名、設定連結關係,同時不能寫入或新增內容
[root@server1 ~]# chattr -i  /[目錄]   ## 解鎖該目錄的鎖定,可正常對該目錄進行操作
[root@server1 ~]# lsattr 目錄    ## 與chattr搭配使用,檢視chatte操作後的狀態

chattr命令的用法

選項作用
+在原有引數設定的基礎上,追加引數
-在原有引數設定基礎上,移除引數
=更新為指定引數設定

chattr的常用選項

選項作用
i設定檔案不能被刪除、改名、設定連結關係,同時不能寫入或新增內容
a設定改引數後,只能向該檔案中新增資料,而不能移除。多用於伺服器紀錄檔檔案安全。只有root才能設定這個屬性

chattr的注意事項

chattr命令不能保護 /、/dev、/tmp、/var 目錄

1.3 密碼安全控制

設定密碼有效期
要求使用者下次登入時修改密碼

[root@server1 ~]# chage -M 30 使用者名稱   ## 設定該使用者密碼可用時間30天
[root@server1 ~]# chage -d 0 使用者名稱    ## 設定該使用者下次登入時修改密碼

1.4 命令歷史限制

減少記錄的命令條數

[root@server1 ~]# vi /etc/profile   ## 進入該檔案
HISTSIZE = 100         ## 將命令條數限制為100,預設為1000

登出時自動清空命令歷史

[root@server1 ~]# vi .bash_logout    ## 進入登出設定命令
	 ~/.bash_logout     ## 如果前面有#的需要將#去掉
	history -c             ## 清空歷史
	clear                  ## 清屏
	echo ""> /root/.bash_history     ## 將.bash_history目錄清空
[root@server1 ~]#source .bash_history   ## 不關機的情況下執行上述命令

二、su與sudo

2.1 su命令

作用

切換使用者

格式

su 使用者名稱稱

密碼驗證

  • root使用者切換到其他使用者時不需要驗證密碼
  • 普通使用者切換到其他使用者時需要驗證密碼

除root使用者外允許使用su命令的條件

預設註釋掉執行非wheel組使用者無法使用su命令
在這裡插入圖片描述

2.1.1 su命令的安全隱患

預設情況下,任何使用者都允許使用su命令,有機會反覆嘗試其他使用者(如root)的登入密碼,會帶來安全隱患。
為了加強su命令的使用控制,可藉助於PAM認證模組,只允許極個別使用者使用su命令進行切換。

2.2 sudo命令

  • 設定sudo授權
    在visudo 或者vi /etc/sudoers檔案中修改
  • 記錄格式
    使用者 主機名列表=命令程式列表

三、安全控制

3.1 PAM可插拔式認證模組

  • 是一種高階且靈活便利的使用者級別的認證方式
  • 也是當前linux伺服器普遍使用的認證方式

3.1.1 PAM認證原理

  • service(服務)→PAM(組態檔)→PAM_*.so
  • 首先要確定哪一項服務,然後載入相應的PAM的組態檔(位於 /etc/pam.d下),最後呼叫認證檔案(位於 /lib/security下)進行安全認證
  • 用於存取伺服器時,伺服器的某一個伺服器程式把使用者的請求傳送到PAM模組進行認證
  • 不同的應用程式所對應的PAM模組是不同的

3.1.2 PAM認證的構成

檢視某個程式是否支援PAM認證,可用ls命令

ls /etc/pam.d | grep su

檢視su的PAM的組態檔

cat /etc/pam.d/su

每一行都是一個獨立的認證過程,每行可以區分為3個欄位
認證型別
控制型別
PAM模組及基引數

3.1.3 PAM安全認證型別

控制型別也稱作Control Flags,用於PAM驗證型別的返回結果
在這裡插入圖片描述

  1. required驗證失敗時仍然繼續,但返回Fail;
  2. requisite驗證失敗則立即結束整個驗證過程,返回Fail;
  3. sufficient驗證成功則立即返回,不在繼續,否則忽略結果並繼續;
  4. optional不用於驗證,為顯示資訊(通常用於session型別)

3.2 開關機安全控制

3.2.1 調整BIOS引導設定

  • 將第一引導裝置設為當前系統所在硬碟
  • 禁止其它裝置(光碟、U盤、網路)引導系統
  • 將安全級別setup並設定管理員密碼

3.2.2 GRUB限制

  • 使用grub2-mkpasswd-pbkdf2生成金鑰
  • 修改 /etc/grub.d/00_header 檔案中新增密碼記錄
  • 生成新的grub.cfg組態檔

3.2.3 命令過程

grub2-mkpasswd-pbkdf2         ## 生成金鑰
複製is後的密碼
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak 
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
vi /etc/grub.d/00_header    ## 進入檔案中
	cat << EOF
	set superusers="root"
	password_pbkdf2 root
	貼上上面已複製的密碼
	EOF
grub2-mkconfig -o /boot/grub2/grub.cfg   ## 使金鑰生效

3.3 終端登入安全控制

限制root只在安全終端登入

安全終端設定: /etc/securetty

禁止普通使用者登入

在root目錄下新建 /etc/nologin檔案
刪除nologin檔案或重新啟動即恢復正常

3.4 系統弱口令監測

  • Joth the Ripper,簡稱JR。是一款密碼分析工具,支援字典式的暴力破解
  • 通過對shadow檔案的口令分析,可以檢測密碼強度
  • 官方網站:http://www/openwall.com/john/

3.4.1 John簡單密碼暴力破解命令

方式一:

匯入john.tar.gz壓縮包
tar.zxvf john.tar.gz    ## 解壓john壓縮包
cd john-1.8.0     
cd src
make clean linux-x86-64   ## 執行編譯檔案
ls .. /run/john        ## 檢視上一級目錄是否生成john程式
cp /etc/shadow root/shadow.txt    ## 複製密碼檔案
.john /root/shadow.txt      ## 破譯賬戶弱密碼
.john --show /root/shadow.txt    ## 檢視已破譯出的賬戶列表

方式二

:> john.pot
./john --wordlist=./password.lst  /root/shadow.txt
./john --show /root/shadow.txt

3.5 網路埠掃描NMAP

  • 一款強大的網路掃描,安全檢測工具
  • 官網:http://nmap.org/
  • CentOS7.3光碟中的安裝包 nmap-6.40-7.e17.x86_64.rpm

3.5.1 NMAP掃描

nmap [掃描型別] [選項] <掃描目標>

3.5.2 常用的掃描型別

選項作用
-sTtcp掃描連線
-sUudp掃描連線
-sPicmp掃描
-sStcp syn掃描
-sFtcp fin掃描
-P指定埠掃描