Top Menu

使用s3fs和vsftp创建一个基于Object Storage的匿名FTP服务器

使用s3fs和vsftp创建一个基于Object Storage的匿名FTP服务器

环境

配置匿名用户上传下载权限

主要问题在vsftp的匿名FTP权限设置上,使用vsftp的默认配置文件后匿名用户上传完的文件下载时会出现550错误

假设s3fs已经mount到/mnt/s3obj,Bucket名称为s3bkt,在系统层级文件实际路径/mnt/s3obj/s3bkt/something.file,需要实现匿名上传和下载,但是不能删除文件和重命名

anon_root=/mnt/s3obj 只能将加载点设为主目录,不能将Bucket设为主目录,否则无法刷新文件列表。

anon_mkdir_write_enable=NO 因为Object Storage不支持目录,所以这里禁止用户创建目录

anon_other_write_enable=NO 因为是匿名FTP服务器,为了安全考虑,禁止删除、重命名和编辑已上传的文件

anon_world_readable_only=NO 这条解决匿名用户无法下载自己上传的文件的550 Failed to open file问题

hide_ids=YES 这里为了安全考虑,隐藏文件实际所有者,匿名用户访问时只能看到文件所有者为ftp:ftp

重启vsftpd服务

按此设置后,匿名用户上传的文件属性为600,权限为ftp:ftp,并且可以查看和下载已上传的文件列表,无法修改和删除已上传的文件

配置SSL

在配置文件中增加cert和privkey的路径,可以通过certbot来申请letsencrypt证书

设置完成重启服务后,下次连接客户端会自动使用TLS进行连接

There are no comments yet

  • Hello, guest

Powered by WordPress. Designed by WooThemes