在缺少 Linux 管理员后收拾残局

8 linux ubuntu web-server

所以我们的 Linux 管理员离开了我们的项目,突然我(具有基本 linux/服务器知识的网络编码员)负责我们的专用服务器(Ubuntu Server),主要运行网站(apache/mysql/php)和邮件(Postfix)。我们的管理员并不是真正的专业 Linux 管理员,而是一些具有基本 Linux 知识的人,他们边走边想办法。所以我期待时髦的配置、不安全的服务等。

我的问题是:

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

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

  3. 我绝对必须执行的 Linux 管理员最重要的日常职责是什么?很大的问题,我知道。

Ric*_*way 11

哇。从哪儿开始。

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

首先不要惊慌。我假设你现在是 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)以最终减轻作为管理员的繁重工作.

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

  • 在做任何其他事情之前,我会想象和/或 P2V 那个傻瓜。 (3认同)

Ola*_*laf 5

一些让你开始的事情:

  1. 找一个已经做过这种审计的人——或者至少对维护服务器的常见陷阱有一些了解。说真的 - 它得到了回报。

  2. 尽可能地备份并尝试重建备用服务器 - 可能是某个地方的虚拟实例 - 直到您确信 a) 已经备份了所有重要的内容并且 b) 您能够从中重建备用服务器您可以根据需要在尽可能短的时间内进行备份。添加业力:将当前的生产服务器与您的备用服务器交换。只要你没有证明你可以从你的备份中重建,就好像你没有。

  3. 更新、阅读安全通知、密切关注日志文件并在您知道要查找的内容后自动执行此操作。

  • +1 用于寻找知道自己在做什么的人。从长远来看,它会更便宜。 (3认同)