1、tcpdump抓包
tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具
tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具
tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息
[root@yangdan]# yum search tcpdump
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile * base: mirrors.yun-idc.com * extras: mirrors.yun-idc.com * updates: mirrors.yun-idc.com ======================================================================= N/S Matched: tcpdump ======================================================================== tcpdump.x86_64 : A network traffic monitoring tool
Name and summary matches only, use "search all" for everything.
[root@yangdan]# which tcpdump /usr/sbin/tcpdump
[root@yangdan]# tcpdump -h
tcpdump version 4.1-PRE-CVS_2015_07_23
libpcap version 1.4.0 Usage: tcpdump [-aAdDefhIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ]
[ -P in|out|inout ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -z command ]
[ -Z user ] [ expression ]
[root@yangdan]# yum search wireshark
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile * base: mirrors.yun-idc.com * extras: mirrors.yun-idc.com * updates: mirrors.yun-idc.com ================================================ N/S Matched: wireshark ================================================ wireshark-devel.i686 : Development headers and libraries for wireshark
wireshark-devel.x86_64 : Development headers and libraries for wireshark
wireshark-gnome.x86_64 : Gnome desktop integration for wireshark and wireshark-usermode
wireshark.i686 : Network traffic analyzer
wireshark.x86_64 : Network traffic analyzer
Name and summary matches only, use "search all" for everything.
安装:
[root@]# yum install wireshark* -y
[root@yangdan]# which wireshark /usr/sbin/wireshark
[root@yangdan]# rpm -qa|grep wireshark
wireshark-devel-1.8.10-17.el6.x86_64
wireshark-1.8.10-17.el6.x86_64
wireshark-gnome-1.8.10-17.el6.x86_64
保存tcpdump抓包结果
[root@yangdan]# tcpdump -i eth0 -w dump.pcap -i #是指定要抓取的网卡 -w #指定结果保存的位置
[root@bass Desktop]# tcpdump -i eth0 -w dump.pcap -v
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes ^C189 packets captured 189 packets received by filter 0 packets dropped by kernel
-v#主要是为了得到Got 15这个数,当想要停止的时候,按下ctrl + c
[root@bass Desktop]# ll -h dump.pcap -rw-r--r--. 1 tcpdump tcpdump 18K Aug 30 13:19 dump.pcap
在wireshark中打开:
[root@yangdan]# wireshark dump.pcap #linux下查看
2、端口号
http:80 ftp:21 ssh:22 telnet:23 smtp:25 dns udp:53 ntp udp 123
tcpdump 抓包参数
- -n 不把ip解析成主机名
- -nn 不把端口解析成应用层协议
- -c 制定抓包的数量
- -S 不把随机序列和确认值解析成绝对值
[root@rsnc-backup ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet 以太网
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none dhcp自动,·还是手动静态ip
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0 网卡名
DEVICE=eth0 设备名
ONBOOT=yes 开机自动连接网络
IPADDR=10.0.0.41
PREFIX=24
GATEWAY=10.0.0.254
DNS1=10.0.0.254
IPV6_PRIVACY=no
3、ping测试网络连通
它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping 命令是第一个必须掌握的 DOS 命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标 IP 地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等
[root@backup ~]# ping baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=41.0 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=42.6 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128 time=41.4 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=128 time=42.5 ms
^C
--- baidu.com ping statistics ---
5 packets transmitted, 4 received, 20% packet loss, time 4008ms
rtt min/avg/max/mdev = 41.095/41.908/42.617/0.668 ms
ping命令的参数:
-t 表示将不间断向目标 IP 发送数据包,直到我们强迫其停止 试想,如果你使用 100M 的宽带接入,
而目标 IP 是 56K 的小猫,那么要不了多久,目标 IP 就因为承受不了这么多的数据而掉线,一次攻击就这么简单的实现了。
-l 定义发送数据包的大小,默认为 32字节,我们利用它可以最大定义到 65500字节。
结合上面介绍的 -t 参数一起使用,会有更好的效果哦。
-n 定义向目标 IP 发送数据包的次数,默认为 3次。如果网络速度比较慢,
3次对我们来说也浪费了不少时间,因为现在我们的目的仅仅是判断目标 IP 是否存在,
那么就定义为 1次吧。说明一下,如果 -t 参数和 -n 参数一起使用,
ping 命令就以放在后面的参数为标准,比如“ping IP -t -n 3”,虽然使用了 -t 参数,
但并不是一直 ping 下去,而是只 ping 3次。另外,ping 命令不一定非得 ping IP,
也可以直接 ping 主机域名,这样就可以得到主机的 IP。
[root@backup ~]# ping 10.0.0.7
PING 10.0.0.7 (10.0.0.7) 56(84) bytes of data.
64 bytes from 10.0.0.7: icmp_seq=1 ttl=64 time=0.417 ms
64 bytes from 10.0.0.7: icmp_seq=2 ttl=64 time=0.246 ms
64 bytes from 10.0.0.7: icmp_seq=3 ttl=64 time=0.252 ms
^C
--- 10.0.0.7 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.246/0.305/0.417/0.079 ms
4、TTL生存时间
TTL 是 IP 协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。一个解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL 的初值通常是系统缺省值,是包头中的 8位的域。TTL 的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把 TTL 域减一,TTL 通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个 ICMP 报文给最初的发送者 。
- TTL 时间越长,缓存时间越长,更新越不容易及时生效。增大 TTL 值,以节约域名解析时间,给网站访问加速。
- TTL 设置的小一些,生效时间就会快一些。减小 TTL 值,减少更换空间时的不可访问时间。
|System|TTL Value|
|--|--|
|linux|64|
|win2k/nt|128|
|windows|32|
|unix|255|
5、nc 网络的瑞士军刀
服务端:nc -l -u 100000
客户端:nc -u 192.168.11.88 10000
想要连接到某处:nc [-options] hostname port[s] [ports] …
绑定端口等待连接:nc -l port [-options] [hostname] [port]
参数:
-g <网关>:设置路由器跃程通信网关,最多设置8个;
-G <指向器数目>:设置来源路由指向器,其数值为4的倍数;
-h 在线帮助;
-i <延迟秒数>:设置时间间隔,以便传送信息及扫描通信端口;
-l 使用监听模式,监控传入的资料;
-n 直接使用ip地址,而不通过域名服务器;
-o <输出文件>:指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存;
-p <通信端口>:设置本地主机使用的通信端口;
-r 指定源端口和目的端口都进行随机的选择;
-s <来源位址>:设置本地主机送出数据包的IP地址;
-u 使用UDP传输协议;
-v 显示指令执行过程;
-w <超时秒数>:设置等待连线的时间;
-z 使用0输入/输出模式,只在扫描通信端口时使用。
用法:
(1)、连接到远程主机
[root@backup ~]# nc -nvv 192.168.1.202 80
(2)、监听本地主机
[root@backup ~]# nc -l 80
(3)、超时监控
多数情况我们不希望连接一直保持,那么我们可以使用 -w 参数来指定连接的空闲超时时间,该参数紧接一个数值,代表秒数,如果连接超过指定时间则连接会被终止。
server
[root@backup ~]# nc -l 2389
client
[root@backup ~]# nc -w 10 localhost 2389
文件传输
Server
[root@backup ~]# nc -l 20000 < file.txt
Client
[root@backup ~]# nc -n 192.168.1.1 2000 > file.txt
6、nmap 扫描端口
Nmap是一款网络扫描和主机检测的非常有用的工具。Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统
主机发现:用于发现目标主机是否处于活动状态。Nmap 提供了多种检测机制,可以更有效地辨识主机。例如可用来列举目标网络中哪些主机已经开启,类似于Ping命令的功能。
端口扫描:用于扫描主机上的端口状态。
Nmap可以将端口识别为开放(Open)、关闭(Closed)、过滤(Filtered)、未过滤(Unfiltered)、开放或过滤(Open|Filtered)、关闭或过滤(Closed|Filtered)。
默认情况下,Nmap会扫描1660个常用的端口,可以覆盖大多数基本应用情况。防火墙/DNS规避和哄骗:提供多种机制来规避防火墙、IDS的的屏蔽和检查,便于秘密地探查目标主机的状况。
基本的规避方式包括:分片、IP诱骗、IP伪装、MAC地址伪装。-
扫描参数:
-v //显示扫描过程,推荐使用-h //帮助文档
-p //指定端口号,如[1-65535],[22,135,1433,3306]等格式
-O //启动远程操作系统监测,存在误报
-A //全面系统监测,使用脚本检测,扫描等
-iL //批量扫描,读取主机列表,如[-iL C:\ip.txt]
7、iftop 监控网络流量
(1)、iftop是什么
iftop类似于top的实时流量监控工具
(2)、iftop有什么用
iftop可以用来监控网卡的实时流量(可以制定网段) 反向解析IP、显示端口信息、
(3)、安装iftop
安装方法1:、编译安装
安装前需要已经安装好基本的编译所需的环境,比如:make、gcc、autoconf等,安装iftop还需要安装libpcap和libcurses。
centos上安装所需的依赖包:
[root@backup ~]# yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel
[root@backup ~]# wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make && make install
安装方法2、(懒人办法,最简单)
按[https://www.vpser.net/manage/centos-rhel-linux-third-party-source-epel.html](https://www.vpser.net/manage/centos-rhel-linux-third-party-source-epel.html) 这个教程安装好EPEL,直接yum install iftop
(4)、iftop常用参数
-i 设定检测的网卡。如: iftop -B
-B 以bytes为单位显示流量(默认是
bits),如:iftop -n
-n 使host信息默认直接都显示IP。
-N 是端口信息默认直接都显示端口号。
-F 显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h (display this message),帮助,显示参数信息
-p 使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息
-b 使流量图形条默认就显示;
-f 这个暂时还不太会用,过滤计算包用的;
-P 使host信息及端口信息默认就都显示;
-m 设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
8、网络故障排查
(1)、xshell 连接不上
第一步:在windows系统上检查网络适仪器Vnet8,是否禁用Vmware的虚拟网卡
第二步: 检查Vmware net8的地址是和虚拟机的ip处于同一网段。
第三步:检查系统的Vmware服务是否启动
第四步: 检查虚拟机的网络适配器是否连接
第五步: 在vmware控制台登录Linux,查看是否有ip地址
(2)、ping不通百度的问题
第一步:是否能ping通外网ip,223.5.5.5,能ping通,说明是dns的配置问题
第二步:是否能ping通网关,ronte -n去查网关,如果能ping通网关。你可能被上网行为管理限制,还有一种可能,你配置了一个错误的网关!
(3)、ping不通vmware 网关的问题
第一步:重启vmware nat服务
第二步:把虚拟机的网络适配器,先断开,在连接
第三步:进入vmware Linux系统,systemctl restart network(重复三次)
(4)企业里面上不了网
第一步:检查物理是否正常
第二步:ping网关
第三步:ping公网ip
第四步:ping www.baidu.com
第五步:ping自己的服务器