lqc_系統賬號的安全管理

實驗一:系統賬號的安全管理

1)賬號清理

[root@www ~]# passwd -d u01

clip_image002

[root@www ~]# passwd -l u01

鎖定用戶 u01 的密碼 。

passwd: 操作成功

clip_image004

[root@www ~]# passwd -S u01

u01 LK 2016-01-18 0 99999 7 -1 (密碼已被鎖定。)

clip_image006

[root@www ~]# passwd -u u01

解鎖用戶 u01 的密碼 。

passwd: 警告:未鎖定的密碼將是空的。

passwd: 不安全的操作(使用 -f 參數強制進行該操作)

clip_image008

[root@www ~]# passwd -S u01

u01 LK 2016-01-18 0 99999 7 -1 (密碼已被鎖定。)

clip_image010

[root@www ~]# passwd -u u01 -f

解鎖用戶 u01 的密碼 。

passwd: 操作成功

clip_image012

小腳本管理系統用戶:

腳本一:結合計劃任務防止系統用戶登錄系統

[root@www ~]#

[root@www ~]# vim chsh_1-499.sh

#!/bin/bash

##by linuxfan

##檢測UID大於1小於500的系統用戶被設置爲/bin/bash,防止程序用戶登錄系統。

for i in $(awk -F : '$7~"bash$"{if($3 > 1 && $3 < 500) print $1}' /etc/passwd);do

chsh -s /sbin/nologin $i

done

:wq

clip_image014

測試:

chsh -s /bin/bash ftp

grep ftp /etc/passwd ##驗證修改

clip_image016

chmod +x chsh_1-499.sh

./chsh_1-499.sh

grep ftp /etc/passwd ##已經修復

clip_image018

[root@www ~]# echo "1 2 * * 7 /root/bin/chsh_1-499.sh" >>/var/spool/cron/root ##設置計劃任務

[root@www ~]# crontab -l

clip_image020

腳本二:結合mail命令郵件通知管理員,能登錄系統的用戶變化

vi chkuser.sh

#!/bin/bash

UN=$(grep /bin/bash |wc -l)

if [ $UN -gt 2 ];then

echo "user is too many." |mail -s "linux sys user alter." [email protected]

else

echo "user is ok."

fi

clip_image022

clip_image024

2)密碼安全:

a.檢查空密碼

腳本三:檢查密碼爲空的用戶,如果有空密碼的用戶鎖定用戶並郵件通知管理員

vi chkzonepwd.sh

#!/bin/bash

ELU=$(grep /bin/bash /etc/passwd |awk -F : '{print $1}')

for i in $ELU

do

ZPWD=$(grep $i /etc/shadow |awk -F : '{print $2}')

if [ -z $ZPWD ];then

passwd -l $i

echo "$i user password is zore." |mail -s "$i user passwd zore" [email protected]

else

echo "passwd is ok."

fi

done

clip_image026

clip_image028

3)優化賬號及密碼安全

a.優化新建賬號默認登錄shell

sed -i 's@/bin/bash@/sbin/nologin@g' /etc/default/useradd

useradd u03

tail -1 /etc/passwd ##u03的shell爲非交互式

clip_image030

chsh -s /bin/bash u03 ##當需要u03登錄時使用,作用與usermod -s 一樣

clip_image032

b.優化密碼使用時間

vi /etc/login.defs

PASS_MAX_DAYS 60

PASS_MIN_DAYS 2

PASS_MIN_LEN 8 ##密碼長度最小值

PASS_WARN_AGE 5 ##密碼過期提醒時間

:wq

clip_image034

useradd u04 ##修改後創建的賬號

tail -1 /etc/shadow ##驗證

clip_image036

針對已經建立用戶:

chage -m 2 u03 ##密碼使用最小值

chage -M 60 u03 ##密碼使用最大值

chage -W 5 u03 ##密碼過期提醒時間,在最大值前

chage -d 0 u01 ##下次登錄時修改密碼

tail -2 /etc/shadow

clip_image038

clip_image040

c.優化密碼複雜性要求

vi /etc/pam.d/system-auth

14行後添加如下內容:

minlen=8 dcredit=-2 ucredit=-1 lcredit=-1 ocredit=-1 ##長度最小值8,至少有2個數字,至少有1個大寫、小寫、特殊字符

14 password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-2 ucredit=-1 lcredit=-1 ocredit=-1

15 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=3 ##密碼歷史

:wq

clip_image042

su - u01 ##進入u01

passwd #修改密碼驗證

clip_image044

clip_image046

d.設置登錄失敗次數鎖定賬號

vi /etc/pam.d/system-auth

5行:

auth required pam_tally2.so deny=5

11行:

auth required pam_tally2.so

:wq

clip_image048

驗證需要在tty終端

pam_tally2 -u u01 ##查看登錄失敗的次數

clip_image050

clip_image052

pam_tally2 -r -u u01 ##重置u01,解鎖

clip_image054

clip_image056

e.修改密碼加密方法

MD5與sha512加密算法:

authconfig --test |grep hashing ##查看當前系統的加密算法

clip_image058

authconfig --passalgo=sha512 --update ##修改系統的加密算法爲sha512

clip_image060

vi /etc/pam.d/system-auth ##查看驗證

:q

clip_image062

3.歷史命令

a.清楚歷史命令

rm -rf ~/.bash_history

ln -s /dev/null ~/.bash_history

echo 'history -c ' >> ~/.bash_logout

clip_image064

b.設置記錄歷史的數量

history >my.hist ##導出歷史命令

export HISTSIZE=100 ##臨時設置記錄歷史命令的數量

sed -i 's/HISTSIZE=1000/HISTSIZE=200/g' /etc/profile

source /etc/profile

echo $HISTSIZE ##驗證

clip_image066

c.超時註銷

echo 'export TMOUT=300' >>/etc/profile ##設置300秒後註銷

source /etc/profile

unset TMOUT ##取消變量

clip_image068

5.鎖定文件:練習

[root@www ~]# man chattr

clip_image070

[root@www ~]# chattr +i /etc/{passwd,shadow} ##鎖定文件

clip_image072

[root@www ~]# lsattr /etc/{passwd,shadow} ##查看擴展權限

----i--------e- /etc/passwd

----i--------e- /etc/shadow

clip_image074

[root@www ~]# useradd u02 ##無法創建用戶也無法修改密碼

useradd: cannot open /etc/passwd

clip_image076

[root@www ~]# echo 123123 |passwd --stdin u01

更改用戶 u01 的密碼 。

passwd: 鑑定令牌操作錯誤

clip_image078

[root@www ~]# tail -2 /etc/passwd

mysql:x:500:500::/home/mysql:/sbin/nologin

u01:x:501:501::/home/u01:/bin/bash

clip_image080

[root@www ~]# ls -l /etc/{passwd,shadow} ##查看基本權限無變化

-rw-r--r-- 1 root root 982 2月 15 05:24 /etc/passwd

---------- 1 root root 666 1月 21 17:20 /etc/shadow

clip_image082

[root@www ~]# chattr -i /etc/{passwd,shadow} ##取消權限

[root@www ~]# lsattr /etc/{passwd,shadow} ##驗證,無i權限,能創建用戶

-------------e- /etc/passwd

-------------e- /etc/shadow

clip_image084

[root@www ~]# useradd u02

[root@www ~]# tail -2 /etc/passwd

u01:x:501:501::/home/u01:/bin/bash

u02:x:502:502::/home/u02:/bin/bash

[root@www ~]#

clip_image086

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章