银河麒麟,Centos基线检查和修改脚本

jixian.tar.gz

#!/bin/bash 
LANG=en_US.UTF-8
#《脚本说明:》
#1.针对运维部门Linux本地检测报告格式重新编写的脚本,方便运维部门成员编写本地检测报告
#2.脚本的输出格式与报告格式一一对应,只需将每项的输出结果搬上报告中即可。
#3.中文和英文的输出界面,可以根据服务器环境自动设置输出的语言。
#4.集成了chkrootkit0.49的检测代码,不需要再单独做rootkit的检测。
#5.美化输出界面,使之看上去整洁规范。
#6.此脚本存在不合理之处尚待完善。比如需要增加哪些有用的检查项,有些需要综合判断的检查项如何用脚本更好的去实现,比如检查异常的系统用户(要怎么去定义异常呢?)
#7.关于每个检查项的判断,主要是提供参考作用,不是硬性判断的标准。
#QQ/WX:372097243
clear
/usr/bin/locale -a |grep zh_CN.utf8 >> /dev/null 2>&1
if [ $? == "0" ];then
#LANG=zh_CN.gb2312
echo -e '\033[32;1m###########################################################################\033[0m'
echo -e '\033[32;1m#           深圳网安计算机安全检测技术有限公司                            #\033[0m'
echo -e '\033[32;1m#                     主机安全检测                                        #\033[0m'
echo -e '\033[32;1m#                   <<Linux检测脚本>>                                     #\033[0m'
echo -e '\033[32;1m#                                                                         #\033[0m'
echo -e '\033[32;1m#                                                                         #\033[0m'
echo -e '\033[32;1m#[说明]                                                                   #\033[0m'
echo -e '\033[32;1m#脚本仅是进行配置信息的收集                                               #\033[0m'
echo -e '\033[32;1m#不会改写系统数据或关闭系统进程。                                         #\033[0m'
echo -e '\033[32;1m###########################################################################\033[0m'
echo -e '请按\033[32;1m回车\033[0m键继续.......'
read
Array_checkpoint[0]="1.checkPoint:账户管理、文件权限检查"
Array_checkpoint[1]="2.checkPoint:系统内核配置检查"
Array_checkpoint[2]="3.checkPoint:系统服务及访问安全检查"
Array_checkpoint[3]="4.checkPoint:日志审计检查"
Array[0]="1.1删除不需要用户                                                                            "
Array[1]="1.2用户密码加密机制                                                                          "
Array[2]="1.3账号密码策略设置                                                                          "
Array[3]="1.4口令重复使用限制                                                                          "
Array[4]="1.5认证失败处理功能                                                                          "
Array[5]="1.6禁止root用户直接登录系统                                                                  "
Array[6]="1.7禁止使用Control-Alt-Delete键盘关闭命令信息                                                "
Array[7]="1.8修改history保存命令数                                                                     "
Array[8]="1.9超时自动注销登录                                                                          "
Array[9]="1.10检查是否存在除root之外UID为0的用户                                                       "
Array[10]="1.11shell变量检查                                                                           "
Array[11]="1.12环境变量检查                                                                            "
Array[12]="1.13远程连接的安全性配置                                                                    "
Array[13]="1.14用户的umask安全配置                                                                     "
Array[14]="1.15重要目录和文件的权限设置                                                                "
Array[15]="1.16检查SUID/SGID文件                                                                       "
Array[16]="1.17目录权限检查                                                                            "
Array[17]="1.18没有属主的文件                                                                          "
Array[18]="1.19隐藏文件检查                                                                            "
Array[19]="2.1SYN cookie保护                                                                           "
Array[20]="2.2禁用ICMP请求                                                                             "
Array[21]="2.3系统性能配置                                                                             "
Array[22]="2.4别名设置                                                                                 "
Array[23]="2.5关闭系统core dump状态                                                                    "
Array[24]="2.6su命令设置                                                                               "
Array[25]="2.7系统提示信息修改                                                                         "
Array[26]="3.1系统最小安装原则                                                                         "
Array[27]="3.2ftp帐号检查                                                                              "
Array[28]="3.3系统解析地址配置                                                                         "
Array[29]="3.4主机信任关系检查                                                                         "
Array[30]="3.5端口安全限制                                                                             "
Array[31]="4.1日志文件权限设置                                                                         "
Array[32]="4.2ssh、su登录日志进行记录                                                                  "
Array[33]="4.3syslog服务器记录日志                                                                     "
Array[34]="脚本已经全部运行完毕,谢谢!!QQ/WX:372097243 。"
##############################################################
else
echo -e '\033[32;1m###########################################################################\033[0m'
echo -e '\033[32;1m#      Shenzhen Wangan Security Detection Technology Co., Ltd.            #\033[0m'
echo -e '\033[32;1m#                 Hosts Security Detection                                #\033[0m'
echo -e '\033[32;1m#           <<Linux Information gather Script>>                           #\033[0m'
echo -e '\033[32;1m#                                                                         #\033[0m'
echo -e '\033[32;1m#                                                                         #\033[0m'
echo -e '\033[32;1m#[Notice]                                                                 #\033[0m'
echo -e '\033[32;1m#This script only collects system information                             #\033[0m'
echo -e '\033[32;1m#will not modify any system data or terminate any process                 #\033[0m'
echo -e '\033[32;1m###########################################################################\033[0m'
echo -e 'Press The \033[32;1mEnter\033[0m key to continue......'
read
Array_checkpoint[0]="1.checkPoint:User Management,Document Authority"
Array_checkpoint[1]="2.checkPoint:System Kernel Configuration"
Array_checkpoint[2]="3.checkPoint:System Services And Access Security"
Array_checkpoint[3]="4.checkPoint:Intrusion Prevention"
Array[0]="Checking::SR-LINUX-000-01                                                                   "
Array[1]="Checking::SR-LINUX-000-02                                                                   "
Array[2]="Checking::SR-LINUX-000-03                                                                   "
Array[3]="Checking::SR-LINUX-000-04                                                                   "
Array[4]="Checking::SR-LINUX-000-05                                                                   "
Array[5]="Checking::SR-LINUX-000-06                                                                   "
Array[6]="Checking::SR-LINUX-000-07                                                                   "
Array[7]="Checking::SR-LINUX-000-08                                                                   "
Array[8]="Checking::SR-LINUX-000-09                                                                   "
Array[9]="Checking::SR-LINUX-000-10                                                                   "
Array[10]="Checking::SR-LINUX-000-11                                                                  "
Array[11]="Checking::SR-LINUX-000-12                                                                  "
Array[12]="Checking::SR-LINUX-000-13                                                                  "
Array[13]="Checking::SR-LINUX-000-14                                                                  "
Array[14]="Checking::SR-LINUX-000-15                                                                  "
Array[15]="Checking::SR-LINUX-000-16                                                                  "
Array[16]="Checking::SR-LINUX-000-17                                                                  "
Array[17]="Checking::SR-LINUX-000-18                                                                  "
Array[18]="Checking::SR-LINUX-000-19                                                                  "
Array[19]="Checking::SR-LINUX-000-20                                                                  "
Array[20]="Checking::SR-LINUX-000-21                                                                  "
Array[21]="Checking::SR-LINUX-000-22                                                                  "
Array[22]="Checking::SR-LINUX-000-23                                                                  "
Array[23]="Checking::SR-LINUX-000-24                                                                  "
Array[24]="Checking::SR-LINUX-000-25                                                                  "
Array[25]="Checking::SR-LINUX-000-26                                                                  " 
Array[26]="Checking::SR-LINUX-000-27                                                                  "
Array[27]="Checking::SR-LINUX-000-28                                                                  "
Array[28]="Checking::SR-LINUX-000-29                                                                  "
Array[29]="Checking::SR-LINUX-000-30                                                                  " 
Array[30]="Checking::SR-LINUX-000-31                                                                  "
Array[31]="Checking::SR-LINUX-000-32                                                                  "
Array[32]="Checking::SR-LINUX-000-33                                                                  "
Array[33]="Checking::SR-LINUX-000-34                                                                  "
Array[34]="The script has finished,The report was created in /tmp/liss/* Thanks a lot!!"
fi

