Linux 管理员失踪后收拾残局

Linux 管理员失踪后收拾残局

因此,我们的 Linux 管理员离开了我们的项目,突然我(具有基本 Linux/服务器知识的 Web 程序员)负责我们的专用服务器(Ubuntu Server),主要运行网站(apache/mysql/php)和邮件(Postfix)。我们的管理员并不是真正的专业 Linux 管理员,而是一个具有基本 Linux 知识的人,他在工作过程中摸索出一些东西。所以我预料到会出现奇怪的配置、不安全的服务等。

我的问题是:

  1. 我如何对服务器进行“审核”以了解其当前状态,以确保正确配置,没有不必要的用户帐户,我们没有运行不必要的服务等等。

  2. 我不确定如何备份我们的生产网站。除了实际的 CMS 文件和数据库之外,还有 apache 配置、邮件数据库等需要备份。有没有关于如何自动执行此操作的建议?

  3. 作为 Linux 管理员,我必须履行的最重要的日常职责是什么?我知道,这是一个大问题。

答案1

哇。从哪儿开始呢?

这就是我要做的,但希望其他人能够提出更多/更好的建议。

首先不要惊慌。我假设你现在是 root。你目前是服务器最危险的威胁,因为你拥有很多权力,但不知道该怎么利用这些权力。

写下服务器应该运行的服务。您知道 apache、mysql 和 postfix 是必需的。我猜您可能有一个 ftp 服务器,并且能够通过 ssh 连接,因此您需要运行 sshd。写下安装了哪些服务。找出答案的最快方法可能是列出 /etc/init.d/*。然后您需要找出正在运行的服务。我不知道 Red Hat chkconfig 的等效项是什么,但如果失败,则替代 ps -ef 将列出当前正在运行的进程。还要找出是否安装了防火墙(例如 iptables)及其配置方式。

接下来获取所有正在运行的 cronjob 的列表。您可能不需要太担心它们现在做什么,但您应该大致了解服务器在不同时间正在做什么。

我会再次把这一切都写下来。

现在写下谁应该有权访问服务器以及谁被允许拥有 root 访问权限。从 /etc/passwd 获取拥有帐户的用户列表。

对 FTP 访问和其他相关服务(如 Subversion 或远程 MySQL 连接)执行类似操作。

现在您对服务器正在做什么以及谁可以访问它有了更多的了解,您应该继续了解它的运行情况。检查 /var/log 中的日志文件,尤其是 /var/log/messages,并花一些时间查找任何错误。

使用 apt-get update && apt-get upgrade 检查是否有任何未完成的更新

当提示更新时,暂时选择否。

到目前为止您还不应做出任何改变。

现在您需要检查收集到的信息,并决定需要修复哪些内容(如果有的话)。优先考虑的是尝试破解 /var/log/auth.log 中的漏洞、关闭不必要的服务以及加强防火墙。

在编辑所有文件之前请先复制它们并经常测试更改,以便在出现问题时可以轻松撤消。

备份

您需要决定需要备份的内容。明显的候选对象是数据库、/home/ /etc/ /var/log/ /var/spool/cron/ /var/www/ 以及 crontabs 调用的任何自定义脚本。然后大多数人会编写一个 shell 脚本来本地备份这些内容,然后使用 rsync 之类的工具将文件复制到另一台机器的 USB 驱动器。

日常职责包括检查日志文件中是否存在问题(查看 logwatch 来帮助您)、执行安全更新、检查备份以及设置 MRTG 和 Nagios 等监控,最终减轻管理员的繁重工作。

不过我不会太担心。这看起来可能很吓人,但那是因为你要求一次性完成所有事情。服务器可能很好,密切关注日志并在更新发布时应用更新,计划你想要做的事情并朝着它努力,采取小步骤并尝试享受它。

答案2

以下是一些入门知识:

  1. 找一个已经做过此类审计的人——或者至少对维护服务器的常见陷阱有所了解。说真的——这样做很有价值。

  2. 尽可能做好备份,并尝试重建备用服务器(可能是某个虚拟实例),直到您确信 a) 您已备份所有重要内容,并且 b) 您能够在尽可能短的时间内从备份中重建备用服务器。要增加业力:将当前生产服务器与备用服务器交换。只要您没有证明您可以从备份中重建它,就像您没有备份一样。

  3. 更新、阅读安全声明、留意日志文件,一旦知道要查找什么,就自动执行这些操作。

答案3

为了更轻松地处理日志文件,您可以考虑安装(或激活……我不知道 ubuntu 是否在默认安装中安装了)LOGWATCH。它非常适合每天向您发送电子邮件摘要。它通常会发现一些通过配置可能无法发现的奇怪内容。

答案4

按照 Richard Holloway 所说的做完之后,对系统进行网络扫描,检查服务器正在提供哪些服务,并根据目前掌握的数据进行检查。确实可以做到有趣的仅通过查看日志很难发现 Linux 中的东西。

我建议从同一网络上的另一个系统使用 Zenmap,并先从老板那里获得所需的任何许可。Zenmap 安装简单,有 GUI,并且不会尝试利用发现的任何东西。

相关内容