首页 > 其他分享 >每周一坑-生产环境出口流量报警排查

每周一坑-生产环境出口流量报警排查

时间:2022-10-11 23:35:54浏览次数:53  
标签:00 nginx IP 报警 排查 一坑 WAF 服务器 日志

每周一坑-生产环境出口流量报警排查   今天加班到7点,颇坑的,老板应该想把我弄死(这女的专业能力好菜,还不会分析问题,想问题不够全面),一路上他一直引导我如何挖掘问题本质,是个好老板,只能怪自己思考不周,下面是我总结好的经验,希望运维同胞们,别像我犯傻,然后要细心。幸好系统刚上线没造成什么影响。   这个是我手写总结下来的:

 

   然后梳理如下:

  在17点26分快下班的时候,收到入口出口流量报警,老板叫我查下是什么情况,我第一反应是一并告诉电信WAF技术,看看是不是有攻击IP,后来WAF那边确实查到有两个IP是访问比较多

WAF技术查到的:

 

 

 

   老板第一件事想了解清楚服务器端口究竟开了什么,开的情况又是怎么样的,这些过来的IP是否都是从WAF上转过来的。

  怎么测试呢,在浏览器上输入这个报警服务器的公网IP,是否能访问到。当时测试的时候是可以的,现象是输入IP,IP会跳转到域名,虽然域名已经接入了WAF。当时我排查的时候,给安全组规则老板看,说80、443端口只开了WAF白名单,不应该会这样。

  这个问题会导致,很难判断出,攻击IP究竟是直接从WAF那边过来攻击的,还是直接对这个服务器公网IP进行攻击(虽然ping这个域名返回的是WAF的IP,但是很难说人家)。正常情况下,公网IP访问是不行的,如下图:

   后来从该服务器上查看iptables规则,下面这两条规则忘记注释,以至于浏览器打开服务器公网IP,直接跳转到域名。

iptables,这两条忘记注释了

 正常来说应该只能是:

-A INPUT -s 【WAF白名单IP段】 -p tcp -d 【服务器内网IP地址】 --dport 80 -j ACCEPT

-A INPUT -s 【WAF白名单IP段】 -p tcp -d 【服务器内网IP地址】 --dport 443 -j ACCEPT

  说到这里必须提下,在天翼云上,只需要在安全组或者服务器iptables,两者选其一,去设置就能达到效果,但阿里的服务器就比较严格了,控制台的安全组和服务器iptables都要设置才能生效,开其一,就会全开放。

  另外排查过程中,不应该开ping,所以iptables加条这样的规则:

从系统默认的:-A INPUT -p icmp -j ACCEPT 改成

-A INPUT -p icmp -j DROP

  第二个问题,这些访问高的IP过来访问什么了?

  这个就要分析nginx日志了,先贴个nginx日志格式,用这个日志格式是因为能导入到elk5.2.1上,进而放到granfa分析日志

  log_format elk_logs
       '{"@timestamp":"$time_iso8601",'
    '"host":"$hostname",'
    '"server_ip":"$server_addr",'
    '"client_ip":"$remote_addr",'
    '"xff":"$http_x_forwarded_for",'
    '"real_remote_addr":"$real_remote_addr",'
    '"domain":"$host",'
    '"url":"$uri",'
    '"referer":"$http_referer",'
    '"upstreamtime":"$upstream_response_time",'
    '"responsetime":"$request_time",'
    '"status":"$status",'
    '"size":"$body_bytes_sent",'
    '"protocol":"$server_protocol",'
    '"upstreamhost":"$upstream_addr",'
    '"file_dir":"$request_filename",'
    '"http_user_agent":"$http_user_agent"'
    '}';

  这个是查报警时间段内,IP的数量

cat 日志名.log |  sed -n '/2022-10-11T17:00:18+08:00/, /2022-10-11T17:30:29+08:00/p' | cut -d '"' -f 20 | sort -nr |uniq -c |sort -nr

  特意说下时间段必须要精确,也就是说起始时间(2022-10-11T17:00:18+08:00),结束时间(2022-10-11T17:30:29+08:00)在nginx日志里,是能查到日志记录的,千万不要写成人为自以为有的但日志没有的,例如,2022-10-11T17:00:00+08:00和2022-10-11T17:30:00+08:00,我当时就是这样写,半天没有返回

 

   然后找WAF给来的两个访问特别高的IP,在这段时间访问了什么url,这个时候就有问题了,