echo "Starting................."
sleep 1
##############################################################
#请以 ./Script.sh 或bash Script.sh的方式运行本脚本
#禁止使用 . /Script.sh 或source Script.sh的方式运行
##############################################################
if [ -f /usr/bin/id ];then
/usr/bin/id |grep "uid=0" >/dev/null 2>&1
  if [ $? -eq 0 ] ; then
    echo "User root OK"
     else
     echo "Please su root"
     exit
  fi
else 
echo "Please check /usr/bin/id,it is not exist."
exit
fi

##############################################################

echo $PATH >/tmp/.PATH
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/usr/ccs/bin
#export PATH

##############################################################
###定义报告输出的文件#######
RUNTIME=`date`
REPORTMAINDIR=/tmp/liss
REPORTTMPDIR=/tmp/liss/tmp
StartTime=$(date)
IP=`/sbin/ifconfig -a |grep inet |grep -v "127.0.0.1" | grep -v inet6  |awk '{print $2}' |head -n 1`
if [ !-n $IP  ]
then
IP="127.0.0.1"
fi
FILE=/tmp/liss/report.$IP

##############################################################
###建立报告输出目录######
if [ -d "$REPORTMAINDIR" ] ; then
   echo "Reportmaindir Ok"
else
   echo -n "Establish Reportmaindir..."
   mkdir $REPORTMAINDIR
   chmod 775 $REPORTMAINDIR
   echo done
