tcpdump+ftp

本文介绍了如何使用tcpdump工具捕获网络数据包,特别是针对TCP和FTP协议的使用场景。通过示例展示了如何监听特定接口、指定协议和端口、过滤源/目的IP,以及如何将捕获的数据保存和回放。此外,还简述了安装FTP服务和配置vsftpd.conf文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tcpdump+ftp

tcpdump是网络数据抓取和收集工具,将网络中的数据包头截取出来以供分析;它支持端口、主机、网络、协议(tcp、udp、ICMP、ARP、IP、RARP)

tcpdump 使用场景:

1.服务器平时流量很少,突然把带宽跑满了,查看什么数据把带宽跑忙

2.访问服务器不成功,在服务器抓包,看是否有该IP的访问结果,多用于测试环境。

显示所有可以被tcpdump的接口

[root@host-10-59-17-148 ~]# tcpdump -D

1.eth0

2.nflog (Linux netfilter log (NFLOG) interface)

3.nfqueue (Linux netfilter queue (NFQUEUE) interface)

4.usbmon1 (USB bus number 1)

5.any (Pseudo-device that captures on all interfaces)

6.lo

获取指定接口数据的信息 tcpdump -i eth0

[root@host-10-59-17-148 ~]# tcpdump -i eth0 -c 10

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

09:52:59.096816 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 2129008946:2129009106, ack 3824319792, win 192, length 160

09:52:59.097343 IP 10.59.17.148.35564 > 10.59.63.17.domain: 10237+ PTR? 184.51.28.10.in-addr.arpa. (43)

09:52:59.097649 IP 10.59.63.17 > 10.59.17.148: ICMP 10.59.63.17 udp port domain unreachable, length 79

09:52:59.097852 IP 10.59.17.148.34826 > 10.59.63.17.domain: 10237+ PTR? 184.51.28.10.in-addr.arpa. (43)

09:52:59.098138 IP 10.59.63.17 > 10.59.17.148: ICMP 10.59.63.17 udp port domain unreachable, length 79

09:52:59.098232 IP 10.59.17.148.46195 > 10.59.63.17.domain: 35196+ PTR? 148.17.59.10.in-addr.arpa. (43)

09:52:59.098527 IP 10.59.63.17 > 10.59.17.148: ICMP 10.59.63.17 udp port domain unreachable, length 79

09:52:59.098567 IP 10.59.17.148.48257 > 10.59.63.17.domain: 35196+ PTR? 148.17.59.10.in-addr.arpa. (43)

09:52:59.098891 IP 10.59.63.17 > 10.59.17.148: ICMP 10.59.63.17 udp port domain unreachable, length 79

09:52:59.099076 IP 10.59.17.148.50525 > 10.59.63.17.domain: 2858+ PTR? 17.63.59.10.in-addr.arpa. (42)

10 packets captured

13 packets received by filter

0 packets dropped by kernel

将获取的数据信息写入xx.txt

[root@host-10-59-17-148 ~]# tcpdump -i eth0 -c 10 -w /tmp/script/eth0.txt

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

10 packets captured

10 packets received by filter

0 packets dropped by kernel

查看获取的数据包

~

[root@host-10-59-17-148 ~]# tcpdump -r /tmp/script/eth0.txt

reading from file /tmp/script/eth0.txt, link-type EN10MB (Ethernet)

09:55:09.310846 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 2129012594:2129012770, ack 3824321712, win 192, length 176

09:55:09.317771 IP 10.28.51.184.amandaidx > 10.59.17.148.ssh: Flags [.], ack 176, win 254, length 0

09:55:09.333817 ARP, Request who-has 10.59.17.11 tell 10.59.17.4, length 46

09:55:09.373371 ARP, Request who-has 10.59.17.33 tell 10.59.17.34, length 46

09:55:09.505685 ARP, Request who-has 10.59.17.157 tell 10.59.17.152, length 28

09:55:09.694589 ARP, Request who-has 10.59.17.18 tell 10.59.17.99, length 46

