为少数人(可能是不知名的)提供文件上传系统

为少数人(可能是不知名的)提供文件上传系统

我需要授予几个人上传大型(视频)文件到我管理的服务器的权限。就我个人而言,我会使用这个权限,scp但由于他们不是我,我不想只为此授予他们完全ssh(/ scp)的服务器访问权限,因为我不一定认识所有人,如果用户无法访问彼此的文件,这将算作一个优点。

向服务器提供上传的最佳和最安全方法是什么?这会对任何现有防火墙规则造成什么样的修改(基本上只允许端口 22 和 80/443,但有 QoS)?

服务器运行的是 Ubuntu 9.04。客户端包括 Linux、Mac OS X 和各种版本的 Windows。

答案1

你可以使用FTP 服务器(非常安全和快速的 ftp 服务器)并设置“安全 FTP Dropbox”,相关配置参数是:

local_enable=YES 
write_enable=YES 
nopriv_user=ftp
anonymous_enable=YES 
anon_upload_enable=YES
chown_uploads=YES 
chown_username=inftpadm  
ftp_username=inftpadm
local_umask=002 
anon_umask=007 
file_open_mode=0666
dirlist_enable=NO

您还可以通过使用电子邮件密码来使其更加“安全”:

secure_email_list_enable=YES

在 /etc/vsftpd.email_passwords 中添加“白名单”电子邮件

答案2

好吧,有一些选择:

  1. 只需为每个用户提供他们自己的帐户即可。优点:用户需要进行身份验证,这样您就知道谁上传了什么;任意的人都不能滥用您的上传;人们可以管理自己的文件,但不能管理其他人的文件。缺点:如果为许多人设置帐户和密码可能不切实际。
  2. 设置只写 FTP 服务器,如 rkthkr 的回答所述。优点:添加新用户无需麻烦;缺点:很难分辨谁上传了什么
  3. 使用 chroot 帐户配置 SFTP 服务器,并将该帐户提供给所有用户。优点:阻止匿名用户,无需设置单独的帐户。缺点:人们可以读取/删除彼此的文件。为了解决这个问题,您可以设置一个脚本,将上传的文件从上传目录移出到 SFTP 无法访问的地方。

相关内容