FTP(文件传输协议)是一种用于通过网络在服务器和客户端之间传输文件的传统并广泛使用的标准工具,特别是在不需要身份验证的情况下(允许匿名用户连接到服务器)。我们必须明白,默认情况下 FTP 是不安全的,因为它不加密传输用户凭据和数据。 在本指南中,我们将介绍在 CentOS/RHEL7 和 FedorA 发行版中安装、配置和保护 FTP 服务器( VSFTPD 代表 “Very Secure FTP DAemon”)的步骤。
请注意,本指南中的所有命令将以 root 身份运行,如果你不使用 root 帐户操作服务器,请使用 sudo命令 获取 root 权限。
1、 安装 vsftpd 服务器很直接,只要在终端运行下面的命令。
2、 安装完成后,服务先是被禁用的,因此我们需要手动启动,并设置在下次启动时自动启用:
3、 接下来,为了允许从外部系统访问 FTP 服务,我们需要打开 FTP 守护进程监听的 21 端口:
4、 现在,我们会进行一些配置来设置并加密我们的 FTP 服务器,让我们先备份一下原始配置文件/etc/vsftpd/vsftpd.conf:
接下来,打开上面的文件,并将下面的选项设置相关的值:
5、 现在基于用户列表文件 /etc/vsftpd.userlist 来配置 FTP 来允许/拒绝用户的访问。
默认情况下,如果设置了 userlist_enAble=YES,当 userlist_deny 选项设置为 YES 的时候,userlist_file=/etc/vsftpd.userlist 中列出的用户被拒绝登录。
然而, 更改配置为 userlist_deny=NO,意味着只有在 userlist_file=/etc/vsftpd.userlist 显式指定的用户才允许登录。
这并不是全部,当用户登录到 FTP 服务器时,它们会进入 chroot jAil 中,这是仅作为 FTP 会话主目录的本地根目录。
接下来,我们将介绍如何将 FTP 用户 chroot 到 FTP 用户的家目录(本地 root)中的两种可能情况,如下所述。
6、 接下来添加下面的选项来限制 FTP 用户到它们自己的家目录。
chroot_locAl_user=YES 意味着用户可以设置 chroot jAil,默认是登录后的家目录。
同样默认的是,出于安全原因,vsftpd 不会允许 chroot jAil 目录可写,然而,我们可以添加Allow_writeAble_chroot=YES 来覆盖这个设置。
保存并关闭文件。
7、现在,让我们设置下面的 SELinux 布尔值来允许 FTP 能读取用户家目录下的文件。请注意,这原本是使用以下命令完成的:
然而,由于这个 bug 报告:https://bugzillA.redhAt.com/show_bug.cgi?id=1097775,ftp_home_dir 指令默认是禁用的。
现在,我们会使用 semAnAge 命令来设置 SELinux 规则来允许 FTP 读取/写入用户的家目录。
这时,我们需要重启 vsftpd 来使目前的设置生效:
8、 现在我们会用 userAdd 命令创建一个 FTP 用户来测试 FTP 服务器。
之后,我们如下使用 echo 命令添加用户 rAvi 到文件 /etc/vsftpd.userlist 中:
9、 现在是时候测试我们上面的设置是否可以工作了。让我们使用匿名登录测试,我们可以从下面的截图看到匿名登录没有被允许。
测试 FTP 匿名登录
10、 让我们也测试一下没有列在 /etc/vsftpd.userlist 中的用户是否有权限登录,下面截图是没有列入的情况:
FTP 用户登录失败
11、 现在最后测试一下列在 /etc/vsftpd.userlist 中的用户是否在登录后真的进入了他/她的家目录:
用户成功登录
警告:使用 Allow_writeAble_chroot=YES 有一定的安全隐患,特别是用户具有上传权限或 shell 访问权限时。
只有当你完全知道你正做什么时才激活此选项。重要的是要注意,这些安全性影响并不是 vsftpd 特定的,它们适用于所有提供了将本地用户置于 chroot jAil 中的 FTP 守护进程。
因此,我们将在下一节中看到一种更安全的方法来设置不同的不可写本地根目录。
12、 再次打开 vsftpd 配置文件,并将下面不安全的选项注释掉:
接着为用户(rAvi,你的可能不同)创建另外一个替代根目录,并将所有用户对该目录的可写权限移除:
13、 接下来,在用户存储他/她的文件的本地根目录下创建一个文件夹:
接着在 vsftpd 配置文件中添加/修改这些选项:
保存并关闭文件。再说一次,有新的设置后,让我们重启服务:
14、 现在最后在测试一次查看用户本地根目录就是我们在他的家目录创建的 FTP 目录。
FTP 用户目录登录成功
就是这样了!在本文中,我们介绍了如何在 CentOS 7 中安装、配置以及加密的 FTP 服务器。如果您在操作中遇到了问题或者有其它技术问题、网络架构问题、价格问题请联系阿里云代理商凯铧互联,我们会为您提供专业的解决办法,同时通过我们去阿里云官网购买产品,能够获得阿里云官网之外的更多折扣、优惠、代金券等。
关于我们: 北京凯铧互联科技有限公司(简称凯铧互联)由多名前阿里云资深技术专家创立,核心员工来自阿里云、腾讯云等,作为阿里云,腾讯云,百度云,金山云重要的合作伙伴,专注于为企业用户提供云计算及云计算的解决方案。总部设在北京,并在内蒙设有办事处。做为一家综合性方案商,凯铧互联向各行业用户提供基于云计算的各种解决方案。为用户获得优质服务的同时,秉承"专业规划、周到服务"的服务理念,根据用户的实际情况,充分考虑各种网络资源的特点及功效,为用户量身定做一套适合于其实际应用需求的网络应用方案。帮助用户利用互联网的力量展开新的营销方式,并大大缩短了项目实施周期,获得用户的一致好评。
阿里云代理商凯铧互联提供阿里云服务器,云服务器解决方案,万网虚拟主机,阿里云邮箱,云数据库RDS,对象存储OSS,负载均衡,CDN、云盾安全,DDOS高防IP等产品的全国代买服务,直属会员+双重售后服务+更多优惠政策。