day 26 网络服务(3)

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下查看
day 26 网络服务(3)_第1张图片
图片.png

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自己的服务器

你可能感兴趣的:(day 26 网络服务(3))