有几千篇关于vsftp的博客文章, allow_writeable_chroot=YES
常见错误信息:
修复500 OOPS:vsftpd:拒绝以chroot()内的可写根目录运行
我解决了我的服务器上的问题。
但是还有一个问题:
为什么build议使用allow_writeable_chroot=NO ?
到目前为止,我只是发现了一些模糊的论点,比如“出于安全原因”。
这些“安全原因”是什么?
主要关心的是它使得dotfiles可写。 根据你的shell,login方式的设置,是否使用$ HOME / .ssh,还有其他什么服务正在运行,以及其他一些事情,这提供了更多的滥用攻击面,主要是通过操纵用户环境variables。 关于什么和为什么没有一个全面的指导,因为这需要知道攻击发生之前。
长话短说,为了可用性,大多数发行版以某种方式引用用户的主目录并使其可写,这意味着这些引用可能被操纵。
如果具有可写入的chroot的用户(即使是虚拟用户)的FTP凭证被攻破,攻击者可能会执行一次“ 咆哮的野兽攻击”( ROARING BEAST ATTACK) 。 总结一下我对这种攻击的粗略理解,它涉及到利用一些C库(可能包括FTP服务器使用的库)将在/etc或其他常见位置的硬编码path中寻找dynamic库的事实。 攻击者将这些库的恶意版本上传到chroot的/etc ,然后向(作为根运行的)FTP服务器发送一个命令,使其运行一些代码,从/etc中加载该dynamic库中的代码。 攻击者的恶意代码以root身份运行。 这会将攻击仅从用户的FTP文件夹妥协升级到整个机器。
有一个不可写的chroot会导致这种攻击变得不可能(除非你的系统pipe理员已经在你的FTP用户的chroot目录下不明智地创build了可写的文件夹,其名称如/etc和/lib )。