09:55:10.016061 ARP, Request who-has 10.59.17.152 tell 10.59.17.153, length 46

09:55:10.110047 ARP, Request who-has 10.59.17.157 tell 10.59.17.153, length 46

09:55:10.373916 ARP, Request who-has 10.59.17.33 tell 10.59.17.34, length 46

09:55:10.507918 ARP, Request who-has 10.59.17.157 tell 10.59.17.152, length 28

指定协议和端口

[root@host-10-59-17-148 ~]# tcpdump tcp port 22 -c 10 -w /tmp/script/tcp.txt

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

10 packets captured

10 packets received by filter

0 packets dropped by kernel

抓取指定源、目的IP上的数据包

[root@host-10-59-17-148 ~]# tcpdump -c 10 -i eth0 src 10.59.17.148

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

11:13:05.554801 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 2129940354:2129940594, ack 3824626192, win 606, length 240

11:13:05.555308 IP 10.59.17.148.45581 > 10.59.63.17.domain: 37884+ PTR? 184.51.28.10.in-addr.arpa. (43)

11:13:05.555686 IP 10.59.17.148.38354 > 10.59.63.17.domain: 37884+ PTR? 184.51.28.10.in-addr.arpa. (43)

11:13:05.556164 IP 10.59.17.148.38285 > 10.59.63.17.domain: 44942+ PTR? 148.17.59.10.in-addr.arpa. (43)

11:13:05.556501 IP 10.59.17.148.52575 > 10.59.63.17.domain: 44942+ PTR? 148.17.59.10.in-addr.arpa. (43)

11:13:05.556924 IP 10.59.17.148.42726 > 10.59.63.17.domain: 57686+ PTR? 17.63.59.10.in-addr.arpa. (42)

11:13:05.557294 IP 10.59.17.148.35129 > 10.59.63.17.domain: 57686+ PTR? 17.63.59.10.in-addr.arpa. (42)

11:13:05.557777 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 240:576, ack 1, win 606, length 336

11:13:05.558823 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 576:1312, ack 1, win 606, length 736

11:13:05.559813 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 1312:1520, ack 1, win 606, length 208

10 packets captured

10 packets received by filter

0 packets dropped by kernel

[root@host-10-59-17-148 ~]# tcpdump -c 10 dst 10.28.51.184

抓取两台主机之间的数据包 tcp 端口 22

[root@host-10-59-17-148 ~]# tcpdump -c 10 tcp port 22 and ( host 10.59.17.148 or host 10.28.51.184 )

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

11:09:57.629844 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 2129898018:2129898258, ack 3824590000, win 606, length 240

11:09:57.632795 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 240:464, ack 1, win 606, length 224

11:09:57.633818 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 464:672, ack 1, win 606, length 208

11:09:57.634817 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 672:880, ack 1, win 606, length 208

11:09:57.635799 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 880:1088, ack 1, win 606, length 208

11:09:57.640305 IP 10.28.51.184.amandaidx > 10.59.17.148.ssh: Flags [.], ack 880, win 258, length 0

11:09:57.640322 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 1088:1296, ack 1, win 606, length 208

11:09:57.640792 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 1296:1600, ack 1, win 606, length 304

11:09:57.641819 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 1600:1808, ack 1, win 606, length 208

11:09:57.642817 IP 10.59.17.148.ssh > 10.28.51.184.amandaidx: Flags [P.], seq 1808:2016, ack 1, win 606, length 208

10 packets captured

10 packets received by filter

0 packets dropped by kernel

-nn 不进行端口名称的转换

-X的官房说明是:

“分析和打印时,打印的每个数据包的报头,打印十六进制和ASCII的数据,每一个数据包(减去其链路层报头)”

说白了,就是以十六进制打印数据报文,但是不显示以太网祯的报头,只显示IP层的内容。

安装ftp服务

关闭防火墙和selinux

/etc/init.d/iptables stop

/etc/init.d/iptables status

SELINUX=disabled

