打开网站图片弹入指定位置代码,新一站保险网,wordpress首页文章设置,首页关键词是不是一个网站的核心关键词所在目 录
一、需求
二、解决思路
三、实现方式
1、抓一定数量的数据包
2、抓取1小时的数据包
3、以小时为周期#xff0c;周期性的执行抓包1小时
4#xff0c;抓包分析并输出结果
5#xff0c;周期性分析并输出结果
#xff08;1#xff09;定时…
目 录
一、需求
二、解决思路
三、实现方式
1、抓一定数量的数据包
2、抓取1小时的数据包
3、以小时为周期周期性的执行抓包1小时
4抓包分析并输出结果
5周期性分析并输出结果
1定时设置
2命令部分 一、需求 如果一个Linux网络主机接收到太多来自某个未知IP地址的数据包可能涉及多种情况以下是一些可能的原因
1、网络扫描或探测 未知IP地址可能正在进行网络扫描或探测尝试发现主机上的开放端口和服务。这种活动可能用于后续的恶意攻击如尝试利用已知的漏洞。
2、拒绝服务攻击DoS/DDoS 大量来自同一未知IP地址的数据包可能是拒绝服务攻击的一部分旨在耗尽主机的资源如带宽、CPU或内存导致服务不可用。
3、误配置或网络故障 在某些情况下数据包洪流可能只是由于网络配置错误或故障导致的。例如网络设备可能错误地将流量路由到目标主机或者主机可能错误地配置了监听大量不必要的流量。
4、僵尸网络活动 僵尸网络Botnet是由大量被恶意软件感染并受远程控制的计算机组成的网络。这些被感染的计算机可能被用来发动大量针对特定目标的攻击包括发送大量数据包。
5、正常但由于意外而带来的流量 在某些情况下大量来自同一IP地址的数据包可能是正常的活动但是出现了错误的动作。例如一个合法的用户或服务可能配置不当导致生成过多的网络流量。 总之出现这种情况基本上是危险的前兆。那么我们有没有办法通过命令或者脚本等手段找到这个问题根源呢 二、解决思路 要查看网络情况首先要进行抓包然后对抓到的数据包进行分析。比如我们可以用最常见的tcpdump进行抓包然后通过awkcut等工具对数据包进行分析最后把所有发过来的数据包筛选出来统计IP地址相同的包并显示出来。因此可以列出如下步骤 1、通过tcpdump抓取一定时间的数据包保存下来 2、周期性的执行这个命令 3、对抓到的数据包进行分析主要是对源IP地址这部分进行分析 4、统计出源IP地址的数量 5、对IP地址数量进行排序。 三、实现方式 1、抓一定数量的数据包 抓取1万数据包的命令如下 tcpdump -c 10000 -i eth0 实际操作效果如下
[rootecs-52a1 121yunwei]# tcpdump -c 10000 -i eth0 /home/pkts.pcap
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
10000 packets captured
20172 packets received by filter
8890 packets dropped by kernel
[rootecs-52a1 121yunwei]#
[rootecs-52a1 121yunwei]# 2、抓取1小时的数据包 命令如下 timeout 1h tcpdump -i eth0 -w /home/pkts.pcap 为了可以周期性的执行可以把这个命令保存为shell脚本文件方便调用如下
#!/bin/bash
# capture_packets.sh
# 定义抓包文件名称固定不变以便后续覆盖
PCAP_FILE/home/pkts.pcap
# 执行 tcpdump 抓包一个小时使用 timeout 命令限制时间并覆盖之前的文件
timeout 1h tcpdump -w $PCAP_FILE -i eth0 3、以小时为周期周期性的执行抓包1小时 crontab -e 内容编辑如下
*/5 * * * * capture_packets.sh 4抓包分析并输出结果 采用如下命令分析结果 awk {print $3} /home/pkts.pcap | cut -d. -f 1-4 | sort | uniq -c | sort -nk 1 测试效果如下
[rootecs-52a1 121yunwei]#
[rootecs-52a1 121yunwei]# awk {print $3} /home/pkts.pcap | cut -d. -f 1-4 | sort | uniq -c | sort -nk 111 ecs-52a1.459371 ecs-52a1.496691 ecs-52a1.706012 112.86.84.8830 ecs-52a1.gbjd816324 222.93.149.89
[rootecs-52a1 121yunwei]# 根据这个结果最大的访问量是222.93.149.89过来的访问只有324个所以不存在网络攻击。
5周期性分析并输出结果 可以生成脚本文件analysis_packets.sh把命令也写到crontab中如下
*/5 * * * * capture_packets.sh sleep 2s analysis_packets.sh 1定时设置 这个表达式前半部分为定时任务设置如下 */5: 这表示每5分钟执行一次。星号*代表任意值而斜杠/后面跟的数字表示间隔。因此*/5 意味着从0分钟开始每隔5分钟。 *: 小时。星号表示“每小时”。 *: 一个月中的哪一天。星号表示“每天”。 *: 月份。星号表示“每个月”。 *: 一周中的哪一天0代表星期日1代表星期一依此类推。星号表示“每周的每一天”。 综上这个定时任务表示每小时的每5分钟执行后面的命令。
2命令部分 如下为命令部分的解释 capture_packets.sh: 这是一个shell脚本它的功能很可能是捕获网络数据包。 : 这是一个逻辑操作符表示“如果前一个命令成功执行返回值为0则执行后面的命令”。 sleep 2s: 这个命令会使系统暂停2秒。 : 同上是逻辑操作符。 analysis_packets.sh: 这是另一个shell脚本它的功能可能是分析之前捕获的数据包。 总结下来这个 crontab 行的作用是每小时的每5分钟执行 capture_packets.sh 脚本捕获数据包等待2秒然后执行 analysis_packets.sh 脚本分析数据包。注意如果 capture_packets.sh 执行失败返回值不为0则后续的 sleep 和 analysis_packets.sh 将不会执行。