设置 sftp 文件转储站点 openssh 或其他 sftpd?

设置 sftp 文件转储站点 openssh 或其他 sftpd?

在过去,我们可以轻松设置具有匿名上传访问权限的 ftp 服务器,而文件上传后,用户无法查看、删除或修改他们上传的文件。

我现在正尝试在 CentOS 6.2 或 ubuntu 11.10 中设置类似的东西,但我们正在传输需要通过 sftp/scp/ftps 连接的敏感数据。我尝试使用 chrooted sftp 连接,但是由于 linux 文件夹和文件权限的工作方式,如果用户对文件夹具有写访问权限,那么无论如何他们都可以删除该文件夹中的文件。

有其他人设置过类似的环境吗?我希望他们有一个用户名或用户名/密码组合,以便我们可以记录下来,这样我们就可以知道谁上传了什么文件,但是一旦文件上传,他们就不再有权删除或修改该文件。

谢谢!

答案1

从未使用过,但 ProFTPD 有一个 sftp 模块。请参阅http://www.proftpd.org/docs/contrib/mod_sftp.html#Usage它显示了如何像 FTP 一样限制它(例如,Limit DELE防止删除的条款)。

答案2

*编辑:我写的是胡说八道,因为我没有正确阅读问题,这篇文章有一个现场操作性脑白质切除术,现在希望它与问题有某种关联.. ;-)

我认为推荐的步骤是使用一些传统的端口 21 主动/被动类型 ftp 服务器,该服务器在标准老式 chroot 用户 ftp dropbox 之上提供 SSL/TLS 层。

vsftpd是一个 ftp 服务器的例子,它可以配置为使用 ssl并支持用户权限的低级配置允许您创建经过验证的 Dropbox 样式 ftp 系统。

我将为这个 ftp 项目创建单独的用户,使用 shell /sbin/nologin 并将他们添加到文本文件中,该文件可以作为允许的本地用户传递给 vsftpd。

您还可以设置以下选项来限制符合您要求的用户

 #If set to NO, all directory list commands will give permission denied.   
 dirlist_enable NO  
 #If set to NO, all download requests will give permission denied.   
 download_enable NO  
 #If activated, all non-anonymous logins are forced to use a secure SSL connection  
 force_local_data_ssl YES  
 #If activated, all non-anonymous logins are forced to use a secure SSL  
 force_local_logins_ssl YES  
 #obfusciate, probably not needed given directory listing restrictions  
 hide_ids YES  
 # allow users with no shell to access ftp, but you have to disable these users via the   
 #vsftpd local permitted users list, not via /etc/passwd  
 check_shell NO  

您还需要使用一些配置来强制执行只写、不删除的要求,这可能需要您使用 cmds_allowed 和 cmds_denied 配置选项指定适当的命令列表。

这里有一个 ftp 命令列表,其中包含简短的这里有解释;,您可能需要尝试一些反复试验,因为这些尚未经过现场测试......

 #
 chmod_enable No
 #something like the following...
 #cmds_allowed=PASV,RETR,QUIT,PUT,USER,PORT,SYST,QUIT,STOR,CWD,PWD
 #add any other commands that allow READ or DELETE, or rename, etc.
 cmds_denied=DELE,GET,LIST,MDTM,MKD,NLST,RETR,RMD,RNFR,RNTO,APPE

有多种文档可供使用,其中讨论了可能的 vsftpd 设置 - http://viki.brainsware.org/?en/cmds_allowed

您可以完全自定义此处完整列表中可用的命令;https://calomel.org/vsftpd.html

命令的解释在这里; http://www.nsftools.com/tips/RawFTP.htm

相关内容