fi
if [ -d "$REPORTTMPDIR" ] ; then
   echo "Reporttmpdir Ok"
else
   echo -n "Establish Reporttmpdir..."
   mkdir $REPORTTMPDIR
   chmod 775 $REPORTTMPDIR
   echo done
fi

##############################################################
echo "RunTime = $RUNTIME" |tee -a $FILE
echo "######################################################################" >>$FILE
##Outputing函数:规范输出文字格式,[ OK ]字体绿色加粗右对齐#########
Outputing ()
{
#echo -e "$1@\033[32;1m[ OK ]\033[0m" |awk -F@ '{printf "%-70s %-10s\n",$1,$2}'|tee -a  $FILE
echo -e "$1\033[32;1m[ OK ]\033[0m" |tee
}
######################################################################
#说明:获得系统主机概况,无检查风险。
echo "Linux主机概况检查" >> $FILE 
echo "" >> $FILE

echo "主机名:" >>$FILE; hostname  >> $FILE
echo "" >> $FILE

echo "IP地址:" >>$FILE; echo $IP >>$FILE
echo "" >> $FILE

echo "文件系统剩余容量:" >> $FILE; df -h >> $FILE
echo "" >> $FILE

echo "拥有bash权限账户:" >> $FILE
cat /etc/passwd |awk -F: '{if ($7 == "/bin/bash" || $7 == "/bin/sh" || $7 == "/bin/tcsh" || $7 == "/bin/csh") {print $1":"$7}}' >> $FILE
echo "" >> $FILE

echo "SSH版本:" >> $FILE
if [ -x /usr/sbin/ssh ]
then
ssh -V >> $FILE 2>&1
else
echo "SSH服务未安装" >> $FILE 2>&1
fi
echo "" >> $FILE

echo "内核版本:"  >> $FILE
uname -r >> $FILE
echo "" >> $FILE

echo "其他系统安全策略设定:" >> $FILE
echo "部分设置" >> $FILE
echo "" >> $FILE
echo "" >> $FILE

echo "######################################################################" >> $FILE
echo "Linux主机检测结果分析信息" >> $FILE
echo -e "\n\n${Array_checkpoint[0]}\n" | tee |tee -a $FILE 2>&1

Outputing "${Array[0]}"
echo -e "检查项:1.1   删除不需要用户" >> $FILE
echo "建议删除不需要的用户,返回值为空则符合" >> $FILE 
echo "本机配置返回结果如下" >>$FILE
LIST11="lp sync shutdown halt news uucp operator games gopher"
for NAME11 in $LIST11
do
#  grep "\<$11NAME\>" /etc/passwd >/dev/null 2>&1
# awk -F ':' '{print $1}' /etc/passwd | grep "\<$11NAME\>" >/dev/null 2>&1
awk -F ':' '{print $1}' /etc/passwd | grep "\<$NAME11\>" >> $FILE >/dev/null 2>&1
  if [ $? -eq 0 ]; then
    echo -e "$NAME11,\c" >> $FILE 2>&1
  fi
done

Outputing "${Array[1]}"
echo -e "\n\n检查项:1.2  用户密码加密机制" >> $FILE
echo "返回值为空则符合" >> $FILE
echo "以下为用户密码未加密用户列表,建议密码进行加密" >> $FILE
awk -F: '{if($2 !="x" && $2 != "*") print $1}' /etc/passwd >> $FILE 2>&1

