保护新安装的 LAMP + Virtualmin 服务器

保护新安装的 LAMP + Virtualmin 服务器

我刚刚在我的 Amazon EC2 实例上安装了 LAMP 和 Virtualmin。我的域名已映射到外部 IP,现在一切运行正常。但我觉得它不太安全。当我访问我的外部 IP 时,它只显示与我的域相同的页面。我应该隐藏它吗?当我访问 mydomain.com/phpmyadmin 时,php 页面不会运行,它会下载到我的电脑上。

答案1

当我访问我的外部 IP 时,它只显示与我的域名相同的页面。我应该隐藏它吗?

你为什么要隐藏它? IP 和你的网站都是公开信息。试图隐藏它们不会带来任何安全保障。

当我访问 mydomain.com/phpmyadmin 时,php 页面没有运行,并且它被下载到我的电脑上。

您是如何安装 phpmyadmin 的?

该问题表明 php 脚本未配置为在该虚拟服务器中执行。

如果您使用 apt-get 安装,它肯定不会在 Virtualmin 默认配置下工作(尽管您会收到 501 错误而不是下载文件),因为 Virtualmin 为所有虚拟服务器设置了 suexec。Suexec 是一种安全功能,它会导致脚本以虚拟服务器帐户所有者的身份执行,而不是 Apache 用户。Debian/Ubuntu apt 存储库中的 phpmyadmin 包从默认文档根目录运行,并且需要以 apache 用户身份运行。因此,您需要任何一个禁用要在其下运行的虚拟服务器的 suexec,为此安装的 phpmyadmin 设置一个专门的虚拟服务器,该服务器已禁用 suexec,或者在要在其下运行并由该用户拥有的虚拟服务器的 public_html 目录中安装 phpmyadmin。Suexec 将不是运行不属于域所有者或 suexec 文档根目录之外的应用程序(并且您的 phpmyadmin 大概由 apache 用户拥有且位于 suexec 文档根目录之外)。

但是,您的具体问题是 php 脚本没有在安装 phpmyadmin 的位置执行。

至于安全性,有三种是野外被利用的服务器最常见的来源,它们与您的任何问题都无关:

  1. 始终运行最新的软件。Virtualmin 将向您显示过期的软件包,前提是您使用我们的安装脚本进行设置,并且您将软件包用于所有操作。如果您没有使用安装脚本,则需要安装 webmin-security-updates 模块。大多数被利用的系统都是因为其上装有旧的可利用软件。Web 应用程序可能更难保持最新状态,因为它们通常不是来自系统软件包,因此您可能需要手动关注它们。
  2. 使用强密码。强密码包含数字、字母,可能还有特殊字符。密码长度至少为 8 个字符。每年至少更改一到两次。
  3. 不要运行你不需要的服务。查看你的进程列表和启动应用程序,确保你知道它们都做什么,如果你不需要它,就关闭它。如果你不知道它做什么,Google 知道。

仅这三件事就能阻止我 15 年系统管理生涯中见过的 99% 的被利用系统。在完成这三件事并使其成为日常系统管理员例行工作之前,不要被安全问题分散注意力。之后,您可以尽情担心其他事情(但担心一堆其他事情可能不会对服务器的安全性产生很大影响)。

答案2

编辑主 php.ini 来保护某些值(例如,在我的 virtualmin disable_functions 中默认情况下为空),如果您真的想要安全性并且您的用户可以在没有安全性的情况下生活,您甚至可以拒绝 php.ini 编辑。

如果你对邮件没有任何特殊需求,只需完全禁用邮件并使用谷歌应用程序,在进行此更改之前请考虑限制(例如http://www.google.com/support/a/bin/answer.py?answer=166852&&hl=zh-CN

正如这里引用的那样 -如何防止 Virtualmin 以明文形式存储密码?- 现在可以对密码进行哈希处理了,考虑一下。

还请看一下问题Centos 专用服务器安全

只需谷歌一下正常的良好安全方法(例如拒绝远程 root ssh 访问)

答案3

对于phpmyadmin的问题,可能是没有正确安装,如果服务器没有配置运行,会提示你下载代码,你需要检查一下你的配置,或者可以尝试重新安装phpmyadmin。

为了保护你的 Web 服务器(比如 Apache)的安全,你可以执行以下操作:

  1. 当没有索引页时,防止目录列表并显示错误消息。
  2. 阻止访问某些文件类型。您可以仅允许访问 PHP 文件并阻止访问 HTML 模板。
  3. 使用类似 apache 的 mod security 来限制上传数据的大小。
  4. 限制某些 IP 对某些资源的访问。
  5. 根据用户名/密码验证限制对某些资源的访问。
  6. 如果您有有效的证书,请为某些资源启用 SSL。

应该有更多的事情需要检查/做。

相关内容