欢迎光临
我们一直在努力

Linux下的FTP服务器搭建

参考文章:https://help.aliyun.com/document_detail/60152.html?spm=5176.22414175.sslink.1.1ea4617cAVoiGj

一、ftp服务器配置

第一步:准备远程服务器
这里使用阿里云轻量级应用服务器。本服务器是Ubuntu系统,由于之前项目用到了npm包管理工具,这里就基于此进行配置。

第二步:安装vsftpd,FTP服务器管理软件
2.1 连接服务器之后(通过putty软件进行命令行连接控制),输入 npm install yum。npm没有收录vsfptd,需要用到另一个包管理工具yum。

2.2 安装成功后输入systemctl enable vsftpd.service,设置服务器开机自启动

2.3 输入systemctl start vsftpd.service,启动ftp服务器

2.4 输入netstat -antup | grep ftp,检查ftp是否成功启动,查看占用端口。
Linux下的FTP服务器搭建
第三步:配置FTP服务器
3.1 进入Linux系统的/etc/vsftpd目录下的vsftpd.config文件(可以使用Linux下的vim,也可以通过远程可视化界面访问),粘贴以下配置代码。下述配置文件为本FTP服务器的配置文件。在这里先测试被动模式。

#修改下列参数的值: #禁止匿名登录FTP服务器。 anonymous_enable=YES #允许本地用户登录FTP服务器。 local_enable=YES #监听IPv4 sockets。 listen=YES #在行首添加#注释掉以下参数: #关闭监听IPv6 sockets。 #listen_ipv6=YES #在配置文件的末尾添加下列参数: #设置本地用户登录后所在目录。 local_root=/var/Vanghua #全部用户被限制在主目录。 chroot_local_user=YES #启用例外用户名单。 chroot_list_enable=YES #指定例外用户列表文件,列表中用户不被锁定在主目录。 chroot_list_file=/etc/vsftpd/chroot_list #开启被动模式。 pasv_enable=YES allow_writeable_chroot=YES #本示例中为Linux服务器的公网IP。 pasv_address=39.96.175.246 #设置被动模式下,建立数据传输可使用的端口范围的最小值。 #建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。 pasv_min_port=50000 #设置被动模式下,建立数据传输可使用的端口范围的最大值。 pasv_max_port=50010 

3.2 配置用户,先输入adduser Danny,创建Danny用户。之后输入passwd Danny,设置该用户的密码。

3.3 配置用户登录文件夹,以及文件夹的权限。在这里注意,不进行配置时,使用该管理软件的FTP服务器会默认登录到/home/Danny的文件夹下,另外/root下的文件夹都不能被设置为默认登录文件夹。 输入chown -R Danny:Danny /var/Vanghua,设置默认登录文件夹的归属权属于Danny用户。输入chmod o+w /var/Vanghua,再输入chmod o+r /var/Vanghua,表示设置该文件夹用户拥有读写权限,注意:这一点其实在上面的vsftpd中也进行了配置,如果这里移除权限,那么vsftpd中的配置也会失效。

第四步:配置远程服务器防火墙
为FTP服务器开启指定端口,另外注意考虑TCP数据连接,也要开放端口。
Linux下的FTP服务器搭建
安全起见,把TCP数据连接的端口设置大一些,这里范围为10。

第五步:重启FTP服务器进行测试
输入systemctl restart vsftpd.service重启FTP服务器,通过客户端主机进行连接测试

二、采用被动模式的FTP服务器

预先准备:
在linux服务器下的vsftpd.config文件中配置:
#开启被动模式
pasv_enable=YES
之后重新启动ftp服务器。

第一步:匿名连接FTP服务器
此时是FTP服务器的被动模式。
在windows环境下通过资源管理器通过ftp协议访问指定ftp服务器。在导航栏输入URL。
出现了两个对话框,第一个是尝试的匿名连接,但是是失败的,第二个是尝试的用户名密码连接。
Linux下的FTP服务器搭建
第二步:匿名连接报文分析
在wireshark中进行TCP和FTP报文捕获。
过滤器内容为ip.src == 39.96.175.246 or ip.dst == 39.96.175.246
Linux下的FTP服务器搭建
本截图部分展示了ftp连接,首先尝试使用匿名用户连接ftp服务器。先进行了三次TCP握手建立TCP控制连接,之后服务器发来220状态码,表示连接失败。后续又发来了原因,密码不正确。因为在服务器上设置了禁止匿名用户登录,所以连接失败。之后关掉这个对话框,观察wireshark,进行了TCP四次挥手,释放TCP控制连接。

