FTP 简单介绍

什么是 FTP 服务器?

FTP 服务器(File Transfer Protocol Server)是在互联网上提供文件共享存储和访问服务的计算机,它们依照 FTP 协议提供服务。

FTP(File Transfer Protocol: 文件传输协议)是一种 Internet 上用来传送文件的协议,支持这种协议的服务器就是 FTP 服务器。

常见 FTP 服务器如下:

  • Windows:Serv-U FTP Server

  • Linux:oftpd、ftpd、vsftpd、pure-ftpd、proftpd、wu-ftpd、glftpd

功能比较简单的有 ftpd 和 Oftpd,前者与 FTP 客户端工具 FTP 类似,只有标准的功能,此外支持 SSL。Oftpd 是一款非常小巧的匿名 FTP 服务器。

可配制型高级的主要是 vsftpd 和 pure-ftpd。 这两个侧重于安全、速度和轻量级,在大型 FTP 服务器上用得比较多,尤其是 vsftpd,这类服务器对用户认证和权限控制比较简单,更注重安全型和速度。Pure-ftpd 相对 vsftpd 要强大一些,支持的用户认证方式也比较多。

配置性更好的是 proftpd、wu-ftpd 和 glftpd。Proftpd 的配置方式跟 Apache 非常类似,支持虚拟服务器,可针对目录、虚拟用户进行权限配制,可继承和覆盖。

今天主要介绍 VSFTP。

VSFTP 是一个基于 GPL 发布的类 Unix 系统上使用的 FTP 服务器软件,它的全称是 Very Secure FTP,它的优势就是安全、高速、稳定的 FTP 服务器。接下来介绍如何搭建这个文件共享服务器。

开始安装

首先安装 VSFTP

安装前检查一下包是否已经安装,如下:

[root@10-255-1-40 ~]#  rpm -qa | grep vsftp
vsftpd-3.0.2-22.el7.x86_64
[root@10-255-1-40 ~]#

如果没有安装,使用如下方式安装:

[root@10-255-1-40 ~]# yum install vsftpd
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 vsftpd.x86_64.0.3.0.2-22.el7 将被 安装
--> 解决依赖关系完成依赖关系解决==============================================================================================================================================================Package                             架构                                版本                                         源                                 大小
==============================================================================================================================================================
正在安装:vsftpd                              x86_64                              3.0.2-22.el7                                 base                              169 k事务概要
==============================================================================================================================================================
安装  1 软件包总下载量:169 k
安装大小:348 k
Is this ok [y/d/N]:

接着安装 LFTP,这个可以用来登录浏览 FTP 共享文档:

[root@10-255-1-40 ~]# yum install  lftp
已加载插件:fastestmirror
base                                                                                                                                   | 3.6 kB  00:00:00
epel                                                                                                                                   | 3.2 kB  00:00:00
extras                                                                                                                                 | 3.4 kB  00:00:00
updates                                                                                                                                | 3.4 kB  00:00:00
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 lftp.x86_64.0.4.4.8-8.el7_3.2 将被 安装
--> 解决依赖关系完成依赖关系解决==============================================================================================================================================================Package                           架构                                版本                                           源                                 大小
==============================================================================================================================================================
正在安装:lftp                              x86_64                              4.4.8-8.el7_3.2                                base                              751 k事务概要
==============================================================================================================================================================
安装  1 软件包总下载量:751 k
安装大小:2.4 M
Is this ok [y/d/N]:

以上两个都输入 y 安装即可,滴滴云已经提供专业的 yum 安装源,您可以放心的安装相关服务。当然了,除了 yum 的安装方式之外,您还可以选择从官方下载源码或者 RPM 包来安装,RPM 安装命令:

rpm -ivh /home/demo/vsftpd-3.0.2-22.el7.x86_64.rpm

这根据您的使用方式来选择,哪个方便使用哪个安装。

开始配置

配置文件位置

