运维工程师必会工具(Nmap和TCPdump)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云防火墙,500元 1000GB
简介: 运维工程师必会工具(Nmap和TCPdump)

文章标签tcpdumpnmap文章分类运维阅读数10000+

1、NMap工具

主要功能:探测主机是否在线、扫描主机开放端口和嗅探网络服务,用于网络探测和安全扫描。

NMap支持很多扫描技术,例如:UDP、TCPconnect()、TCPSYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、SYN扫描和null扫描。

命令格式:Nmap [ 扫描类型 ] [ 通用选项 ] { 扫描目标说明 }

扫描类型:

-sT

TCP connect()扫描,这是最基本的TCP扫描方式,用来建立一个TCP连接,如果成功则认为目标端口正在监听,否则认为目标端口没有监听程序。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。

-sS

 

TCP同步扫描(TCP SYN),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口没有监听程序。所以这项技术通常称为半开扫描(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,你需要root权限来定制SYN数据包。

-sF,-sX,-sN

秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包,通过这种扫描,可间接用于检测防火墙的健壮性。

-sP

ping扫描,用ping方式检查网络上哪些主机正在运行。当主机阻塞ICMP  echo请求包是ping扫描是无效的。nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。

-sU

UDP扫描,如果你想知道在某台主机上提供哪些UDP服务,可以使用此选项。

-sA

 

ACK扫描,这项高级的扫描方法通常可以用来穿过防火墙。

-sW

滑动窗口扫描,非常类似于ACK的扫描。

-sR

RPC扫描,和其它不同的端口扫描方法结合使用。

-b

FTP反弹攻击(bounce attack),连接到防火墙后面的一台FTP服务器做代理,接着进行端口扫描。

通用选项:

-n

不做反向DNS解析,以加快扫描速度

-P0

在扫描之前,不ping主机;有些网络防火墙可能禁止ICMP请求包,使用这种扫描类型可以跳过ping测试

-PT

扫描之前,使用TCP ping确定哪些主机正在运行。

-PS

对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。

-PI

设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。

-PB

这是默认的ping扫描选项。它使用ACK(-PT)和ICMP(-PI)两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。

-O

这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志,也就是操作系统类型。

-I

打开nmap的反向标志扫描功能。

 -f

使用碎片IP数据包发送SYN、FIN、XMAS、NULL。包增加包过滤、入侵检测系统的难度,使其无法知道你的企图。

-v

强烈推荐使用这个选项,它会给出扫描过程中的详细信息。

-S <IP>

在一些情况下,nmap可能无法确定你的源地址(nmap会告诉你)。在这种情况使用这个选项给出你的IP地址。

-g port

设置扫描的源端口。一些天真的防火墙和包过滤器的规则集允许源端口为DNS(53)或者FTP-DATA(20)的包通过和实现连接。显然,如果攻击者把源端口修改为20或者53,就可以摧毁防火墙的防护。

-oN

把扫描结果重定向到一个可读的文件logfilename中。

-oS

扫描结果输出到标准输出。

-A

打开操作系统探测和版本探测。

扫描目标:

目标地址

可以为IP地址,CIRD地址等。如192.168.1.2,222.247.54.5/24

-iL filename

从filename文件中读取扫描的目标。

-iR

让nmap自己随机挑选主机进行扫描。

-p

端口,这个选项让你选择要进行扫描的端口号的范围。可使用逗号分隔多个端口,减号连接一个端口范围,在列表前指定T:表示TCP端口,U:表示UDP端口

-exclude

 

排除指定主机。

-exclude

file

排除指定文件中的主机。


目标地址

可以为IP地址,CIRD地址等。如192.168.1.2,222.247.54.5/24

-iL filename

从filename文件中读取扫描的目标。

-iR

让nmap自己随机挑选主机进行扫描。

-p

端口,这个选项让你选择要进行扫描的端口号的范围。可使用逗号分隔多个端口,减号连接一个端口范围,在列表前指定T:表示TCP端口,U:表示UDP端口

-exclude

排除指定主机。

-exclude

file

排除指定文件中的主机。

端口的三种状态:

Open:意味着目标主机能够在这个端口使用accept()系统调用接受连接。

filtered:表示防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。

unfiltered:表示这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。

举例说明:

1、探测指定网段是否有FTP服务的主机,不做DNS反向解析

nmap -sS –n –p 21192.168.0.0/24

2、探测指定服务器是否启有特定端口的服务

nmap –n –p T:21-25,80,110,3389–sS 192.168.0.1

3、使用TCP连接扫描探测指定服务器,即使无法ping通也仍然继续探测

4、nmap -sT –PO 192.168.0.1

5、探测指定服务器的操作系统类型

nmap –O –n 192.168.0.1

6、探测局域网段中各主机开启了哪些服务

nmap –sS 192.168.0.0/24

7、探测192.168.0.0和172.16.0.0/16网段中有哪些主机在运行

nmap –sP –n 192.168.0.0/24 172.16.0.0/16

8、快速扫描主机开放端口

nmap -F 192.168.0.1

2、TCPDump工具

主要功能:捕获和分析数据包。

TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not等逻辑语句来帮助你去掉无用的信息。

命令格式:tcpdump [ 选项 ] [ -c 数量 ] [ -i 网络接口 ] [ -w 文件名 ] [ 表达式 ]

常用选项:

-l:使标准输出变为缓冲行形式;

-c:抓包次数;

-nn:直接以 IP 及 Port Number 显示,而非主机名与服务名称;

-s :<数据包大小> 设置每个数据包的大小;

-i:指定监听的网络接口;

-r:从指定的文件中读取包;

-w:输出信息保存到指定文件;

-a:将网络地址和广播地址转变成名字;

-d:将匹配信息包的代码以人们能够理解的汇编格式给出;

-e:在输出行打印出数据链路层的头部信息;

-f:将外部的Internet地址以数字的形式打印出来;

-t:在输出的每一行不打印时间戳;

-v :输出稍微详细的报文信息;加一个v更详细。

四种表达式:过滤报文条件

1、关于类型的关键字,主要包括host,net,port, 例如 host210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host。

2、确定传输方向的关键字,主要包括src, dst ,dst or src, dst and src ,这些关键字指明了传输的方向。例如 src210.27.48.2 ,指明ip包中源地址是210.27.48.2, dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。

3、 协议的关键字,主要包括ip,arp,tcp,udp等类型。

4、三种逻辑运算,与运算是'and','&&'; 或运算是'or' ,'||'; 非运算是 'not ' '! '。

其他重要的关键字如下: broadcast,less(小于),greater(大于)

举例说明:

1、截获eth0网卡10次收发所有数据包并将抓包结果保存到test文件,再读取test抓包结果文件

tcpdump –i eth0 –c 10 –w test

tcpdump –r test

2、截获来访问80端口的所有数据包(指定端口范围portrange 1-1024)

tcpdump port 80

3、截获所有来自主机114.254.151.51的进出所有数据包tcpdump host 114.254.151.51

4、截获ip包中源地址是114.254.151.51的(目的是dst)

tcpdump src 114.254.151.51

5、截获主机114.254.151.51和主机114.254.151.52的通信

tcpdum host 114.254.151.51 and 114.254.151.52

6、截获tcp协议并且源地址114.254.151.51来访问80的端口

tcpdump tcp and src 114.254.151.51 and port 80

7、截获主机114.254.151.51除了和114.254.151.52之外的所有ip包

tcpdump ip host 114.254.151.51 and ! 114.254.151.52

8、截获长度大于1000数据包,对于DDOS攻击时,可以使用

tcpdump -i eth0 greater 1000


相关文章
|
2月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
64 3
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
63 4
|
2月前
|
运维 Linux Apache
Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例
【10月更文挑战第8天】本文介绍了Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例。Puppet通过定义资源状态和关系,确保系统配置始终如一,支持高效管理基础设施。文章详细讲解了Puppet的安装步骤、配置方法及DSL语言示例,帮助读者快速掌握Puppet的使用技巧。
79 2
|
8天前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
18天前
|
机器学习/深度学习 人工智能 运维
自动化运维之路:从脚本到工具的演进
在IT运维领域,效率和准确性是衡量工作成效的关键指标。随着技术的发展,自动化运维逐渐成为提升这两个指标的重要手段。本文将带领读者了解自动化运维的演变历程,从最初的简单脚本编写到现今复杂的自动化工具应用,展示如何通过技术提升运维效率。文章不仅介绍理论和实践案例,还提供了代码示例,帮助读者理解自动化运维的实际应用场景。
|
19天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
59 3
|
2月前
|
运维 监控 网络协议
|
27天前
|
运维 Ubuntu 应用服务中间件
自动化运维工具Ansible的实战应用
【10月更文挑战第36天】在现代IT基础设施管理中,自动化运维已成为提升效率、减少人为错误的关键手段。本文通过介绍Ansible这一流行的自动化工具,旨在揭示其在简化日常运维任务中的实际应用价值。文章将围绕Ansible的核心概念、安装配置以及具体使用案例展开,帮助读者构建起自动化运维的初步认识,并激发对更深入内容的学习兴趣。
52 4
|
29天前
|
运维 监控 数据安全/隐私保护
自动化运维工具的设计与实现
【10月更文挑战第34天】在现代IT基础设施管理中,自动化运维工具扮演着至关重要的角色。它们不仅提高了运维效率,还确保了服务的连续性和稳定性。本文将深入探讨如何设计并实现一个自动化运维工具,从需求分析到功能实现,再到最终的测试与部署。我们将通过一个简单的代码示例来展示如何自动执行常见的运维任务,如日志清理和性能监控。文章旨在为读者提供一套完整的方法论,以便他们能够构建自己的自动化运维解决方案。
|
2月前
|
运维 关系型数据库 MySQL
自动化运维工具Ansible的实战应用
【10月更文挑战第9天】在现代IT运维领域,效率和可靠性是衡量一个系统是否健康的重要指标。自动化运维工具Ansible因其简洁、易用的特性,成为了众多企业和开发者的首选。本文将通过实际案例,展示如何利用Ansible进行日常的运维任务,包括配置管理、软件部署以及批量操作等,帮助读者深入理解Ansible的应用场景及其带来的效益。