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"