[root@10-255-1-40 vsftpd]# pwd
/etc/vsftpd
[root@10-255-1-40 vsftpd]# ll
总用量 20
-rw------- 1 root root  125 8月   3 2017 ftpusers
-rw------- 1 root root  361 8月   3 2017 user_list
-rw------- 1 root root 5030 8月   3 2017 vsftpd.conf
-rwxr--r-- 1 root root  338 8月   3 2017 vsftpd_conf_migrate.sh
[root@10-255-1-40 vsftpd]#

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件

/etc/vsftpd/ftpusers:用于指定哪些用户不能访问 FTP 服务器,是个黑名单

/etc/vsftpd/user_list:指定允许使用 vsftpd 的用户列表文件,是个白名单

vim /etc/vsftpd/user_list

# 如果 userlist_deny= YES(默认),不允许在这个文件中的用户登录 FTP,甚至不提示输入密码

# prompt 提示

/etc/vsftpd/vsftpd_conf_migrate.sh:是 vsftpd 操作的一些变量和设置脚本

/var/ftp/:默认情况下匿名用户的根目录,其目录如下:

[root@10-255-1-40 vsftpd]# cd /var/ftp/pub/
[root@10-255-1-40 pub]# pwd
/var/ftp/pub
[root@10-255-1-40 pub]#

服务启动

我们先不做配置的情况下,看看默认能做什么事情,启动服务:

[root@10-255-1-40 var]# systemctl  status vsftpd
● vsftpd.service - Vsftpd ftp daemonLoaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)Active: inactive (dead)
[root@10-255-1-40 var]# systemctl  start vsftpd
[root@10-255-1-40 var]# systemctl  status vsftpd
● vsftpd.service - Vsftpd ftp daemonLoaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)Active: active (running) since 日 2018-12-09 03:54:48 UTC; 1s agoProcess: 9175 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)Main PID: 9176 (vsftpd)CGroup: /system.slice/vsftpd.service└─9176 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf12月 09 03:54:48 10-255-1-40 systemd[1]: Starting Vsftpd ftp daemon...
12月 09 03:54:48 10-255-1-40 systemd[1]: Started Vsftpd ftp daemon.
[root@10-255-1-40 var]#

滴滴云主机默认安全组没有打开 21 端口,具体如何打开参考滴滴云官网介绍,打开后如下:

访问

以 mac 为例,mac 上自带客户端工具,其他操作系统也可以使用浏览器、文件夹资源管理器等工具进行访问。

访问协议前缀都是 ftp://IP 地址,端口一般都是默认端口,打开 mac 上的自带工具 Finder,选择前往,再选择连接服务器,如下:

进入如下界面,输入 FTP 服务器信息:

默认只能使用匿名用户访问,如图:

成功后如下图:

下面做一些配置:
允许所有员工上传和下载文件,并允许创建用户自己的目录:

anon_mkdir_write_enable 字段可以控制是否允许匿名用户创建目录。

查看并备份原配置文件:

[root@10-255-1-40 vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@10-255-1-40 vsftpd]# cp vsftpd.conf vsftpd.conf.bak
[root@10-255-1-40 vsftpd]#

允许匿名用户访问:

anonymous_enable=YES

允许匿名用户上传文件并可以创建目录:

anon_upload_enable=YES
anon_mkdir_write_enable=YES

如图:

重新启动服务:

[root@10-255-1-40 vsftpd]# systemctl restart vsftpd
[root@10-255-1-40 vsftpd]#

mac 终端:

dubodeMacBook-Pro-2:ftp dubobo$ ftp ftp://116.85.5.228/
Connected to 116.85.5.228.
220 (vsFTPd 3.0.2)
331 Please specify the password.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Switching to Binary mode.
ftp> ls
229 Entering Extended Passive Mode (|||63798|)ftp: Can't connect to `116.85.5.228': Operation timed out
200 EPRT command successful. Consider using EPSV.
150 Here comes the directory listing.
drwxr-xr-x    2 14       50             42 Dec 09 07:59 pub
drwxr-xr-x    2 0        0               6 Dec 09 08:18 test
226 Directory send OK.
ftp>
ftp>
ftp>

Windows 资源管理器:

解决办法:

修改完后,再次访问:

但是发现,能创建目录,但不能删除和重命名文件夹,如图所示:


我们建立一个文件夹,如下:

