use*_*729 15 virtualhost users apache2
预先感谢您提供的任何帮助。我已经自学了使用 linux (ubuntu)、apache、虚拟主机和一些关于安全性的知识,尽管我还没有将它们无缝地组合在一起。
我还从过去犯的错误中学到了艰难的方法,即没有正确设置用户帐户和站点/虚拟主机。我以 root 身份 ssh 进入服务器(我知道,这很糟糕),并手动创建了所有虚拟主机和文件,因此都归 root 所有。我的所有其他虚拟主机中都插入了旧版本的 joomla 漏洞和恶意垃圾邮件代码。
我正在迁移到新服务器,并且正在寻找有关设置可以访问它们的虚拟主机和用户帐户的正确步骤。因为我们使用 3rd 方软件,所以我们有时需要其他人通过 ftp 进入该站点以调查他们的网站文件。
我们当前的服务器是 10.04 版,但是新服务器是 12.04 版。所有网站文件都设置在
/home/www/site1.com
/home/www/site2.com
/home/www/site3.com
等等
简而言之,我想这就是我所追求的。
如何正确设置虚拟主机和用户,使其只能访问自己的文件,而不能访问服务器上的任何其他虚拟主机。例如,如果该站点被恶意代码利用,它就无法感染服务器上的其他站点
我将如何设置用户,以便他们只能 ftp 进入他们给定的文件,而不能访问任何其他站点。
如前所述,有许多文章详细介绍了如何执行这些步骤中的任何一个,但没有任何文章能够将它们无缝地结合在一起。
非常感谢任何人都可以提供的帮助。请随时询问您可能需要提供建议的任何其他信息。我目前正在按照教程来设置 chroot,但是我担心我没有正确执行此操作,因为我在此过程中发现了一些不一致之处。我也在调查 jailkit。
由于问题是当被问及“apache虚拟主机独立用户”时google中的顶级搜索结果,我想根据这个答案给出更详细的答案。我的回答不包括 PHP 和 CGI 的用例(您将使用 suPHP)。当用作 apache 模块时,它专注于 PHP。
您可以使用 apache 模块apache2-mpm-itk。它适用于当前版本的 apache 2.4。它带有指令AssignUserID。该指令定义了处理虚拟主机请求的用户和组。这是我最终得到的 apache 站点配置示例:
<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /home/www/site1.com
AssignUserID site1 www-data
php_admin_value open_basedir /home/www/site1.com
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当然,这只会提高安全性,前提是各个 DocumentRoots 由其各自的用户拥有并且不是组可访问的。为了进一步提高与 PHP 相关的安全性,脚本会被DocumentRoot限制在 open_basedir 限制中。至于后端文件访问,我更喜欢带有 chroot 的 SFTP。
注意:apache2-mpm-itk 目前与 Apache 的 http2 模块不兼容。
我本人并不认为这是对你问题的回答。但由于我还不能发表评论,所以我必须在“答案”区写下。我季节性地进行 Web 管理,以安全的方式进行测试和尝试的一种方法是在虚拟机(即 VirtualBox)或“旧”台式计算机中设置测试环境。新手网络主机管理员最常见的问题之一是了解网络服务器程序的工作原理。在这种情况下,我假设您需要了解 Apache 的工作原理,并且至少了解配置文件。我发现Webmin对于新手来说是一个非常有用的工具,可以管理 Apache 和其他服务。您必须花一些时间在测试环境中进行尝试,这样事情对您来说就会变得更加清晰。
回到你的问题,我认为答案很可能是一篇教程文章或一本小书。首先查看这些文章:
http://www.servermom.org/build-ubuntu-server-a-complete-guide/
| 归档时间: |
|
| 查看次数: |
23872 次 |
| 最近记录: |