监狱Linux用户到FTPlogin目录

我打算使用vsftpd作为一个安全的ftp服务器,但我很难控制将用作ftplogin的linux用户。

用户需要“入狱”到特定的目录(和子目录),并具有完全的读/写访问权限。

要求: – 用户帐户“admin_ftp”应该被监禁到/ var / www目录。 – 其他帐户将根据需要添加,为每个网站…例如: – 用户帐户“picturegallery_ftp”应该被监禁到/var/www/picturegallery.com目录。

我已经尝试了以下,但无济于事:

# Group to store all ftp accounts in. groupadd ftp_accounts # Group for single user, with the same name as the username. groupadd admin_ftp useradd -g admin_ftp -G ftp_accounts admin_ftp chgrp -R ftp_accounts /var/www chmod -R g+w /var/www 

当我使用帐户admin_ftplogin到FTP时,我收到错误消息:

500 OOPS:无法更改目录:/ home / admin_ftp

但是我没有指定主目录?

额外的互联网的指导如何做到这一点专门为vsftpd 🙂

我的第一个回应很简单:

除非你绝对必须使用FTP,否则不要使用FTP。 这是不安全的,在这个时代没有理由使用它。

而是使用SSH和/或SCP和/或SFTP(所有类似和相关的协议)。

就如何做到这一点,其中有相当一部分。 我会链接到几个谷歌search结果(不担保任何这些):

  • IT.Toolbox
  • 另一个博客
  • 还有另一个使用JailKit的教程
  • nixCraft文章
  • Debian教程

还有更多,只是search… …

特别是对于vsftpd,呃? 好的:

在vsftpd.conf中,添加:

 user_config_dir=/etc/vsftpd/user_conf 

然后在/ etc / vsftpd / user_conf / admin_ftp中,把:

 anon_root=/var/www local_root=/var/www 

…为每个其他帐户等。

现在值得指出的是,在没有其他保障措施的情况下,监禁这样的人是毫无意义的。 毕竟,因为它是在一个DocRoot里面的,所以他们可以上传一个PHP文件,然后通过Web浏览器访问这个PHP文件,此时他们不再被监禁。 所以请记住仔细考虑整个安全环境。

至于FTP会话本身的安全性(ircmaxell的担忧),只需设置FTPS即可。 在vsftpd中这样做很简单,如果你使用FTPES,你可以用任何一种方式连接。

如何设置相应的本地家庭,然后使用chroot_local_user或chroot_list_enableconfiguration选项chroot?

当您创buildadmin_ftp用户时,您并未指定您希望此用户的主目录为/ home / admin_ftp以外的其他目录。 所以ftp服务器试图进入/ home / admin_ftp,因为这就是它在passwd文件中所看到的。 你应该把admin_ftp的主目录改为/ var / www /,如果你希望这个目录是你使用该用户的FTP进入的目录:

 usermod -d /var/www admin_ftp 

我不知道你使用的是什么发行版,但Arch Linux有一个很好的wiki页面来设置vsftp: 非常安全的FTP守护进程