Outputing "${Array[2]}"
echo -e "\n\n检查项:1.3 账号密码策略设置" >> $FILE
echo "建议根据基线配置账号密码策略" >> $FILE
echo "本机配置返回结果如下" >> $FILE
LIST13="PASS_MAX_DAYS PASS_MIN_DAYS PASS_MIN_LEN PASS_WARN_AGE FAIL_DELAY FAILLOG_ENAB SYSLOG_SU_ENAB SYSLOG_SG_ENAB MD5_CRYPT_ENAB"
for NAME13 in $LIST13
do 
cat /etc/login.defs | grep "\<$NAME13\>" >/dev/null >> $FILE 2>&1
done

Outputing "${Array[3]}"
echo -e "\n\n检查项:1.4  口令重复使用限制" >> $FILE
echo "建议设置用户连续认证失败次数超过6次数后,锁定该用户。返回值retry小于等于6则符合" >> $FILE
echo "本机配置返回结果如下" >> $FILE
retry=`grep retry /etc/pam.d/systemd-user`
if [ !-n $retry ]
then
echo "未配置retry参数"  >> $FILE 2>&1
else
echo $retry >> $FILE 2>&1
fi

Outputing "${Array[4]}"
echo -e "\n\n检查项:1.5  认证失败处理功能" >> $FILE
echo "建议在"/etc/lilo.conf"或"/etc/grub.conf"文件设置以下三个参数:password,time-out,restricted。返回值中不存在则不符合" >> $FILE
echo "本机配置返回结果如下" >> $FILE
LIST15="password time-out restricted"
for NAME15 in $LIST15
do 
if [ -f /etc/lilo.conf ]; then
cat /etc/lilo.conf | grep "\<$NAME15\>" >>FILE 2>&1
fi
if [ -f /etc/grub.conf ]
then
cat /etc/grub.conf | grep "\<$NAME15\>" >>FILE 2>&1
fi
done

Outputing "${Array[5]}"
echo -e "\n\n检查项:1.6  禁止root用户直接登录系统" >> $FILE
echo "返回PermitRootLogin Yes(没有被注释符号#注释掉的)或者有pts/0~n则不符合,没有则符合。" >> $FILE
echo "本机配置返回结果如下" >> $FILE
if [ -x /usr/sbin/ssh ]
then
cat /etc/ssh/sshd_config | grep PermitRootLogin >> $FILE 2>&1
else
        echo "SSH服务未安装" >> $FILE 2>&1
fi

Outputing "${Array[6]}"
echo -e "\n\n检查项:1.7  禁止使用Control-Alt-Delete键盘关闭命令信息" >> $FILE
echo "检查系统是否可以被Control-Alt-Delete三键重启:查看返结果,不是以"#"符号开头则不符合,以#开头或没有返回值则符合。" >> $FILE
echo "本机配置返回结果如下" >> $FILE
if [ -f /etc/inittab ]
then
cat /etc/inittab | grep ca >> $FILE 2>&1
else
echo "/etc/inittab 文件不存在" >> $FILE 2>&1
fi

Outputing "${Array[7]}"
echo -e "\n\n检查项:1.8  超时自动注销登录" >> $FILE
echo "建议设置TMOUT=300,返回值为空或未设置则不符合" >> $FILE
echo "本机配置返回结果如下" >> $FILE
cat /etc/profile | grep TMOUT >> $FILE 2>&1

Outputing "${Array[8]}"
echo -e "\n\n检查项:1.9  修改history保存命令数" >> $FILE
echo "建议设置HISTSIZE的值改为30或30以下,返回值为空或未设置则不符合" >> $FILE
echo "本机配置返回结果如下" >> $FILE
cat /etc/profile | grep HISTSIZE >> $FILE 2>&1

Outputing "${Array[9]}"
echo -e "\n\n检查项:1.10  检查是否存在除root之外UID为0的用户" >> $FILE
echo "检查最高权限用户:返回的用户超过一个则不符合,只返回一个用户则符合。" >> $FILE
echo "本机配置返回结果如下" >> $FILE
cat /etc/passwd |awk -F: '{if ($3 == 0) {print $1}}' >> $FILE 2>&1 

Outputing "${Array[10]}"
echo -e "\n\n检查项:1.11  shell变量检查" >> $FILE
echo "检查root账号shell变量是否正常,root账号的shell不应该出现/sbin/nologin或/dev/null,出现则不符合。" >> $FILE
echo "本机配置返回结果如下" >> $FILE
awk -F ':' '{if($1 =="root") print $0}' /etc/passwd >> $FILE 2>&1

