记,这篇文章实际是相当复杂的,主要原因是出于安全考虑增加了很多内容,如果只是局域网内使用不需要如此复杂,只需要安装、关闭匿名、指定目录和用户,参考https://fengrenxiaoli.github.io/2018/05/18/%E5%B1%80%E5%9F%9F%E7%BD%91%E5%AE%89%E8%A3%85ftp/
vsftpd 的全称是”very secure FTP daemon“,是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
总结起来只有几步
- 安装
- 配置文件
- 防火墙
- 设置ftp用户
一、安装FTP服务器
二、手动启动,并使其能够从下次系统启动时自动启动
三、允许从外部系统访问FTP服务
四、备份配置文件
五、配置/etc/vsftpd/vsftpd.conf
没有的请自行添加
FTP基于用户列表文件允许/拒绝对用户的FTP访问
默认情况下,如果userlist_enable = YES 并且userlist_deny = YES,在userlist_file=/etc/vsftpd/user_list
列出的用户都无法登录访问FTP。
如果userlist_deny = NO,这意味着只有userlist_file = /etc/vsftpd/user_list
中明确列出的用户才能登录。
|
|
when users login to the FTP server, they are placed in a chroot’ed jail, this is the local root directory which will act as their home directory for the FTP session only.
当用户登录到FTP服务器时,他们被放置在chroot jail里,chroot jail是本地根目录,会作为FTP会话的主目录
限制FTP用户到他们的主目录
chroot_local_user = YES
意味着本地用户通过默认设置登录后,他们的主目录将被放置在chroot jail中
并且默认情况下,vsftpd不允许chroot jail目录因安全原因而可写,但是,我们可以使用选项allow_writeable_chroot = YES
来覆盖此设置。
保存该文件并关闭它
六、配置SELinux
set SELinux rule to allow FTP to read/write user’s home directory
七、测试FTP服务器
创建一个FTP用户
将用户添加到文件/etc/vsftpd/user_list中
分别测试匿名用户anonymous、root、ftptest
|
|
八、配置不同的FTP用户主目录
使用allow_writeable_chroot=YES
具有某些安全隐患,特别是在用户具有上载权限或shell访问权限的情况下。
只有当你确切地知道你在做什么时才激活这个选项。需要注意的是,这些安全性影响并不是vsftpd特有的,它们适用于所有提供将本地用户放入chroot jail的FTP守护进程。
注释掉之前的语句
为用户创建替代本地根目录的目录(ravi您的可能不同),并将所有用户的写入权限移除到此目录
修改vsftpd配置文件
重启vsftpd
注意上传命令需要指定目标文件名
九、开放端口
如果使用云服务器,还需要开放端口
FTP服务器使用被动模式,需要先进行配置
这里使用阿里云服务器
打开控制台,云服务器ECS->安全组->配置规则
添加21和40000-41000
参考: