Web服务器最佳实践:目录结构和安全性


15

我想将Ubuntu服务器用作Web服务器,但是我想确保遵循最佳实践进行设置。我想确保将目录设置在最佳位置,并了解如何在该文件夹上配置适当的安全性。我希望能够通过FTP传输到服务器并将文件推送到Web文件夹中,因此我想了解如何确保PureFTPd用户可以操纵Web文件夹中的文件/目录。


我在serverfault.com上找到了这个答案,并发现它非常有用。许多评论是处理该主题的好消息。
MystaMax 2010年

Answers:


5

我在服务器上执行的操作使用户可以将sftp内容直接发送到/var/www

sudo chgrp -R www-data /var/www
sudo usermod -aG www-data $(whoami)
sudo chmod -R 775 /var/www/*
sudo chmod 2775 /var/www

这会将您的用户放入一个在/ var / www及其所有子目录中具有组所有权的组中,递归设置/ var / www中的所有内容以允许您的组进行写访问,并在/ var / www目录中设置setgid位以便以后在/ var / www下创建的所有文件都保持相同的组所有权,而不是将组设置为创建者的主要组。


这将是一个很好的方法,但前提是您创建一个与Web服务器本身已经在其下运行的组不同的www-data。结果,Web服务器脚本的任何妥协都意味着/var/www可以更改其下的文件。只需更改www-data为即可web-users(并首先使用创建该组sudo addgroup web-users)。
Kees Cook

2

这是一个非常普遍的问题。

显然,您不想以root用户身份运行Web服务器。但是,Ubuntu安装已经以正确的方式完成了。

此外,在apache网站上有一些技巧,说明如何正确配置目录

关于ftp。您要确保使用的安全ftp服务器不会通过网络以纯文本格式发送用户名和密码。Ubuntu帮助页面提供了有关如何设置此类ftp服务器教程


我很感激这些信息,我的确意识到这是一般性的,我希望可以对最佳实践进行一些一般性的了解。
JPrescottSanders 2010年

0

当我只有一台Ubuntu服务器时,有多个用户将该服务器用作Web服务器,因此我删除了该/var/www目录,因为对我来说- /var/www是您将Web文件全局放置的位置。我更新/etc/skel目录,publicprivate使用符号链接添加和文件夹,www -> public并更新所有虚拟主机DocumentRoots指向/home/<user>/public

我看不到/var/www放置多个用户级文件夹和文件的地方。这就是/home/目录的目的!它保持路径和目录结构整洁。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.