Outputing "${Array[11]}"
echo -e "\n\n检查项:1.12  环境变量检查" >> $FILE
echo "rootPATH环境变量中不包含当前目录,PATH的行是否设置了目录符号”.“的行,如果存在将这个“.”则不符合。" >> $FILE
echo "本机配置返回结果如下" >> $FILE
sed -n '/# Path manipulation/,/HISTSIZE/p' /etc/profile >> $FILE 2>&1

Outputing "${Array[12]}"
echo -e "\n\n检查项:1.13  远程连接的安全性配置" >> $FILE
echo "检查是否存在.netrc和.rhosts文件,如果存在将这个则不符合,返回值为空则符合。" >> $FILE
echo "本机配置返回结果如下" >> $FILE
find / -path /proc -prune -o -path /run -prune -o -name .netrc -print  >> $FILE 2>&1
find / -path /proc -prune -o -path /run -prune -o -name .rhosts -print >> $FILE 2>&1

Outputing "${Array[13]}"
echo -e "\n\n检查项:1.14  用户的umask安全配置" >> $FILE
echo "检查root用户的umask是否为077,如果不为077则不符合。" >> $FILE
echo "本机配置返回结果如下" >> $FILE
echo -e "umask:\c" >> $FILE
umask >> $FILE 2>&1

Outputing "${Array[14]}"
echo -e "\n\n检查项:1.15  重要目录和文件的权限设置" >> $FILE
echo "检查文件的权限“r=4,w=2,x=1”建议根据基线配置以下文件或目录权限" >> $FILE
echo "本机配置返回结果如下" >> $FILE
LIST15="/etc/passwd /etc/shadow /etc/rc3.d /etc/profile /etc/latrace.d/inet.conf /etc/xinet.conf"
for NAME15 in $LIST15
do 
if [ -f $NAME15 ];then
   ls -al $NAME15 >> $FILE 2>&1
fi
done 

Outputing "${Array[15]}"
echo -e "\n\n检查项:1.16  检查SUID/SGID文件" >> $FILE
echo "不允许存在未授权的SUID/SGID文件,查看返回结果是否存在异常文件" >> $FILE
echo "本机配置返回结果如下" >> $FILE
find / -perm +6000 >> $FILE 2>&1

Outputing "${Array[16]}"
echo -e "\n\n检查项:1.17  目录权限检查" >> $FILE
echo "不允许任何人都有写权限的目录,查看返回结果是否存在异常文件" >> $FILE
echo "本机配置返回结果如下" >> $FILE
find / -xdev \( -perm -2 -o -perm -20 \) -type f >> $FILE 2>&1

Outputing "${Array[17]}"
echo -e "\n\n检查项:1.18  没有属主的文件" >> $FILE
echo "不允许存在没有属主的文件(/dev目录除外),查看返回结果是否存在异常文件" >> $FILE
echo "本机配置返回结果如下" >> $FILE
find / -path /proc -prune -o -path /run -prune -o -nogroup -a -nouser -print >> $FILE 2>&1

Outputing "${Array[18]}"
echo -e "\n\n检查项:1.19  隐藏文件检查" >> $FILE
echo "隐藏文件不能存在异常行为" >> $FILE
echo "本机配置返回结果如下" >> $FILE
find / -path /proc -prune -o -path /run -prune -o -name ".?*" -type d -print >> $FILE 2>&1

echo -e "\n\n${Array_checkpoint[1]}\n"  |tee -a $FILE 2>&1
Outputing "${Array[19]}"
echo -e "检查项:2.1  SYN cookie保护" >> $FILE
echo "TCP SYN Cookie保护检查,返回值为1则符合。" >> $FILE
echo "本机配置返回结果如下" >> $FILE
cat /proc/sys/net/ipv4/tcp_syncookies >> $FILE 2>&1

Outputing "${Array[20]}"
echo -e "\n\n检查项:2.2  禁用ICMP请求" >> $FILE
echo "建议禁用系统自带的ICMP请求,返回值为1则符合。" >> $FILE
echo "本机配置返回结果如下" >> $FILE
cat /proc/sys/net/ipv4/icmp_echo_ignore_all >> $FILE 2>&1