第三步:用户名密码连接
资源管理器由于匿名访问失败,那么会自动弹出输入用户和密码的对话框。此时输入用户名和密码。

第四步:用户名密码连接报文分析
在wireshark中继续捕获TCP和FTP报文。
Linux下的FTP服务器搭建
可见过程是首先FTP服务器返回220状态码表示连接失败,需要输入密码。之后发来331状态码,表示要验证密码。最后一切完成了,发来230状态码,表示连接成功,通过用户名和密码连接到了FTP服务器。
Linux下的FTP服务器搭建
紧接着登录之后,可以看到客户端给FTP服务器发送来编码格式要求,FTP服务器又返回给了FTP客户端我们在设置FTP服务器默认登录路径时设置的文件夹,是linux环境下的”/var/Vanghua”,用户拥有读写删除权限。

第五步:向FTP服务器传输文件
测试TCP数据连接。在本地创建一个文件,在这里创建了一个readme.txt。然后拷贝到FTP服务器指定的文件夹下。
Linux下的FTP服务器搭建

第六步:分析传输文件时的报文
在wireshark中分析TCP和FTP报文。
可以看到是客户端主动向服务端建立连接,客户端的60306端口向FTP服务器的50006端口进行三次TCP握手,建立TCP数据连接。这个50006端口,早在TCP控制连接建立时就已经由FTP服务器发送给客户端了。紧接着就是通过FTP报文向FTP服务器请求,要把客户端的readme.txt保存到服务器指定目录下。最后保存成功服务器返回226状态码,在返回该状态码之前,这个TCP数据连接已经经过TCP四次挥手释放掉了。
Linux下的FTP服务器搭建

三、采用主动模式的FTP服务器

预先准备:
在linux服务器下的vsftpd.config文件中配置:
#开启被动模式
pasv_enable=NO
将被动模式关闭。
然后配置主动模式
connect_from_port_20=YES
之后重新启动ftp服务器。

第一步:匿名连接FTP服务器
此时是FTP服务器的被动模式。
在windows环境下通过资源管理器通过ftp协议访问指定ftp服务器。在导航栏输入URL。
出现了两个对话框,第一个是尝试的匿名连接,但是是失败的,第二个是尝试的用户名密码连接。
Linux下的FTP服务器搭建
第二步:匿名连接FTP服务器报文分析
此时的情况和被动模式一样。首先进行了客户端发起的TCP三次握手,进行TCP控制连接的建立。然后FTP服务器响应了220状态码,表示登陆失败,需要验证密码。但是由于提前设置不允许匿名登录,所以这里最后FTP服务器返回了530登陆失败。
Linux下的FTP服务器搭建

第三步:用户名密码连接FTP服务器
资源管理器由于匿名访问失败,那么会自动弹出输入用户和密码的对话框。此时输入用户名和密码。

第四步:用户名密码连接FTP服务器报文分析
此时可见建立完TCP控制连接后,FTP服务器对传来的用户名和密码进行了检验。最后返回响应230,表示登录成功。
Linux下的FTP服务器搭建

第五步:访问FTP服务器下的某个文件夹,测试TCP数据连接
进入该文件夹。进入该文件夹,FTP服务器需要把文件夹中的内容返回给客户端,这实际上也是需要通过TCP数据连接完成的。
Linux下的FTP服务器搭建

第六步:分析TCP数据连接相关的报文
在主动模式下进入FTP服务器的一个文件夹,观察wireshark捕获的报文。首先是TCP的三次握手,建立数据连接。从端口上可以看出来,是FTP服务器的20端口主动向客户端的64173端口发送TCP请求,进行数据连接建立。建立完成后FTP服务器返回给客户端一个FTP请求,响应是226,表示要进入的目录已经发送给客户端。
Linux下的FTP服务器搭建

原文链接:https://blog.csdn.net/qq_37464878/article/details/121984306?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166937964916782414961200%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166937964916782414961200&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-9-121984306-null-null.nonecase&utm_term=%E6%9C%8D%E5%8A%A1%E5%99%A8

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《Linux下的FTP服务器搭建》
文章链接:https://www.456zj.com/34128.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址