当前位置 博文首页 > 阿俊之家●●●https://ximenjianxue.blog.csdn.net:运维巡检参

    阿俊之家●●●https://ximenjianxue.blog.csdn.net:运维巡检参

    作者:[db:作者] 时间:2021-09-08 13:35

    一、巡检表

    在这里插入图片描述

    二、巡检参考

    2.1、centos巡检

    1> 身份鉴别:确保root是唯一的UID为0的账户,除root以外其他UID为0的用户都应该删除,或者为其分配新的UID;查看命令:

    cat /etc/passwd | awk -F: ‘($3 == 0) { print $1 }’|grep -v ‘^root$’

    2> 身份鉴别:密码复杂度检查,检查密码长度和密码是否使用多种字符类型

    编辑/etc/security/pwquality.conf,把minlen(密码最小长度)设置为9-32位,把minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4。如: minlen=10 minclass=3.

    3> 身份鉴别:检查密码重用是否受限制,强制用户不使用最近使用的密码,降低猜测密码攻击风险

    在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,原来的内容不用更改, 只在末尾加了remember=5。

    4> 服务配置:确保ssh loglevel设置为info,记录登录和注销活动

    编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释): LogLevel INFO

    5> 服务配置:确保SSH MaxAuthTries设置为3到6之间,设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险

    在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6,建议为4:MaxAuthTries 4

    6> 服务配置:禁止ssh空密码账户登录

    编辑文件/etc/ssh/sshd_config,将PermitEmptyPasswords配置为no:PermitEmptyPasswords no

    7> 服务配置:设置ssh空闲超时退出时间,可降低未授权用户访问其他用户ssh会话的风险

    编辑/etc/ssh/sshd_config,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3。

    8> 安全审计:确保rsyslog服务已启用,记录日志以供审计

    ps -ef|grep -v grep|grep rsyslog

    运行以下命令启用rsyslog服务:

    systemctl enable rsyslog
    systemctl start rsyslog

    9> 查看可以日志记录

    命令:lastlog

    查看最近 登录的ip地址列表中是否存在可疑ip

    last -f /var/log/wtmp

    10> 防火墙

    查看状态:systemctl status firewalld
    开启:service firewalld start
    重启:service firewalld restart
    关闭:service firewalld stop

    #查询端口是否开放
    firewall-cmd --query-port=8080/tcp
    #开放80端口
    firewall-cmd --permanent --add-port=80/tcp
    #移除端口
    firewall-cmd --permanent --remove-port=8080/tcp

    11> 高危漏洞

    查看可以升级的软件:yum check-update

    更新软件:yum upgrade

    注意update和upgrade的区别:

    update侧重更新的意思,主要是为原有的东西增加新功能;yum -y update 升级所有包,改变软件设置和系统设置,系统版本内核都升级

    upgrade侧重升级的意思,是指从较低级版本升级到高级的版本;yum -y upgrade升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变。

    ubuntu:
    sudo apt update:只检查更新源里的软件版本列表,不更新(已安装的软件包是否有可用的更新,给出汇总报告)

    sudo apt upgrade 软件包名:更新已安装的软件包

    12> 检查确认服务器时间同步
    Yum install ntp

    /etc/rc.d/init.d/ntpd start

    ntpdate 203.117.180.36

    crontab –e:

    */1 * * * root /usr/sbin/ntpdate 203.117.180.36 > /dev/null 2>&1

    /etc/init.d/crond restart

    并且打开防火墙UDP 123 端口保证ntpdate服务正常运行。

    13> 其他注意事项

    主机名一定不要使用软件名称,比如:mysql,nginx,php等作为系统主机名,因为ps –ef|grep nginx查看服务状态时,容易引起误导。

    当网络状况不好,传文件及数据最好使用FTP。

    update修改语句之前,一定要先select结果,并且记录,以便如果修改记录错误,能够恢复回数值来。

    修改配置文件时候先备份配置文件。然后修改配置文件的时候,要先注释掉选项,然后新增选项,配置参数,注意观察下注释是;分号还是#井号。

    2.2、weblogic中间件巡检流程

    1.weblogic默认管理地址和用户名密码

    http://ip:8001/console; //输入weblogic/密码

    2.查看weblogic版本:java weblogic.version
    3.登录管理页面查看部署应用
    4.查看weblogic当前补丁集
    cd /u01/Middleware/OPatch
    ./opatch lspatches -jre /u01/jdk1.7.0_80/jre

    三、巡检脚本:请根据实际优化后使用

    3.1、服务器巡检shell脚本

        #!/bin/bash  
        #admin:spirits  
          
        #***********CPU检测*************  
        echo "`date '+%Y年%m月%d日 %H:%M:%S'` 数据库服务器硬件情况开始巡检。。。"  
          
        top -bn 6 >>top  
          
        grep -n "%id" top >> newtop  
          
        grep -n "zombie" top >> insisttop  
          
        top1=`cat  newtop   | awk '{print $5}' | sed -n 4p | sed 's/%//g' |sed 's/id,//g'`  
        top2=`cat  newtop   | awk '{print $5}' | sed -n 5p | sed 's/%//g' |sed 's/id,//g'`  
        top3=`cat  newtop   | awk '{print $5}' | sed -n 6p | sed 's/%//g' |sed 's/id,//g'`  
          
        top4=`cat insisttop | awk '{print $10}' | sed -n 2p | sed 's/%//g' |sed 's/id,//g'`  
          
        #echo "top4:$top4"  
          
        if [ $top4 -gt 0 ]  
          
        then   
            echo "`date '+%Y年%m月%d日 %H:%M:%S'` 采集处理服务器上出现僵尸进程,巡检程序将自动kill该进程,如需人工确认请执行命令top后再执行ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'来确认是否将僵尸进程杀死"  >> ./newreport.txt  
          
            ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9  
          
        else   
            echo "`date '+%Y年%m月%d日 %H:%M:%S'` 采集处理服务器上无僵尸进程正常运行!"  
        fi  
          
        a=${top1:0:2}  
        b=${top2:0:2}  
        c=${top3:0:2}  
          
        echo "top1: $a"  
        echo "top2: $b"  
        echo "top3: $c"  
          
          
         if [  $a    -lt  20  ]&&[  $b    -lt  20  ]&&[  $c    -lt  20  ]    ; then  
          
            echo  "`date '+%Y年%m月%d日 %H:%M:%S'` 数据库服务器CPU占用率不正常,top取到的值是$top1,$top2,$top3,小于参考值20,请及时处理!" >> ./newreport.txt  
          
        else  
          
          echo "CPU占用率正常!"   
          
        fi  
          
        rm -rf top  
          
        rm -rf newtop  
          
        rm -rf insisttop  
          
        #***************内存检测***********  
        free1=`free -g | awk '{print $4}' | sed -n 3p | sed 's/%//g' |sed 's/t//g'`  
          
        total=`free -g | awk '{print $2}' | sed -n 2p | sed 's/%//g' |sed 's/t//g'`  
          
        canshu=0.2  
          
        tempd=`echo $total $canshu |awk '{print $1*$2}'`  
          
        biaozhun=${tempd%.*}  
          
        if [ $free1  -le  $biaozhun  ]  ;  then   
        echo "`date '+%Y年%m月%d日 %H:%M:%S'`  数据库服务器内存占用率过高,free -g取到的值是$free1,小于等于参考值$biaozhun,请及时处理!" >> ./newreport.txt  
          
        else  
          
        echo "内存占用率正常!"  
          
        fi  
          
        #**************文件系统巡检**********  
        df1=`df -h | awk '{print $5}' | sed -n 2p | sed 's/%//g'`  
        df2=`df -h | awk '{print $5}' | sed -n 3p | sed 's/%//g'`  
        df3=`df -h | awk '{print $5}' | sed -n 4p | sed 's/%//g'`  
        df4=`df -h | awk '{print $5}' | sed -n 5p | sed 's/%//g'`  
        df5=`df -h | awk '{print $5}' | sed -n 6p | sed 's/%//g'`  
          
         if [ $df1 -gt  90 ]||[ $df2  -gt  90 ]||[ $df3 -gt  90 ]||[ $df4 -gt  90 ]||[ $df5 -gt  90 ] ; then  
          
            echo "`date '+%Y年%m月%d日 %H:%M:%S'` 数据库服务器磁盘占用率过高!df -h取到的值是$df1,$df2,$df3,$df4,$df5,参考值是90,若其中一个或一个以上大于参考值,请及时处理!" >> ./newreport.txt  
          
        else  
          
            echo "磁盘占用率正常!"  
          
        fi  
          
        #*********************磁盘IO性能巡检***************  
        iostat -x 2 5 >>iostat.txt  
          
        scvtm1=" `cat  iostat.txt  | awk '{print $11}' | sed -n 16p | sed 's/%//g' `"  
          
        scvtm2="` cat  iostat.txt  | awk '{print $11}' | sed -n 17p | sed 's/%//g'`"  
          
        scvtm3="` cat  iostat.txt  | awk '{print $11}' | sed -n 18p | sed 's/%//g'`"  
          
        scvtm4="` cat  iostat.txt  | awk '{print $11}' | sed -n 19p | sed 's/%//g'`"  
          
        scvtm13="` cat  iostat.txt  | awk '{print $11}' | sed -n 25p | sed 's/%//g'`"  
          
        scvtm6=" `cat  iostat.txt  | awk '{print $11}' | sed -n 26p | sed 's/%//g' `"  
          
        scvtm7="` cat  iostat.txt  | awk '{print $11}' | sed -n 27p | sed 's/%//g'`"  
          
        scvtm8="` cat  iostat.txt  | awk '{print $11}' | sed -n 28p | sed 's/%//g'`"  
          
        scvtm9="` cat  iostat.txt  | awk '{print $11}' | sed -n 34p | sed 's/%//g'`"  
          
        scvtm10="` cat  iostat.txt  | awk '{print $11}' | sed -n 35p | sed 's/%//g'`"  
          
        scvtm11="` cat  iostat.txt  | awk '{print $11}' | sed -n 36p | sed 's/%//g'