Outputing "${Array[21]}"
echo -e "\n\n检查项:2.3  系统性能配置" >> $FILE
echo "检查主机系统内核安全设置要求,建议按照基线配置以下参数。" >> $FILE
echo "本机配置返回结果如下" >> $FILE
echo -e "/proc/sys/net/ipv4/ip_forward(基线要求为1):\c" >> $FILE
cat /proc/sys/net/ipv4/ip_forward >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/conf/all/accept_source_route(基线要求为0):\c" >> $FILE
cat /proc/sys/net/ipv4/conf/all/accept_source_route >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_timestamps(基线要求为0):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_timestamps >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_synack_retries(基线要求为2):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_synack_retries >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_syn_retries(基线要求为2):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_syn_retries >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_mem(基线要求为94500000 915000000 927000000):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_mem >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_max_orphans(基线要求为3276800):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_max_orphans >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_rmem(基线要求为4096 87380 16777216):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_rmem >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_wmem(基线要求为4096 87380 16777216):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_wmem >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_syncookies(基线要求为1):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_syncookies >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_tw_reuse(基线要求为1):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_tw_reuse >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_tw_recycle(基线要求为1):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_tw_recycle >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_fin_timeout(基线要求为1):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_fin_timeout >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_keepalive_time(基线要求为600):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_keepalive_time >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/tcp_max_syn_backlog(基线要求为65535):\c" >> $FILE
cat /proc/sys/net/ipv4/tcp_max_syn_backlog >> $FILE 2>&1
echo -e "/proc/sys/net/ipv4/ip_local_port_range(基线要求为1024 65535):\c" >> $FILE
cat /proc/sys/net/ipv4/ip_local_port_range >> $FILE 2>&1
echo -e "/proc/sys/net/core/wmem_default(基线要求为8388608):\c" >> $FILE
cat /proc/sys/net/core/wmem_default >> $FILE 2>&1
echo -e "/proc/sys/net/core/rmem_default(基线要求为8388608):\c" >> $FILE
cat /proc/sys/net/core/rmem_default >> $FILE 2>&1
echo -e "/proc/sys/net/core/wmem_max(基线要求为16777216):\c" >> $FILE
cat /proc/sys/net/core/wmem_max >> $FILE 2>&1
echo -e "/proc/sys/net/core/rmem_max(基线要求为16777216):\c" >> $FILE
cat /proc/sys/net/core/rmem_max >> $FILE 2>&1
echo -e "/proc/sys/net/core/netdev_max_backlog(基线要求为32768):\c" >> $FILE
cat /proc/sys/net/core/netdev_max_backlog >> $FILE 2>&1
echo -e "/proc/sys/net/core/somaxconn(基线要求为32768):\c" >> $FILE
cat /proc/sys/net/core/somaxconn >> $FILE 2>&1

Outputing "${Array[22]}"
echo -e "\n\n检查项:2.4  别名设置" >> $FILE
echo "建议为ls、rm设置别名,建议按照基线配置以下文件" >> $FILE
echo "本机配置返回结果如下" >> $FILE
declare -a LIST24=('alias rm' 'alias ls')
for NAME24 in "${LIST24[@]}"
do 
if [ $SHELL == "/bin/bash" ];then
grep "$NAME24" ~/.bashrc>> $FILE 2>&1
else 
grep "$NAME24" ~/.cshrc>> $FILE 2>&1
fi
done

Outputing "${Array[23]}"
echo -e "\n\n检查项:2.5  关闭系统core dump状态" >> $FILE
echo "建议关闭系统core dump状态,建议按照基线配置以下文件" >> $FILE
echo "本机配置返回结果如下" >> $FILE
echo -e "etc/profile返回:\c" >> $FILE 2>&1
grep "ulimit –c0" /etc/profile >> $FILE 2>&1
echo -e "\n/etc/security/limits.conf返回:" >> $FILE
grep "soft.*core" /etc/security/limits.conf >> $FILE 2>&1
grep 'hard.*core' /etc/security/limits.conf >> $FILE 2>&1

Outputing "${Array[24]}"
echo -e "\n\n检查项:2.6  su命令设置" >> $FILE
echo "避免任何人可以su为root,建议按照基线配置以下文件" >> $FILE
echo "本机配置返回结果如下" >> $FILE
cat /etc/pam.d/su >> $FILE

Outputing "${Array[25]}"
echo -e "\n\n检查项:2.7  系统提示信息修改" >> $FILE
echo "减少系统提示信息,降低安全隐患,建议按照基线配置以下文件" >> $FILE
echo "本机配置返回结果如下" >> $FILE
if [ -f /etc/rc.d/rc.local ]
then
tail -n 3 /etc/rc.d/rc.local >> $FILE
else
echo "/etc/rc.d/rc.local 文件不存在" >> $FILE
fi

