什么是tcpdump
tcpdump:Linux的网络数据采集分析工具。
可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
安装
(ubuntu系统上没有tcpdump)
用apt-get命令安装某个资源出现提示
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
搜索博客之后用rm -rf命令也无法解锁,后来模仿某些博客中sudo rm -rf命令,用sudo apt-get命令强制安装
抓包
学抓包:
抓包笔记摘要:
输出结果
ICE 是一台装有linux的主机。它的MAC地址是0:90:27:58:AF:1A
H219是一台装有Solaris的SUN工作站。它的MAC地址是8:0:20:79:5B:46;
21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ICE. telne t 0:0(0) ack 22535 win 8760 (DF)
22:32:42.802509 eth0 > arp who-has route tell ICE (0:90:27:58:af:1a)
22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af:1a)
src > dst: flags data-seqno ack window urgent options
route.port1 > ICE.port2: udp lenth
共同部分(从左往右):
xx:xx:xx :时间
847509等数字串:ID号
eth0 <(>)表示从网络接口eth0接收该(发送)分组
不同:
第一行:数据链路层头信息
命令:#tcpdump --e host ICE
输出:
8:0:20:79:5b:46是主机H219的MAC地址, 它表明是从源地址H219发来的分组.
0:90:27:58:af:1a是主机ICE的MAC地址, 表示该分组的目的地址是ICE
ip :该分组是IP分组,60 是分组的长度
h219.33357 > ICE. telnet :该分组是从主机H219的33357端口发往主机ICE的 TELNET(23)端口
ack 22535 :对序列号是222535的包进行响应
win 8760:发送窗口的大小是8760
第二三行:ARP包的tcpdump输出信息
命令: #tcpdump arp
输出:
arp:ARP请求包
who-has route tell ICE:主机ICE请求主机route的MAC地址
第四行:TCP包的输出信息
src > dst:从源地址(src)到目的地址(dst)
flags:TCP报文中的标志信息
data-seqno:报文中的数据 的顺序号
ack:下次期望的顺序号
window:接收缓存的窗口大小
urgent:文中是否有紧急指针
Options:选项
第五行: UDP包的输出信息
表明从主机route的port1端口发出的一个UDP报文到主机ICE的port2端口,类型是UDP, 包的长度是lenth
案例
(1) 想要截获所有210.27.48.1 的主机收到的和发出的所有的分组:
#tcpdump host 210.27.48.1
(2) 想要截获主机210.27.48.1 和主机210.27.48.2或210.27.48.3的通信,使用命令(注意:括号前的反斜杠是必须的):
#tcpdump host 210.27.48.1 and 210.27.48.2or210.27.48.3
(3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
(4) 如果想要获取主机192.168.228.246接收或发出的ssh包,并且不转换主机名使用如下命令:
#tcpdump -nn -n src host 192.168.228.246 and port 22 and tcp
(5) 获取主机192.168.228.246接收或发出的ssh包,并把mac地址也一同显示:
#tcpdump -e src host 192.168.228.246 and port 22 and tcp -n -nn
(6) 过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头:
tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24
(7) 过滤源主机物理地址为XXX的报头:
tcpdump ether src 00:50:04:BA:9B and dst……
(为什么ether src后面没有host或者net?物理地址当然不可能有网络喽)。
(8) 过滤源主机192.168.0.1和目的端口不是telnet的报头,并导入到tes.t.txt文件中:
Tcpdump src host 192.168.0.1 and dst port not telnet -l > test.txt
ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。
-nn,直接以 IP 及 Port Number 显示,而非主机名与服务名称。
-i,后面接要「监听」的网络接口,例如 eth0, lo, ppp0 等等的接口。
-e,使用资料连接层 (OSI 第二层) 的 MAC 数据包数据来显示。
都没写如何停止抓包 :Ctrl+C
数据清洗
什么是清数据清洗
数据清洗:数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。与问卷审核不同,录入后的数据清理一般是由计算机而不是人工完成。
数据清洗方法:
摘要:
数据缺失:
1、删除缺失值:样本基数大,缺失值少,直接丢弃缺失值
2、均值填补法:用均值填补缺失值
3、热卡填补法:用最相似的近似值来填补
异常值判断:
1、简单的统计分析:根据常识初步判断
2、3∂原则:数据正态分布
3、箱型图分析
4、基于模型检测:建立模型拟合
5、基于距离:定义邻近性度量
6、基于密度
7、基于聚类
噪音处理:
噪音:被测量变量的随机误差或方差
1、分箱法:每一个值用特殊值(平均值、中位数、边界值)替换(平滑)
2、回归法:函数拟合