CentOS7简单压测

  1. 安装压测工具

    yum install httpd-tools -y
    
  2. 运行压测工具

    # 命令格式
    ab -c 【并发数】 -n 【请求数】 【压测链接】
    # 使用示例
    ab -c 100 -n 100 https://www.baidu.com/
    

CentOS7日志分析

  1. 作者QQ:67065435 QQ群:821635552

  2. 本站内容全部为作者原创,转载请注明出处!

  3. 分析日志中指定规则出现次数

    # 以分析指定【IP】访问次数倒序为例
    cat [文件]|grep -oE [正则规则]|sort|uniq -c|sort -rnk [列序号]|head -[行数]
    cat /usr/local/nginx/logs/access.log|grep -oE '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|sort|uniq -c|sort -rnk 1|head -20
    
  4. 分析日志中指定规则出现次数(命令说明)

    # cat打印文件内容
    cat [文件]
    
    # grep列匹配输出
    # -o     只输出匹配成功部分
    # -E     使用正则表达式进行匹配
    grep -oE [正则规则]
    
    # sort列进行排序
    sort
    
    # uniq列进行排重
    # -c 显示重复记录的条数
    uniq -c
    
    # sort列进行排序
    # -r         按倒序排序
    # -n         按数字排序
    # -k [列序号] 以哪一列进行排序
    sort -rnk [列序号]
    
    # head只显示N行
    head [行数]
    

日志分析实践

禁止sshd密码错误的IP登录

  1. 命令行写法

    cat /var/log/secure|grep -oE 'sshd(.*?)Failed(.*?)'|grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|sort -n|uniq|awk 'NF{print "all:" $0}' > /etc/hosts.deny
    
  2. 命令行解释

    # 获取服务器安全日志内容
    cat /var/log/secure
    
    # 从安全日志中筛选sshd登录失败日志
    grep -oE 'sshd(.*?)Failed(.*?)'
    
    # 从sshd登录失败日志中筛选登录失败IP地址
    grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
    
    # 对IP地址进行数字排序
    sort -n
    
    # 对IP地址进行去重处理
    uniq
    
    # 将IP地址拼接为 all:[IP地址] 的格式
    awk 'NF{print "all:" $0}'
    
    # 将拼接好的格式化字符串写入到禁止的IP当中
    > /etc/hosts.deny
    
  3. 注意事项

    1. /etc/hosts.deny修改后,要重启sshd才能使配置生效。
    
    2. 当密码输入错误时,该脚本会误封自己的IP,可通过‘uniq -c’筛选出N次以上的登录失败IP进行封禁,命令行改动如下:
        cat /var/log/secure|grep -oE 'sshd(.*?)Failed(.*?)'|grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|sort -n|uniq -c|grep -vE ' (1|2|3) '|grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|awk 'NF{print "all:" $0}'
        命令行中改动部分介绍如下:
        uniq -c表示去重并显示每个IP出现的次数;
        grep -vE ' (1|2|3) '表示去除失败3次以内的IP;
        grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'表示只输出IP地址。
    

封禁nginx访问异常IP

  1. 命令行写法

    cat /xxx/xxx.log|grep -oE 'nginx访问异常正则表达式'|grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|sort -n|uniq|awk 'NF{print "deny " $0 ";"}' > /xxx/deny.conf
    
  2. 命令行解释

    # 获取nginx日志内容
    cat /xxx/xxx.log
    
    # 从nginx日志中筛选nginx访问异常日志
    grep -oE 'nginx访问异常正则表达式'
    
    # 从nginx访问异常日志中筛选访问异常IP地址
    grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
    
    # 对IP地址进行数字排序
    sort -n
    
    # 对IP地址进行去重处理
    uniq
    
    # 将IP地址拼接为 deny [IP地址]; 的格式
    awk 'NF{print "deny " $0 ";"}'
    
    # 将拼接好的格式化字符串写入到禁止访问nginx的IP当中
    > /xxx/deny.conf
    
  3. 在nginx.conf下添加如下行

    http {
        include             /xxx/deny.conf;# 封禁IP
        xxxxxxx             xxxxxxxxxxxxxx;# 其它配置
    }
    
  4. 注意事项

    nginx访问异常正则表达式一定要谨慎设置,防止误封正常用户IP。
    
Copyright © 豆包嘿嘿~ 2012-∞ 冀ICP备17033181号 all right reserved,powered by Gitbook修订: 21-06-15 16:29

results matching ""

    No results matching ""