我们经常使用Ping命令,但你知道谁在Ping你的服务器吗?

众归云 服务器知识139阅读模式

相信各位同学对Ping命令并不陌生,Ping命令主要用于检测两台计算机之间是否能够进行网络通信。通过发送ICMP(Internet Control Message Protocol)回显请求到目标主机并等待回应,源主机会发送 ICMP Echo Request 请求并接收目标主机的 ICMP Echo Reply 响应,源主机通过是否接收到响应包来判断目标主机是否在线以及网络延迟情况。在日常工作中,我们经常去Ping服务器,那我们怎么知道有哪些IP地址来Ping我们的服务器?下面我们一起来看看如何操作。

1. 测试环境操作系统:CentOS7.6

2. 实现原理方法一:使用tcpdump命令抓包,这个方法最通用,只要涉及网络流量的,都可以通过抓包来获取想要的信息;方法二:使用iptables命令创建一个日志过滤器来跟踪记录ping请求。

2.1 使用tcpdump命令tcpdump是基于Unix系统的命令行式的数据包嗅探工具,可以抓取流动在网卡上的数据包。如果系统中没有tcpdump命令,可以使用yum命令安装,前提是配置好YUM源:(1)配置阿里的YUM源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repocurl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

(2)安装命令

yum install tcpdump

(3)执行抓包命令

tcpdump -n -q icmp
我们经常使用Ping命令,但你知道谁在Ping你的服务器吗?

从抓包命令后,会动态显示关于ICMP协议的结果,从结果中我们可以看到,源主机192.168.2.235和192.168.2.10发送了ICMP echo request包,目标主机192.168.2.3(当前服务器)分别回复了ICMP echo reply包;通过tcpdump抓包就获取到IP地址192.168.2.235和192.168.2.10 对我的服务器进行了ping检测。(4)只抓取入流量如果你只想查看有哪些IP对服务器发起Ping检测,执行以下命令:

tcpdump -n -q icmp and icmp[icmptype] == 8
我们经常使用Ping命令,但你知道谁在Ping你的服务器吗?

(5)只抓取出流量如果你只想查看有服务器响应了哪些IP,执行以下命令:

tcpdump -n -q icmp and icmp[icmptype] == 0
我们经常使用Ping命令,但你知道谁在Ping你的服务器吗?

2.2 使用iptables命令使用iptables命令创建一个日志过滤器来跟踪记录ping请求。(1)执行命令

iptables -I INPUT -p icmp -j LOG --log-prefix "ICMP: "
我们经常使用Ping命令,但你知道谁在Ping你的服务器吗?

(2)使用dmesg命令查看记录iptables命令会将记录写入到dmesg日志中,为了方便查看,在执行命令之前使用"dmesg -c"命令清除一下其他日志,日志内容:

dmesg
我们经常使用Ping命令,但你知道谁在Ping你的服务器吗?

从日志内容中可以看出,SRC的值为源主机IP地址,DST的值为目标主机IP地址,从而获取到IP地址192.168.2.235和192.168.2.10 对我的服务器进行了ping检测。如果需要保留原来的日志,则不能使用"dmesg -c"命令清除其他日志,我们可以使用grep命令过滤出ICMP的记录,如:

dmesg | grep -i ICMP
我们经常使用Ping命令,但你知道谁在Ping你的服务器吗?

3. 总结以上方式通过抓取网卡的流量包分析出源IP和目标IP,从而发现谁在ping或者ping过的服务器,当发现被恶意检测或者被打扰时,就可以针对该IP地址进行拦截。如果是Windows操作系统,可以使用wireshark等抓包工具进行获取。

本文来自网络,不代表王道测评立场,如有争议请发邮件:enofun@foxmail.com

AD:【本站QQ交流群】114135944

众归云
  • 本文来自网络,不代表王道测评立场,转载请注明出处
  • 转载请务必保留本文链接:http://www.20115.net/566.html