本次實驗使用的centos 7 版本
一、查找系統中是否存在空密碼賬戶
1、使用命令: awk -F: '($2==""){print $1}' /etc/shadow 直接查看。可以看到系統中沒有空密碼賬戶
2、驗證一下。添加一個賬戶qwe, 命令:useradd qwe(此時qwe雖然沒有密碼但是他還不能使用空密碼登錄)
3、使用root賬戶清除qwe密碼,passwd -d qwe
4、再次使用 awk -F: '($2==""){print $1}' /etc/shadow 命令查看系統中空密碼賬戶
二、查找uid值為0的用戶。
如果passwd文件中uid值為0的話,那么這個用戶就擁有root權限。
1、查找uid為0賬戶: awk -F: '($3==0){print $1}' /etc/passwd 可以看到當前系統只有root賬戶擁有root權限。
2、修改權限的話,以root用戶權限修改passwd文件中的uid為0,保存退出。
在root用戶下使用su - lu切換lu用戶
此時切換lu用戶是,依然顯示的是root的狀態,但是查看history明顯是lu用戶,而且lu已經獲取到了root的權限,使用該用戶可以做root用戶的操作
查看uid為0命令 awk -F: '($3==0){print $1}' /etc/passwd
接下來我想到,用lu用戶修改/etc/passwd文件中root用戶uid為1000,保存退出
然后切換回root用戶,以此時uid為1000的root查看passwd時,文件已變為只讀
三、安全加固的一些方案
1、密碼策略
修改 /etc/login.defs文件中相應參數
PASS_MAX_DAYS 密碼有效期
PASS_MIN_DAYS 修改密碼的最短期限
PASS_MIN_LEN 密碼最短長度
PASS_WARN_AGE 密碼過期提醒
2、修改密碼策略
修改vi /etc/pam.d/system-auth文件,將password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= 注釋並在其下面新增1行 password requisite pam_cracklib.so try_first_pass minlen=8 difok=5 dcredit=-1 lcredit=-1 ocredit=-1 retry=1 type=
備注:
try_first_pass而當pam_unix驗證模塊與password驗證類型一起使用時,該選項主要用來防止用戶新設定的密碼與以前的舊密碼相同。
minlen=8:最小長度8位
difok=5:新、舊密碼最少5個字符不同
dcredit=-1:最少1個數字
lcredit=-1:最少1個小寫字符,(ucredit=-1:最少1個大寫字符)
ocredit=-1:最少1個特殊字符
retry=1:1次錯誤后返回錯誤信息
type=xxx:此選項用來修改缺省的密碼提示文本
3、新口令不能與10個最近使用的相同
修改vi /etc/pam.d/system-auth文件,在password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok 所在行的后面添加 remember=11
4、設置會話超時
修改vi /etc/profile文件在最后添加參數export TMOUT=600。(600秒 十分鍾)
5、賬戶鎖定策略(終端登錄)
修改vi /etc/pam.d/system-auth文件,在# User changes will be destroyed the next time authconfig is run.行的下面,添加 auth required pam_tally2.so deny=5 unlock_time=1800 even_deny_root root_unlock_time=1800(終端登錄失敗5次,鎖定半小時)
6、禁止root通過ssh遠程登錄
修改vi /etc/ssh/sshd_config文件,將配置參數#PermitRootLogin yes改成PermitRootLogin no