vim /etc/selinux/config

查看是否安装ftp

[root@host-10-59-17-148 ~]# yum install ftp

[root@host-10-59-17-148 ~]# rpm -qa |grep vsftp

如果安装了会出现安装版本信息

安装ftp

[root@host-10-59-17-148 ~]# yum install -y vsftpd

[root@host-10-59-17-148 ~]# rpm -qa |grep vsftpd

vsftpd-2.2.2-24.el6.x86_64

配置文件

/etc/vsftpd/vsftpd.conf

备份

[root@host-10-59-17-148 ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

修改配置文件

[root@host-10-59-17-148 ~]# vim /etc/vsftpd/vsftpd.conf

#允许匿名登陆

anonymous_enable=Yes

#允许本地用户模式

local_enable=YES

#设置可写权限

write_enable=YES

#本地用户创建文件的umask值

local_umask=002

#允许匿名登录

anon_upload_enable=YES

#允许匿名创建

anon_mkdir_write_enable=YES

#匿名创建文件的umask值

anon_umask=022

dirmessage_enable=YES

#启用一个日志文件,用于详细记录上传和下载

xferlog_enable=YES

#开启20端口

connect_from_port_20=YES

#日志路径

xferlog_file=/var/log/xferlog

#日志标准格式

xferlog_std_format=YES

#登陆之后超时时间60秒,登陆之后,一分钟不操作,就会断开连接。

idle_session_timeout=600

#用于指定用户列表文件中的用户,是否允许切换到上级目录

chroot_local_user=YES

listen=YES

pam_service_name=vsftpd

userlist_enable=NO

tcp_wrappers=YES

[root@host-10-59-17-148 ~]# cat /etc/vsftpd/vsftpd.conf |grep -v “#”

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=002

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

idle_session_timeout=600

data_connection_timeout=120

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

pam_service_name=vsftpd

userlist_enable=NO

tcp_wrappers=YES

创建ftp用户ftp_test1

[root@host-10-59-17-148 ~]# useradd -d /ftp_data -g ftp -s /sbin/nologin ftp_test1

ftp_data是ftp_test1用户的主目录

ftp_test1是ftp用户

[root@host-10-59-17-148 ~]# useradd -d /ftp_data -g ftp -s /sbin/nologin ftp_test1

[root@host-10-59-17-148 ~]# passwd ftp_test1

Changing password for user ftp_test1.

New password:

BAD PASSWORD: it is too simplistic/systematic

Retype new password:

passwd: all authentication tokens updated successfully.

[root@host-10-59-17-148 ~]ftp123456

添加ftp用户ftp_test1到

/etc/vsftpd/user_list

/etc/vsftpd/chroot_list

在另一个窗口使用

[root@host-10-59-17-148 ~]# netstat -lnp |grep ftp

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2743/vsftpd

抓包命令

tcpdump -i lo port 21 -X

[root@host-10-59-17-148 ~]# tcpdump tcp port 21 -i lo -X |grep -i -E “USER|pass”

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes

0x0030: 4cc2 6dde 5553 4552 2066 7470 5f74 6573 L.m.USER.ftp_tes

0x0040: 7065 6369 6679 2074 6865 2070 6173 7377 pecify.the.passw

0x0030: 4cc2 8093 5041 5353 2066 7470 3132 3334 L…PASS.ftp1234

写入

tcpdump tcp port 21 -i lo -X -w /tmp/script/ftp_tcpdump.txt

查看

tcpdump -X -r ftp_tcpdump.txt |grep -i -E “pass|user”

登陆

[root@host-10-59-17-148 ~]# service vsftpd restart

Shutting down vsftpd: [ OK ]

Starting vsftpd for vsftpd: [ OK ]

[root@host-10-59-17-148 ~]# ftp 127.0.0.1

Connected to 127.0.0.1 (127.0.0.1).

220 (vsFTPd 2.2.2)

Name (127.0.0.1:root): ftp_test1

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

出错日志:

在 /var/log/secure

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值