cat Nginx日志 |  sed -n '/2022-10-11T17:00:18+08:00/, /2022-10-11T17:30:29+08:00/p' |grep  113.110.75.94 |cut -d '"' -f 32 |sort |uniq -c | sort -nr 

 

   然后老板就疑惑,WAF技术给来的IP访问的数量那么多,这里查不应该那么少,实际上是我后端nginx日志没开,只开了前端,我的锅

  为啥老板会想到查后端应用服务器的nginx日志,因为云监控看到这台服务器内网流量很高,这台服务器是没有公网ip的,出口是通过报警那台服务器出的,所以有可能是这个应用服务器做了什么,但由于当时我后端nginx日志没有配置,查不出什么,所以,嗯,怪我

   最后提醒下,nginx日志分析的那些命令,最好做个针对设置的nginx日志格式模板,这样拿来就用,我当时是直接数字段位置(通过双引号,人眼看在第几段),所以给老板看的时候挺慢的,而且忘记了时间要精确匹配,老板一度怀疑我是不会写命令的,问我是不是目录上没有这个文件(o(╯□╰)o  。。。 囧)

   洗洗睡,经一事长一智 = =

 

标签:00,nginx,IP,报警,排查,一坑,WAF,服务器,日志
From: https://www.cnblogs.com/windysai/p/16782993.html

相关文章

  • docker 容器内的 java 进程自动退出排查
    一个简单的javaweb程序,运行在docker容器中,提供对外接口服务现象:使用dockerrun启动容器后可以正常运行,访问一切正常,但是隔了几十分钟后容器自动退出,java日志一切......
  • mysql CPU过高排查
    最近发现mysqlCPU使用率高,将排查步骤记录一下一、top命令找到PID为24319二、vmstat1查看一下CPU使用率三、pidstat-u查看一下CPU使用率​四、pidstat-t-p2431......
  • 一次磁盘占用率 100% 的排查记录
    你好,我是悟空。最近遇到一个服务器的问题:磁盘满了,占用率100%~这个问题太常见了,于是先来排查一波是哪些文件占用了大量磁盘。一、排查磁盘占用率100%1.1查看磁盘使用......
  • 记一次CPU高占用问题排查
    记一次CPU高占用问题排查问题描述:线上服务器多线程出现死锁情形,CPU高占用。解决步骤:首先定位可疑进程号.jps命令将上述35381定位为可疑进程。进一步定位线程ID......
  • 【Maven】Jenkins打包失败,Maven无法获取依赖问题排查1
    背景总结下工作中maven依赖引用失败的排查的过程排查过程从gitee上拉取了某个项目,使用Jenkins打包时出现,无法解析到某个依赖,如下图   1.首先排查Nexu......
  • Nightingale 监控报警平台
    Nightingale从官方的介绍是企业版的prometheus,从功能上的确是很不错的,我们基本上可以实现基于ui灵活的管理prometheus的报警处理参考架构  VictoriaMetrics集成玩法 ......
  • 内存泄漏排查
    一、查看CPU实时运行情况top 第一部分第一行参数含义备注 top时间系统当前时间  up 时间系统运行时间开机时间 数字users用户登录人数......
  • 内存溢出排查
    一、主动式1、通过(Linux)ps-ef|grepfind或者(Dos)netstat-ano|findstr查找java程序运行的PID2、使用指令收集dump:jmap-dump:format=b,file=路径/heapdump.hprof查......
  • 线上环境应用程序消耗CPU过高问题排查
    一、CPU使用率过高的原因一般是: 1、线程空耗,如大量线程获取锁的过程中自旋等待; 2、系统进行密集运算(密集数学运算的AI程序等); 3、内存不足造成JVM频繁fullGC; 4、系......
  • 组态软件报警问题解决
    作为工业自动化领域的从业者,经常会使用各种组态软件,近期作者在使用业界鼎鼎大名的组态软件IFix过程中就遇到了一个小case,现在分享给大家。众所周知,IFix在运行过程中报警会......