tcpdump是用来抓取数据的,wireshark则是用于分析抓取到的数据的。
一般需要安装,直接使用yum安装:yum -y install tcpdump即可。
Tcpdump使用方法
(1)关于类型的关键字主要包括host,net,port
例如: host 210.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
这些关键字指明了传输的方向,例如:src 210.27.48.2,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0。如果没有指明方向关键字,则缺省是src or dst关键字。
(3)协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。
Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。
(4)其他重要的关键字如下:gateway, broadcast,less,greater,
还有三种逻辑运算,取非运算'not '和'! ', 与运算是'and','&&'; 或运算 是'or','││';
普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
tcpdump输出格式
总的的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数
例如:tcpdump �Ci eth0 �Cc 10
使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存
A.截获主机172.16.14.107和主机172.16.14.27的通信
tcpdump host 172.16.14.107 and 172.16.14.27
B.想要截获主机172.16.14.107和主机172.16.14.27或172.16.14.99的通信,使用命令:(在命令行中使用括号时,一定要用’\’
tcpdump host 172.16.14.107 and \(172.16.14.27 or 172.16.14.99 \)
C.如果想要获取主机172.16.14.107除了和主机172.16.14.27之外所有主机通信的ip包,使用命令:
tcpdump ip host 172.16.14.107 and ! 172.16.14.27
D.如果想要获取主机172.16.14.107接收或发出的telnet包,使用如下命令:
tcpdump tcp port 23 and host 172.16.14.107
E.对本机的udp 123 端口进行监视 (123 为ntp的服务端口)
tcpdump udp port 123
F.系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:
tcpdump -i eth0 src host hostname
G.下面的命令可以监视所有送到主机hostname的数据包:
tcpdump -i eth0 dst host hostname
#src表示源,即发送
#dst表示目的地,即接收
H.我们还可以监视通过指定网关的数据包:
tcpdump -i eth0 gateway Gatewayname
I.如果你还想监视主机名hostname到指定端口的TCP或UDP数据包,那么执行以下命令:
tcpdump -i eth0 host hostname and tcp port 80
J.如果想要获取主机172.16.14.107接收或发出的telnet包,使用如下命令:
tcpdump tcp port 23 and host 172.16.14.107
K. 如果我们只需要列出送到80端口的数据包,用dst port 80;如果我们只希望看到返回80端口的数据包,用src port 80。
tcpdump �Ci eth0 host hostname and dst port 80 目的端口是80
或者
tcpdump �Ci eth0 host hostname and src port 80 源端口是80
80端口一般是提供http的服务的主机.
L.如果要用wireshark分析数据:
tcpdump -i eth0 -c 100 -s 0 -w /home/data.pcap
直接使用wireshark /home/data.pcap即可。
Linux下面的Wireshark抓包工具安装与使用
Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。Wireshark也使用pcap network library来进行封包捕捉。
linux下面的安装:yum -y install wireshark-*
其他方面操作系统安装请参靠:http://netsecurity.51cto.com/art/200906/131979.htm
当我们启动wireshark时候会出现下面的报错:
[root@attack ~]# wireshark
(wireshark:2383): Gtk-WARNING **: cannot open display: 192.168.1.2:1.0
从报错看出来要求我们的操作系统安装图行界面,就是X Window+GNOME 或者X Window+KDE
在CentOS下,是如下几个软件包组
yum groupinstall -y Desktop "X Window System"
或者
yum groupinstall -y Desktop "KDE Desktop"
如果上面的回答不够详细,建议搜索一下X Window 然后,再探索一下。
不然就在Windows下安装一个xmanager,执行Xmanager-passive 将Linux下的DISPLAY转发到windows下。
可以借鉴如下链接
http://bbs.51cto.com/thread-1080570-1.html
配置本地X Server远程安装Oracle 数据库
当我们需要在服务器上安装Oracle数据库时,我们总希望最大化Linux服务器性能利用。尽量少的安装其他复杂的软件,只安装Oracle必要的软件即可。然而事实上,由于对Linux比较陌生。只有在已经安装X window图形化套件的情况下,才会安装Oracle数据库。并可怕得渐渐认为Oracle必需X window图形化套件。通过对Oracle官方文档的阅读,我们发现Oracle和Gnome或者KDE没有任何关系,Oracle可以独自完成所有绘图功能。Oracle需要的只是一个X Server。知道这些,我们就可以不在本地安装X window和GNOME套件。而是通过IP网络使用在本地计算机上运行的X Server。Linux主机实现这项功能轻而易举,windows可以通过X manager软件来运行一个XServer,供Oracle使用。
Linux 系统中,X Window套件的 X Server和X Client之间使用X Protocol通信。X Protocol的多样性决定了X Server和X Client不一定要在同一个主机。完全可以使用本地X Server 显示并操作远程X Client的内容。这虽然和Windows的远程桌面优点类似,但无论在机制还是在技术上,X Window都高Windows一层。根据X Window这个原理,我们实现在不安装X Window+ GNOME套件的情况下,安装Oracle数据库。通过减少软件包的安装,减少系统被攻击的机会,以提高系统安全性。
这里解释一个概念:DISPLAY变量
变量格式如下:
#script from :www.xiyang-liu.com # by:xiyang DISPLAY=hostname: displaynumber.screennumber #displaynumber和screennumber都是从零开始的数字。一般来说displaynumber、screennumber就都是0。 #hostname指X server所在主机的主机名或者ip地址,图形将显示在这一机器上。此主机可以是启动了图形界面的Linux/Unix机器,也可以是通过第三方软件运行X Server的Windows机器。 #如果Host为空,则表示X server运行于本机,并且X client使用IPC方式连接到X server,而不是TCP方式。 #使用TCP方式连接时,displaynumber为连接的端口减去6000的值,如果displaynumber为0,则表示连接到6000端口。 #使用unix socket方式连接时,则表示连接的unix socket的路径,如果displaynumber为0,则表示连接到/tmp/.X11-unix/X0。 #screennumber则几乎总是0.
操作者使用Linux操作系统
如果操作者使用的是安装X Window + Gnome套件的Linux系统。那么实现这个功能简直太简单了。
我们统称要安装Oracle的服务器为“服务器”,运行Gnome的主机为客户端。
在客户端,首先我们要允许服务器端X Client连接到X Server。执行如下命令添加服务器端IP地址到ACL。这里是临时添加,重启后将丢失。
#script from :www.xiyang-liu.com # by:xiyang [root@manager ~]# xhost +10.17.36.33 10.17.36.33 being added to access control list
查看X Server的DISPLAY变量号
#script from :www.xiyang-liu.com # by:xiyang [root@manager ~]# echo $DISPLAY :1.0
查看客户端为X Server开放的TCP端口。如果客户端没什么重要的数据,干脆直接关闭防火墙。如果不能关闭防火墙,则添加对应端口的入连接许可。
#关闭防火墙
#script from :www.xiyang-liu.com # by:xiyang [root@manager ~]# service iptables stop
通过netstat -atpl获取X Server对应端口号
编辑/etc/sysconfig/iptables添加端口的入连接许可。
#script from :www.xiyang-liu.com # by:xiyang [root@manager ~]# vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6001 -j ACCEPT [root@manager ~]# service iptables restart
服务器端,设置DISPLAY变量。
#script from :www.xiyang-liu.com # by:xiyang [root@bogon ~]# export DISPLAY=10.17.36.210:1.0 注意:这里的10.17.36.210为X server的iP地址
安装xclock测试以上设置能否正常工作。
#script from :www.xiyang-liu.com # by:xiyang [root@bogon ~]# yum install xclock [root@bogon ~]# xclock
如果客户端能正常显示一个时钟窗口如下。说明配置成功
接下来运行Oracle安装程序即可。
操作者使用Windows操作系统
在客户端安装X manager程序,同文件夹有key
下载地址:http://dl.vmall.com/c0sfidvng2 下载密码:www.xiyang-liu.com
完成后运行Xmanager - Passive程序
运行后系统通知区域会有一个小图标,鼠标移至上面会显示本地X Server的displaynumber和screennumber。如下图所示。
在服务器上设置DISPLAY变量
#script from :www.xiyang-liu.com # by:xiyang [root@bogon ~]# export DISPLAY=10.17.35.50:1.0
同样,执行xclock测试以上设置能否正常工作。
#script from :www.xiyang-liu.com # by:xiyang [root@bogon ~]# xclock
同样,关闭Windows防火墙。
Windows显示如下窗口,表示设置成功。
在执行wireshark
[root@puppet ~]# wireshark
就可以进行抓包了,出现图像界面如下
但是有一个问题:在本地电脑关机之后,无法再抓网络层包,我需要登录到服务器上面抓取凌晨零点到第二天3点的数据,因此需要在服务器上面直接调用wireshark命令来抓包。
其实安装好wireshark之后,tshark就是命令行版本
[root@localhost ~]# yum install wireshark-*
[root@localhost ~]# rpm -ql wireshark | grep bin/ /usr/sbin/capinfos /usr/sbin/dftest /usr/sbin/dumpcap /usr/sbin/editcap /usr/sbin/mergecap /usr/sbin/randpkt /usr/sbin/rawshark /usr/sbin/tethereal /usr/sbin/text2pcap /usr/sbin/tshark
[root@localhost ~]# /usr/sbin/tshark -i eth0 -w eth0-out.pcap Running as user "root" and group "root". This could be dangerous. Capturing on eth0 27 ^C [root@localhost ~]# 将上述命令放到cron里面,使用crontab就可以定时捕包了
wireshark使用方法:
http://netsecurity.51cto.com/art/200906/131979.htm
http://www.2cto.com/Article/201304/202149.html
http://www.linuxidc.com/Linux/2013-05/84174.htm