热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

解析Linux网络分析的三大利器

文章标题:解析Linux网络分析的三大利器。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  作者:杨鹏
  
  随着Internet的迅猛发展,网络已无处不在,但是,它可能随时受到来自各方的攻击。了解哪些人正在访问资源、哪些人正在享受服务、哪些人正在发送大量垃圾等,对网络管理员来说是非常必要的。利用Linux中较常见的网络分析工具Tcpdump、Nmap和Netstat,可以使网络管理工作更加轻松。
  Tcpdump主要是截获通过本机网络接口的数据,用以分析。Nmap是强大的端口扫描工具,可扫描任何主机或网络。Netstat可用来检查本机当前提供的服务及状态。这三者各有所长,结合起来,就可以比较透彻地了解网络状况。
  
  
  Tcpdump
  
  
  Tcpdump能够截获当前所有通过本机网卡的数据包。它拥有灵活的过滤机制,可以确保得到想要的数据。由于Tcpdump只能收集通过本机的数据,因此它的应用受到了一些限制,大多应用在网关或服务器自我检测上。例如,在作为网关的主机上,想知道本地网络中IP地址为192.168.0.5的主机现在与外界通信的情况,就可以使用如下命令:
  
  tcpdump -i eth0 src host 192.168.0.5
  
  
  
  在默认情况下,Tcpdump会将数据输出到屏幕。如果数据量太大,可能根本看不清具体的内容,这时我们可以把它重定向到文件再进行分析。如果眼神不错,就可以清楚地了解这位仁兄刚才的一举一动:
  
  访问了新浪网主页
  20:05:32.473388 192.168.0.5.1872 > www.sina.com.http:
  S 1372301404:1372301404(0) win 64240   1460,nop,nop,sackOK> (DF)
  ……
  进行了netbios广播进行名字查询
  20:05:33.823388 192.168.0.5.netbios-dgm >
  192.168.0.255.netbios-dgm: NBT UDP PACKET(138)
  ……
  到新华网POP3服务器收信
  20:05:41.953388 192.168.0.5.1878 > pop.xinhuanet.com.pop3: S
  1374956462:1374956462(0) win 64240 (DF)
  ……
  到深圳963收信
  20:05:45.633388 192.168.0.5.1881 > szptt154.szptt.net.cn.pop3:
  P 34:40(6) ack 146 win 64095 (DF)
  ……
  
  
  
  例如,上面这条信息表明了在20:05:45的时候,192.168.0.5通过1881源端口连接到963电子邮局的POP3端口。对于普通的网络分析,这些信息已经足够了。这就是Tcpdump的基本功能,其它高级功能都是在这一基础上的细化和增强。
  
  例如,我只想知道192.168.0.5当前正在访问哪些Web站点,可以用下面这条命令:
  
  tcpdump -i eth0 src host 192.168.0.5 and dst port 80
  
  
  
  该命令的目的是截获所有由eth0进入、源地址(src)为192.168.0.5的主机(host),并且(and)目标(dst)端口(port)为80的数据包。得到的数据如下:
  
  20:05:32.473388 192.168.0.5.1872 > www.sina.com.http:
   S 1372301404:1372301404(0) win 64240 (DF)
  ……
  20:06:33.42344 192.168.0.5.1873 > www.sohu.com.http:
  S 1374301404:1374301404(0) win 64245 (DF)
  ……
  20:07:31.343248 192.168.0.5.1874 > www.21cn.com.http:
  S 1377301404:1377301404(0) win 64241 (DF)
  ……
  
  
  
  显然,通过and或者not这些逻辑组合,就可以得到特定的数据。Tcpdump还可以监听不同的数据类型(如TCP、UDP),以用不同的网络范围(如Host主机、Net网络),甚至用Ether直接指定物理地址。
  
  用Tcpdump在网络中获取信息如此清晰,是不是有一种一览无余的感觉。正是因为Tcpdump功能过于强大,连个人隐私和敏感数据的保护都成了问题,所以通常只有root用户能够使用这一工具。
  
  
  Nmap
  
  
  Nmap设计的初衷是系统管理员可以方便地了解自己的网络运行情况,例如有多少台主机在运行、分别提供什么样的服务。因此,它扫描的速度非常快,尤其适合大型网络。在对网络进行扫描时,Nmap主要利用ICMP echo探测主机是否开启。凡是了解TCP/IP协议的都知道,对于一个TCP端口,无论是否使用防火墙进行过滤,该主机都会对该端口发出的请求做出一定响应。所以即使配置了严格的防火墙规则,nmap照样可以找到这些主机。例如,在一台IP地址为192.168.0.1的Linux主机上执行下列命令:
  
  echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  
  
  
  它的作用就是对所有ICMP echo不予理睬,也就是让通常用来测试网络的Ping命令失效。这样至少可以抵挡POD(Ping of Death)的攻击。在任何一台机器上Ping这台主机,得到的都会是请求超时,如:
  
  Pinging 192.168.0.1 with 32 bytes of data:
  Request timed out.
  Request timed out.Request timed out.Request timed out.
  Ping statistics for 192.168.0.1:
  Packets: Sent = 4, Received = 0, Lost = 4 (100% loss)
  
  
  
  这台主机是否下线了?用Nmap探测试试看:
  
  nmap -sP 192.168.0.1
  Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
  Host gw.somewhere.net (192.168.0.1) appears to be up.
  
  
  
  探测结果好像该主机还开着呢!这里,-sP指定使用Ping echo 进行扫描(Scan)。
  
  利用这一特点,可以很快知道目的网络究竟有多少主机处于运行状态:
  
  nmap -sP 192.168.0.0/24 //24表明目标是一个网络而非单个主机
  Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
  Host (192.168.0.2) appears to be up.
  Host www.somesite.net (192.168.0.5) appears to be up.
  Host (192.168.0.8) appears to be up.
  ……
  Host (192.168.0.253) appears to be up.
  Host fake.somesite.net (192.168.0.254) appears to be up.
  Nmap run completed -- 256 IP addresses (19 hosts up) scanned in 6 seconds
  
  
  
  既然已经知道了哪些主机还开着,就可以进一步探测这些主机的信息,如开启的端口、提供的服务及操作系统类型等。从上面扫描的结果可以知道,192.168.0.5这台机器正在运行。想要了解该主机的详细信息,可以执行:
  
  nmap 192.168.0.5
  
  
  
  稍后会显示如下内容:
  
  Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
  Interesting ports on www.somewhere.net (192.168.0.5):
  (The 1537 ports scanned but not shown below are in state: closed)
  Port State Service
  80/tcp open http
  135/tcp open loc-srv
  139/tcp open netbios-ssn
  443/tcp open https
  1031/tcp open iad2
  1433/tcp open ms-sql-s
  Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
  
  
  
  由上可以断定,这是一台运行Windows操作系统的主机,因为它开启了MS SQL Server的专用端口1433,还提供了HTTP服务等。这些信息如果被不怀好意的人得到,就可以采用对应的攻击办法。其实,强大的Nmap本身就可以依据TCP/IP的指纹特征猜测对方使用的操作系统。我们可以用-O来开启这一选项:
  
  nmap -O 192.168.0.5
  
  
  
  得到的结果是:
  
  Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
  Interesting ports on www.somewhere.net (192.168.0.5):
  (The 1536 ports scanned but not shown below are in state: closed)
  Port State Service
  80/tcp open http
  135/tcp open loc-srv
  139/tcp open netbios-ssn
  443/tcp open https
  1032/tcp open iad3
  1433/tcp open ms-sql-s
  Remote operating system guess: Microsoft NT 4.0 Server SP5 + 2047 Hotfixes
  Nmap run completed -- 1 IP address (1 host up) scanned in 2 seconds
  
  
  
  它猜测的远程主机类型是Microsoft NT 4.0 Server SP5 + 2047 Hotfixes,并且相当准确和详尽。
  
  
  Netstat
  
  
  Netstat主要用于Linux/Unix主机察看自身的网络状况,如开启的端口、在为哪些用户服务以及服务的状态等等。此外,它还显示系统路由表、网络接口状态等。可以说,它是一个综合性的网络状态察看工具,不过中规中举。
  
  例如在一台普通Linux服务器上运行Netstat,显示可能像这样:
  
  Active Internet connections (w/o servers)
  Proto Recv-Q Send-Q Local Address Foreign Address State
  tcp 0 0 xxx.net.http-alt xxx.net:1209 ESTABLISHED
  tcp 0 0 xxx.net.http-alt xxx.net:1509 ESTABLISHED
  tcp 0 0 xxx.net.ssh whoami.net:1867 ESTABLISHED
  tcp 0 0 xxx.net:1209 xxx.net.http-alt ESTA
推荐阅读
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 本文将详细探讨 Linux 系统中的 netstat 命令,该命令用于查看网络状态和连接情况。通过了解 IP 地址和端口的基本概念,我们将更好地理解如何利用 netstat 命令来监控和管理网络服务。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • Python Socket 基础入门
    本文介绍了客户端与服务端如何通过IP地址进行身份验证,并详细说明了在不同操作系统中查看和配置网络接口的方法。同时,文章还探讨了Socket的基本使用方法及其工作流程。 ... [详细]
  • 本文详细探讨了虚拟化的基本概念,包括服务器虚拟化、网络虚拟化及其在云计算环境中的应用。特别强调了SDN技术在网络虚拟化和云计算中的关键作用,以及网络虚拟化技术如何提升资源利用效率和管理灵活性。 ... [详细]
author-avatar
摩羯水瓶的微博w
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有