实验一:系统账号的安全管理

1)账号清理

[root@www ~]# passwd -d u01

lqc_系统账号的安全管理_第1张图片

[root@www ~]# passwd -l u01

锁定用户 u01 的密码 。

passwd: 操作成功

lqc_系统账号的安全管理_第2张图片

[root@www ~]# passwd -S u01

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

lqc_系统账号的安全管理_第3张图片

[root@www ~]# passwd -u u01

解锁用户 u01 的密码 。

passwd: 警告:未锁定的密码将是空的。

passwd: 不安全的操作(使用 -f 参数强制进行该操作)

lqc_系统账号的安全管理_第4张图片

[root@www ~]# passwd -S u01

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

lqc_系统账号的安全管理_第5张图片

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

解锁用户 u01 的密码 。

passwd: 操作成功

lqc_系统账号的安全管理_第6张图片

小脚本管理系统用户:

脚本一:结合计划任务防止系统用户登录系统

[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

lqc_系统账号的安全管理_第7张图片

测试:

chsh -s /bin/bash ftp

grep ftp /etc/passwd ##验证修改

lqc_系统账号的安全管理_第8张图片

chmod +x chsh_1-499.sh

./chsh_1-499.sh

grep ftp /etc/passwd ##已经修复

lqc_系统账号的安全管理_第9张图片

[root@www ~]# echo "1 2 * * 7 /root/bin/chsh_1-499.sh" >>/var/spool/cron/root ##设置计划任务

[root@www ~]# crontab -l

lqc_系统账号的安全管理_第10张图片

脚本二:结合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

lqc_系统账号的安全管理_第11张图片

lqc_系统账号的安全管理_第12张图片

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

lqc_系统账号的安全管理_第13张图片

lqc_系统账号的安全管理_第14张图片

3)优化账号及密码安全

a.优化新建账号默认登录shell

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

useradd u03

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

lqc_系统账号的安全管理_第15张图片

chsh -s /bin/bash u03 ##当需要u03登录时使用,作用与usermod -s 一样

lqc_系统账号的安全管理_第16张图片

b.优化密码使用时间

vi /etc/login.defs

PASS_MAX_DAYS 60

PASS_MIN_DAYS 2

PASS_MIN_LEN 8 ##密码长度最小值

PASS_WARN_AGE 5 ##密码过期提醒时间

:wq

lqc_系统账号的安全管理_第17张图片

useradd u04 ##修改后创建的账号

tail -1 /etc/shadow ##验证

lqc_系统账号的安全管理_第18张图片

针对已经建立用户:

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

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

chage -W 5 u03 ##密码过期提醒时间,在最大值前

chage -d 0 u01 ##下次登录时修改密码

tail -2 /etc/shadow

lqc_系统账号的安全管理_第19张图片

lqc_系统账号的安全管理_第20张图片

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

lqc_系统账号的安全管理_第21张图片

su - u01 ##进入u01

passwd #修改密码验证

lqc_系统账号的安全管理_第22张图片

lqc_系统账号的安全管理_第23张图片

d.设置登录失败次数锁定账号

vi /etc/pam.d/system-auth

5行:

auth required pam_tally2.so deny=5

11行:

auth required pam_tally2.so

:wq

lqc_系统账号的安全管理_第24张图片

验证需要在tty终端

pam_tally2 -u u01 ##查看登录失败的次数

lqc_系统账号的安全管理_第25张图片

lqc_系统账号的安全管理_第26张图片

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

lqc_系统账号的安全管理_第27张图片

lqc_系统账号的安全管理_第28张图片

e.修改密码加密方法

MD5与sha512加密算法:

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

lqc_系统账号的安全管理_第29张图片

authconfig --passalgo=sha512 --update ##修改系统的加密算法为sha512

lqc_系统账号的安全管理_第30张图片

vi /etc/pam.d/system-auth ##查看验证

:q

lqc_系统账号的安全管理_第31张图片

3.历史命令

a.清楚历史命令

rm -rf ~/.bash_history

ln -s /dev/null ~/.bash_history

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

lqc_系统账号的安全管理_第32张图片

b.设置记录历史的数量

history >my.hist ##导出历史命令

export HISTSIZE=100 ##临时设置记录历史命令的数量

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

source /etc/profile

echo $HISTSIZE ##验证

lqc_系统账号的安全管理_第33张图片

c.超时注销

echo 'export TMOUT=300' >>/etc/profile ##设置300秒后注销

source /etc/profile

unset TMOUT ##取消变量

lqc_系统账号的安全管理_第34张图片

5.锁定文件:练习

[root@www ~]# man chattr

lqc_系统账号的安全管理_第35张图片

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

lqc_系统账号的安全管理_第36张图片

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

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

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

lqc_系统账号的安全管理_第37张图片

[root@www ~]# useradd u02 ##无法创建用户也无法修改密码

useradd: cannot open /etc/passwd

lqc_系统账号的安全管理_第38张图片

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

更改用户 u01 的密码 。

passwd: 鉴定令牌操作错误

lqc_系统账号的安全管理_第39张图片

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

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

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

lqc_系统账号的安全管理_第40张图片

[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

lqc_系统账号的安全管理_第41张图片

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

[root@www ~]# lsattr /etc/{passwd,shadow} ##验证,无i权限,能创建用户

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

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

lqc_系统账号的安全管理_第42张图片

[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 ~]#

lqc_系统账号的安全管理_第43张图片