linux - 在 apache2 上安全地托管其他人
问题描述
对于上下文:我是一名学生,我必须与班上的其他人一起做一个项目。我的职责是为他们准备一个 Web 服务器,每个人都可以从任何地方使用和访问。我计划将所有内容托管在我已经必须避免额外成本的专用服务器上,并为每个人提供一个将使用 VirtualHosts 重定向的子域。他们将能够使用 SFTP 服务器 (openssh) 将文件发送到服务器,他们将获得每人一个帐户,并将其 chroot 到他们的虚拟主机目录。
我的主要问题:这会安全吗?我的意思是,如果其中一个用户设置了一个简单的密码或只是做任何有风险的事情,那么有人可以访问其他人的虚拟主机甚至是主机专用机器吗?我已经考虑过 .htaccess 并且它们将被停用。还有另一种方法可以摆脱 apache virtualhost 吗?
需要注意的事项:他们将拥有 apache、php 和对 mysql(或者可能是 mariadb,我现在不知道)数据库的访问权限。因此,他们可能能够上传一些旧的、不安全的代码。其中一些用户没有接受过网络安全方面的教育。
服务器是 Ubuntu 16.04 LTS。
感谢您的建议,
解决方案
如果您限制他们只能访问他们自己的主目录,这是一个好的开始。
一个很好的安全层也是实施 2FA,查看 Duo Mobile,您可以为 SSH 登录实施它(或需要更多详细信息,例如,他们必须使用哪些选项登录服务器?)
如果用户没有像你提到的那样接受过网络安全方面的教育,他们将很难逃脱他们可以访问的虚拟主机。
尽管我需要更多详细信息,例如每个虚拟主机将有一个单独的数据库还是将与中央数据库通信?此外,对于偏执的措施,请考虑服务器的托管位置。从您的描述中可以确认很多变量,但最好将服务器保持在自己的网络上,在同一个子网中没有任何重要的东西。以防万一。
推荐阅读
- r - 绘制 hclust() 的输出
- node.js - AWS 创建多个 ec2 实例
- buffer - 程序退出时如何保证systemd和journald之间的stdout缓冲区被刷新?
- c++ - C++ (x == 1) 与 (x & 1) 相同
- laravel - 使用 Passport Password Grants 和/或 Guzzle 时服务器冻结
- python-3.x - 如何为 RNN/LSTM 模型重塑数据集?
- apache-spark - Spark structured streaming foreachpartition / connection pooling issue
- python - Pandas 数据框 DateOffset 的偏移年份
- javascript - PrimeNG SelectButton with TEMPLATE 无法正确显示
- fabricjs - FabricJS - 运行 toDataURL 时“可能无法导出受污染的画布”JS 错误