echo -e "\n\n${Array_checkpoint[2]}\n" |tee -a $FILE 2>&1
Outputing "${Array[26]}"
echo -e "检查项:3.1  系统最小安装原则" >> $FILE
echo "主机系统服务最小安装,建议按照基线配置本机服务,返回值为本机已开启的服务" >> $FILE
echo "本机配置返回结果如下" >> $FILE
#chkconfig --list | grep on | awk '{print $1}' >> $FILE
systemctl list-units --type=service --state=running >> $FILE

Outputing "${Array[27]}"
echo -e "\n\n检查项:3.2  ftp帐号检查" >> $FILE
echo "不允许系统账户登录ftp,返回值中如存在root,daemon,bin,sys,adm,lp,uucp,nuucp,listen,nobody,noaccess,nobody4则不符合" >> $FILE
echo "本机配置返回结果如下" >> $FILE
if [ -f /etc/ftpusers ];then
  cat /etc/ftpusers
elif [ -f /etc/ftpd/ftpusers ];then
  cat /etc/ftpd/ftpusers
fi

Outputing "${Array[28]}"
echo -e "\n\n检查项:3.3  系统解析地址配置" >> $FILE
echo "检查hosts配置的ip地址和其对应主机名,建议按照基线配置" >> $FILE
echo "本机配置返回结果如下" >> $FILE
cat /etc/host.conf >> $FILE

Outputing "${Array[29]}"
echo -e "\n\n检查项:3.4  主机信任关系检查" >> $FILE
echo "删除不同主机间信任关系(hosts.equiv文件),返回存在该文件或文件不为空则不符合" >> $FILE
echo "本机配置返回结果如下" >> $FILE
if [ -f /etc/hosts.equiv ];then
echo "文件存在" >> $FILE
cat /etc/hosts.equiv >> $FILE
fi

Outputing "${Array[30]}"
echo -e "\n\n检查项:3.5  端口安全限制" >> $FILE
echo "建议端口进行安全访问限制,只允许信任的IP进行访问" >> $FILE
echo "本机配置返回结果如下" >> $FILE
netstat -ntlpu >> $FILE 

echo -e "\n\n${Array_checkpoint[3]}\n" |tee -a $FILE 2>&1
Outputing "${Array[31]}"
echo -e "检查项:4.1  日志文件权限设置" >> $FILE
echo "建议设置messages文件只可追加,使轮循的messages文件不可更改。a属性为只可追加,i为不可更改" >> $FILE
echo "本机配置返回结果如下" >> $FILE
#lsattr /var/log/messages* >> $FILE

Outputing "${Array[32]}"
echo -e "\n\n检查项:4.2  ssh、su登录日志进行记录" >> $FILE
echo "建议对ssh、su登录日志进行记录,建议根据基线配置" >> $FILE
echo "本机配置返回结果如下" >> $FILE
if [ -f /etc/syslog.conf ];then
grep authpriv. /etc/syslog.conf >> $FILE
elif [ -f /etc/rsyslog.conf ];then
grep authpriv. /etc/rsyslog.conf >> $FILE
fi

Outputing "${Array[33]}"
echo -e "\n\n检查项:4.3  syslog服务器记录日志" >> $FILE
echo "建议指定专用的syslog服务器记录日志,建议根据基线配置" >> $FILE
echo "本机配置返回结果如下" >> $FILE
if [ -f /etc/syslog.conf ];then
grep "auth.info" /etc/syslog.conf >> $FILE
grep "*.info;" /etc/syslog.conf >> $FILE
elif [ -f /etc/rsyslog.conf ];then
grep "auth.info" /etc/rsyslog.conf >> $FILE
grep "*.info;" /etc/rsyslog.conf >> $FILE
fi

echo "#################################################################################" >> $FILE
echo -e "华丽分割线,所有检查结果到此结束." >> $FILE
#echo -e "华丽分割线,所有检查结果到此结束,下面是备份,对结果有疑问时供查询用。\n预防出错,特将关键指令的返回结果备份在此" >> $FILE

echo -e "\n${Array[34]}\n"


Powered By Z-BlogPHP 1.7.3

 Theme By 优美模版

本博客为开源博客,本博客联系QQ:372097243