Vsftp服务--客户端及tcpdump抓包

一、 vsftp客户端的使用

使用前,肯定要启动vsftpd—systemctl start vsftpd.service,必要的时候还需要开机自启动systemctl enable vsftpd.service
其次关闭Selinux与firewalld防火墙,这在《Vsftp服务–安装和相关文件》已经说了。
vsftpd默认情况下,本地用户、匿名用户是开启的,即/etc/vsftpd/vsftpd.conf中,anonymous_enable=YESlocale_enable=YES这两个参数。

使用windows的命令行

在windows客户端当中,可以用cmd命令行的方式连接ftp,格式是:“ ftp ip地址 ” 或者是 “ ftp 用户名@ip地址 ”,下面是一些常用的交互界面命令:
help # 获取帮助
get # 下载,你在哪个位置登录的ftp,就下载在windows的那个位置,一般是在 “ C:\Users\windows用户名 ”下
mget # 下载一批文件
put # 上传
mput #上传一批文件
pwd #文件路径位置(服务器)
exit #退出
注意,这里的上传与下载不支持目录,只能是文件。即使你用mget或者mput都是把目录下的文件批量下载或者批量上传。

具体演示这个上传与下载:
首先,我在服务器/home/test1/目录下建一个文件: touch aab
windows登陆ftp后下载aab,如下图右半边部分:
Vsftp服务--客户端及tcpdump抓包
你是在C:\Users\litianci-pc这里登陆的,那么get后,就下载在这里。上传也一样,这里不具体演示。
Vsftp服务--客户端及tcpdump抓包
使用windows cmd命令行的方式有两个缺点:1、不支持断点续传;2、不支持目录下载与上传

windows的本地窗口

比如我这台IP地址为10.1.2.69,直接在本地窗口中打开ftp://10.1.2.69。支持目录的上传与下载。
Vsftp服务--客户端及tcpdump抓包

第三方专业的连接工具(推荐)

这种第三方工具很多,比如winscp、FileZilla等。我一般习惯使用File Zilla,它是一款免费的开源软件,支持ftp和sftp,支持目录的上传与下载,也支持断点续传。
使用非常简单,输入ip地址、用户名、密码和端口,就可以相互传输。
Vsftp服务--客户端及tcpdump抓包
由于用这种专业的第三方工具可以*的切换目录(默认情况下未作限制),包括切换到Centos 的根下,也就是说/etc/passwd、/etc/shadow我可以下载到windows本地,然后用记事本打开。所以我们搭建了ftp文件服务器后,一定要记得将用户的目录锁定到家目录下,不能随便切换。

二、tcpdump抓vsftp的数据包

前面不是说ftp是明文传输的么,可以使用tcpdump抓包抓到用户名和密码,那我们就用本地用户具体演示下,本地用户在安装后不需要任何的配置就可以直接使用。
我在Linux服务器中建立一个test1的普通用户,用这个本地用户来登陆ftp。同时我开启tcpdump抓包工具,命令为:tcpdump -i eth0 -nnX port 21,-i 的意思是监听哪一个网卡,-X的意思是把抓到的数据包拆分成十六进制,port指定端口,-nn指不将协议和端口等转换为具体的名称
Vsftp服务--客户端及tcpdump抓包
然后客户端这边进行登陆,登陆login successful。
Vsftp服务--客户端及tcpdump抓包
服务器抓到的用户名为test1,密码为3389asdf。连解密都不需要,直接就可以看到密码。
Vsftp服务--客户端及tcpdump抓包
Vsftp服务--客户端及tcpdump抓包
所以,这也是为什么vsftp默认的黑名单文件/etc/vsftpd/ftpusers和/etc/vsftpd/user_list需要禁止root登陆,这是合理的。如果不禁止,一台服务器在互联网上就明文拱手给别人。关于这个tcpdump抓包工具,以后还会详细说明。