[root@10-255-1-40 ftp]# mkdir /var/ftp/zhangsan
[root@10-255-1-40 ftp]# chown ftp.ftp /var/ftp/
pub/      test/     zhangsan/
[root@10-255-1-40 ftp]# chown ftp.ftp /var/ftp/zhangsan/
[root@10-255-1-40 ftp]# systemctl restart vsftpd
[root@10-255-1-40 ftp]

匿名用户上传文件就算可以了,但是不能删除和重命名。

注:工作中,匿名用户只是只读访问,写的权限也没有的。

补充:如果想让匿名用户可以重命名或者删除的权限,添加如下一条配置参数,即 anon_other_write_enable,如下:

#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

重新启动服务就可以对重新命名和删除文件夹了。

[root@10-255-1-40 ftp]# systemctl restart vsftpd

匿名用户就可以删除和修改,非常不安全,所以要慎重使用这个参数。

注意,默认匿名用户家目录的权限是 755,这个权限是不能改变的。

实战演练

假设现有两个部门负责产品文档,他们分别使用 user1 和 user2 帐号进行管理。要求只允许 user1 和 user2 帐号登录 FTP 服务器,但不能登录本地系统,并将这两个帐号的目录限制为 /home/test,而且不能进入该目录以外的任何目录。

1.建立产品系统内容的 FTP 帐号 user1 和 user2 并禁止本地登录,然后设置其密码

[root@10-255-1-40 ftp]# useradd -s /sbin/nologin user1

同样创建user2用户。

修改两个用户密码:

[root@10-255-1-40 ftp]# passwd user1
更改用户 user1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@10-255-1-40 ftp]#
[root@10-255-1-40 ftp]#
[root@10-255-1-40 ftp]#

将 user2 同样更改密码,也可以直接使用命令 passwd user1 回车修改密码。

2.配置 vsftpd.conf 主配置文件并作相应修改

[root@10-255-1-40 ftp]# vim /etc/vsftpd/vsftpd.conf
\# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO 禁止匿名用户
\#
\# Uncomment this to allow local users to log in.
\# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES允许本地登陆
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES

继续修改,将:

#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list

修改为:

# chroot)
chroot_local_user=YES
local_root=/home/test
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

local_root=/home/test:设置本地用户的根目录为 /home/test
chroot_list_enable=YES:激 chroot 功能
chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名

保存并退出。

3.建立 /etc/vsftpd/chroot_list 文件,添加 user1 和 user2 帐号

[root@10-255-1-40 vsftpd]# touch /etc/vsftpd/chroot_list
[root@10-255-1-40 vsftpd]# ls
chroot_list  ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh
[root@10-255-1-40 vsftpd]#
[root@10-255-1-40 vsftpd]# vim chroot_list
[root@10-255-1-40 vsftpd]# cat chroot_list
user1
user2
[root@10-255-1-40 vsftpd]#

按照上述配置修改好文件。

创建对应文档目录:

[root@10-255-1-40 var]# mkdir /home/test
您在 /var/spool/mail/root 中有新邮件
[root@10-255-1-40 var]# chmod 777 /home/test/

使用资源管理器创建一个文件夹并验证:

会出现如下登录界面:

随便创建一个目录,如下:

[root@10-255-1-40 var]# cd /home/test/
[root@10-255-1-40 test]# ls
新文件夹
[root@10-255-1-40 test]#

基本的测试完了,欢迎拍砖。

