vsftp:为什么是allow_writeable_chroot = YES是个好主意?

有几千篇关于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 )。