美文网首页
Linux安全检查基线

Linux安全检查基线

作者: 捡书 | 来源:发表于2021-04-21 14:52 被阅读0次

    1.检查用户登录情况

    lastlog命令,检查最后登录时间

    [root@localhost]# lastlog
    用户名           端口     来自             最后登陆时间
    root             pts/0    192.168.124.88   四 2月 18 10:05:04 +0800 2021
    bin              pts/1                     二 7月 21 18:35:54 +0800 2020
    daemon                                     **从未登录过**
    adm                                        **从未登录过**
    lp                                         **从未登录过**
    sync                                       **从未登录过**
    shutdown                                   **从未登录过**
    ossec                                      **从未登录过**
    ntp                                        **从未登录过**
    test                                       **从未登录过**
    testx            pts/1                     二 7月 21 18:35:54 +0800 2020
    hids             pts/0    192.168.124.88   四 2月 18 10:05:04 +0800 2021
    tss                                        **从未登录过**
    tcpdump                                    **从未登录过**
    

    w命令

    [root@localhost]# w
     14:09:13 up 454 days, 17:19,  1 user,  load average: 0.18, 0.17, 0.15
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.124.88   10:05    1.00s  0.05s  0.05s -bash
    

    lastb命令,检查登录失败日志

    [root@localhost]# lastb
    root     ssh:notty    192.168.60.48    Thu Feb  4 17:39 - 17:39  (00:00)
    
    btmp begins Thu Feb  4 17:39:35 2021
    

    2.检查命令历史记录

    root用户history

    [root@localhost]# history
        1  cd /opt/security-agent/plugin/
        2  md5sum run_filebeat.sh
        3  ps -aux | grep filebeat
        4  cd /var/log/security-agent/
        5  tail -n 100 2021-1-11.log
        6  ps -aux
        7  ps -aux | grep filebeat
    

    打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令

    cat .bash_history >> history.txt
    

    保存1万条命令

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

    在/etc/profile的文件尾部添加如下行数配置信息,可以显示登录的IP地址、执行命令时间等信息:

    USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
    if [ "$USER_IP" = "" ]
    then
    USER_IP=`hostname`
    fi
    export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
    shopt -s histappend
    export PROMPT_COMMAND="history -a"
    

    让配置生效

    source /etc/profile
    

    3.检查端口开放

    使用netstat 网络连接命令,分析可疑端口、IP、PID

    [root@localhost]# netstat -antlp|more
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:26379           0.0.0.0:*               LISTEN      5332/redis-sentinel
    tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      5231/redis-server 0
    tcp        0      0 192.168.3.155:2379      0.0.0.0:*               LISTEN      32340/./etcd
    tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      32340/./etcd
    tcp        0      0 192.168.3.155:2380      0.0.0.0:*               LISTEN      32340/./etcd
    tcp        0      0 192.168.3.155:8300      0.0.0.0:*               LISTEN      32536/./consul
    tcp        0      0 192.168.3.155:8301      0.0.0.0:*               LISTEN      32536/./consul
    tcp        0      0 192.168.3.155:8302      0.0.0.0:*               LISTEN      32536/./consul
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1091/sshd
    

    4.检查进程

    ps命令和top命令,这个就不解释了。。

    ps aux
    top
    

    5.开机启动项

    查看运行级别命令 runlevel

    [root@localhost]# runlevel
    N 3
    

    运行级别 含义
    0 关机
    1 单用户模式,可以想象为windows的安全模式,主要用于系统修复
    2 不完全的命令行模式,不含NFS服务
    3 完全的命令行模式,就是标准字符界面
    4 系统保留
    5 图形模式
    6 重启动

    检查启动项

    more /etc/rc.local /etc/rc.d/rc[0~6].d
    
    ls -l /etc/rc.d/rc[0~6].d/
    

    6.定时任务

    crontab

    crontab -l  #列出某个用户cron服务的详细内容
    

    默认编写的crontab文件会保存在 /var/spool/cron/用户名
    例如: /var/spool/cron/root

    查看目录中是否存在恶意脚本

    more /var/spool/cron/* 
    more /etc/crontab
    more /etc/cron.d/*
    more /etc/cron.daily/* 
    more /etc/cron.hourly/* 
    more /etc/cron.monthly/*
    more /etc/cron.weekly/
    more /etc/anacrontab
    more /var/spool/anacron/*
    

    7.服务检查

    查询已安装的服务

    [root@localhost]# chkconfig  --list
    
    注:该输出结果只显示 SysV 服务,并不包含
    原生 systemd 服务。SysV 配置数据
    可能被原生 systemd 配置覆盖。
    
          要列出 systemd 服务,请执行 'systemctl list-unit-files'。
          查看在具体 target 启用的服务请执行
          'systemctl list-dependencies [target]'。
    
    netconsole      0:关 1:关 2:关 3:关 4:关 5:关 6:关
    network         0:关 1:关 2:开 3:开 4:开 5:开 6:关
    

    查看当前服务

    ps aux | grep crond 
    

    查看服务enabled状态

    systemctl list-unit-files | grep enabled
    

    8.系统日志检查

    日志默认存放位置:/var/log/
    查看日志配置情况:more /etc/rsyslog.conf

    文件路径 说明
    /var/log/cron 记录了系统定时任务相关的日志
    /var/log/cups 记录打印信息的日志
    /var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
    /var/log/mailog 记录邮件信息
    /var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
    /var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
    /var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
    /var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
    /var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询
    /var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

    定位有多少IP在爆破主机的root帐号:

    grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
    

    定位有哪些IP在爆破:

    grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
    

    爆破用户名字典

    grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
    

    登录成功的IP

    grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
    

    登录成功的日期、用户名、IP

    grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}' 
    

    增加用户的日志

    grep "useradd" /var/log/secure 
    

    删除用户的日志

    grep "userdel" /var/log/secure
    

    查看具有root权限的用户

    awk -F: '$3==0{print $1}' /etc/passwd
    

    查看可使用ssh登录的用户

    cat /etc/passwd | grep -E '/bin/bash'
    

    相关文章

      网友评论

          本文标题:Linux安全检查基线

          本文链接:https://www.haomeiwen.com/subject/zhitlltx.html