基于滴滴云主机搭建 FTP 文件共享服务器(一)相关推荐

  1. 基于滴滴云服务器搭建 Consul 集群

    前言 Consul 是什么 Consul 是用 Go 开发的分布式服务协调管理的工具,它提供了服务发现,健康检查,Key/Value 存储等功能,并且支持跨数据中心的功能. Consul 基本概念 A ...

  2. 文件服务器 u口共享,轻松搭建专业级FTP文件共享服务器

    最近总是遇到一些很郁闷的情况,不得不自己搭建临时的FTP服务器,而作为完美主义者的我就不免弄出个比较专业的了,然后顺手就假设了应用环境写出这篇如何利用Serv-U搭建家庭用广域文件共享服务器的文章来. ...

  3. ubuntu 20.04搭建samba文件共享服务器,实现基于Linux和Windows的共享文件服务

    ubuntu 20.04搭建samba文件共享服务器,实现基于Linux和Windows的共享文件服务--超详细 一,samba的基本概念 二,samba的安装 三,samba的基本配置 创建文件夹 ...

  4. 基于京东云GPU云主机搭建TensorFlow深度学习环境

    TensorFlow是一个开放源代码软件库,用于进行高性能数值计算.借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU.GPU.TPU)和设备(桌面设备.服务器集群.移动设备.边缘设备等 ...

  5. 如何在服务器搭建oa系统,如何在云主机搭建oa服务器

    如何在云主机搭建oa服务器 内容精选 换一换 为了更加安全高效的使用云监控服务提供的主机监控功能,我们提供了最新方式的Agent授权方法.在安装主机监控Agent前,仅需要一键式单击该区域的授权按钮或 ...

  6. Esp8266进阶之路12 图文并茂学习阿里云主机搭建8266MQTT服务器,实现移动网络远程控制一盏灯!

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...

  7. 基于滴滴云搭建微信小程序

    微信小程序自 2017 年推出以来,以其轻量级级特性,为传统移动互联网格局带来了极大的震动.相对于传统 APP,小程序无需下载,即扫即用,用完即走,极大的节省了手机的空间,提高了用户使用的便利性. 本 ...

  8. 怎样利用腾讯云或者腾讯云主机搭建自己的网站

    自从云技术兴起后,搭建属于自己的网站就变成一件非常简单的事情.这里主要介绍博主自己使用的两种方法:腾讯云服务器和腾讯云主机作为网站的服务器搭建网站. 1.腾讯云主机搭建网站的办法 1)购买网址 2)买 ...

  9. 基于百度云主机的USDP 2.x 安装详细教程

    基于百度云主机的USDP 2.x 安装详细教程 1. USDP 简介 ​ UCloud Smart Data Platform(简称 USDP),是 UCloud 推出的云上智能化.轻量级的大数据基础 ...

最新文章

  1. Vue教程3【使用Vue脚手架】render ref props minin scoped $emit $bus 消息订阅发布 动画
  2. 张钹院士:制约人工智能发展的最大困难是什么?
  3. g_thread_init
  4. SAAS,象B2C那样的B2B分销系统
  5. 在线实时大数据平台Storm单机部署
  6. SQL错误提示档案(3):SQL Server连接中的四个最常见错误
  7. oracle联机和脱机什么意思,Oracle 表空间联机(online)与脱机(offline)
  8. 电路中滤波电容和退耦电容_电子电路中电容的作用,滤波消抖,充放电,耦合,退耦...
  9. java 根据类路径获取类_Java类加载器
  10. python 提取元组中的值_Python中的sqlite3提取与元组中的值相对应的条目 - python
  11. 如何选择Sencha Touch和jQuery Mobile
  12. php转换ofd文件格式,OFD文件转换服务
  13. linux 鼠标残影,Win10系统拖动鼠标有残影怎么办
  14. ISO三体系认证辅导,ISO三体系验厂提升企业内部管理水平、降低企业各种风险
  15. Hello,Bada!
  16. 攻防世界web新手-easyphp
  17. DC-DC升压IC测试及EN脚讲解
  18. 月薪20k+的Android面试都问些什么?完整PDF
  19. 华为g9android,华为G9和华为p8区别在哪?华为G9青春版和华为p8区别对比评测
  20. 如何进行电脑远程桌面连接

热门文章

  1. 【技术分享】Win10 wampserver升级安装php7.2.32
  2. 算法笔记-排序算法(冒泡 选择 插入)
  3. c#读取Excel表数据
  4. 如何利用石墨文档进行团队协作
  5. vscode中vue代码格式化的相关配置
  6. wireshark学习系列————4、实时捕捉数据包
  7. iOS 设置中清除缓存功能
  8. 编程乐趣:获取12306的所有车站电报码
  9. python学习笔记:类的方法总结
  10. bpython3 推送_【python 3】 列表方法操作汇总