首页 > 技术文章 > linux安全配置检查脚本_v0.5

tdcqma 2017-04-17 18:56 原文

看到网上有人分享了一些linux系统的基线检查脚本,但有些检查项未必适合自己或者说检查的不够完善,

计划按着自己的需求重新写一份出来,其中脚本的检查范围在不断更新中。

脚本内容:

[root@localhost ~]# cat check.sh 
#! /bin/bash
cat <<EOF
*************************************************************************
 linux安全配置检查脚本:
    1. 输出结果也可以在当前目录的out.txt中查看
    2. 检查范围:
       -》账号策略检查
       -》账号注销检查
       -》GRUB密码检查
       -》LILO密码检查

*************************************************************************
EOF

rm -rf ./out.txt
echo -e  "\n"
echo "[1] 账号策略检查中..."

passmax=`cat /etc/login.defs | grep PASS_MAX_DAYS | grep -v ^# | awk '{print $2}'`
passmin=`cat /etc/login.defs | grep PASS_MIN_DAYS | grep -v ^# | awk '{print $2}'`
passlen=`cat /etc/login.defs | grep PASS_MIN_LEN | grep -v ^# | awk '{print $2}'`
passage=`cat /etc/login.defs | grep PASS_WARN_AGE | grep -v ^# | awk '{print $2}'`

 if [ $passmax -le 90 -a $passmax -gt 0 ];then
   echo "  [OK]口令生存周期为${passmax}天,符合要求" >> out.txt
 else
   echo "  [ X ] 口令生存周期为${passmax}天,不符合要求,建议设置不大于90天" >> out.txt
 fi


 if [ $passmin -ge 6 ];then
   echo "  [OK]口令更改最小时间间隔为${passmin}天,符合要求" >> out.txt
 else
   echo "  [ X ] 口令更改最小时间间隔为${passmin}天,不符合要求,建议设置大于等于6天" >> out.txt
 fi


 if [ $passlen -ge 8 ];then
   echo "  [OK]口令最小长度为${passlen},符合要求" >> out.txt
 else
   echo "  [ X ] 口令最小长度为${passlen},不符合要求,建议设置最小长度大于等于8" >> out.txt
 fi


 if [ $passage -ge 30 -a $passage -lt $passmax ];then
   echo "  [OK]口令过期警告时间天数为${passage},符合要求" >> out.txt
 else
   echo "  [ X ] 口令过期警告时间天数为${passage},不符合要求,建议设置大于等于30并小于口令生存周期" >> out.txt
 fi
echo "..."
echo 'check over'

echo -e "\n"
echo "[2] 账号注销检查中..."

TMOUT=`cat /etc/profile | grep TMOUT | awk -F[=] '{print $2}'`

if [ ! $TMOUT ];then
        echo "  [ X ] 账号超时不存在自动注销,不符合要求,建议设置小于600秒" >> out.txt
else
        if [ $TMOUT -le 600 -a $TMOUT -ge 10 ] ; then
                echo "  [ √ ] 账号超时时间${TMOUT}秒,符合要求" >> out.txt
        else
                echo "  [ X ] 账号超时时间$TMOUT秒,不符合要求,建议设置小于600秒" >> out.txt
        fi
fi
echo "..."
echo 'check over'
echo -e "\n"
echo "[3] GRUB密码检查中..."

grup_pwd=`cat /etc/grub.conf | grep -v ^# | grep password 2> /dev/null`

if [ $? -eq 0 ];then
   echo "  [ √ ] 已设置grub密码,符合要求" >> out.txt
else
   echo "  [ X ] 没有设置grub密码,不符合要求,建议设置grub密码" >> out.txt
fi

echo "..."
echo "check over"
echo -e "\n"
echo "[4] LILO密码检查中..."

if [ ! -f /etc/lilo.conf ] ; then
       echo "  [ √ ] lilo.conf配置文件不存在,系统可能不是通过LILO引导" >> out.txt
else
       lilo_pwd=`cat /etc/lilo.conf | grep -v ^# | grep password &> /dev/null`
       if [ $? -eq 0 ];then
               echo "  [ √ ] 已设置lilo密码,符合要求" >> out.txt
       else
               echo "  [ X ] 没有设置lilo密码,不符合要求,建议设置lilo密码" >> out.txt
       fi
fi
echo "..."
echo "check over"
echo -e ""


## 详细过滤脚本 待更新中...##


echo -e "\n"
echo "--------------------------------------------------------------------------"
echo ""
echo "检查结果:"
echo ""
cat ./out.txt
echo ""
echo "--------------------------------------------------------------------------"
echo ""
[root@localhost ~]# 

 

执行效果:

 from

推荐阅读