正常接管(UNIX)生产服务器的提示


10

经过数月的疏忽,电子邮件引发了激烈的争执,并且在管理方面进行了斗争,我们目前的系统管理员被解雇,并将“服务器凭据”交给了我。这样的凭据包含一个root密码,别无其他:没有过程,没有文档,没有提示,什么也没有。

我的问题是:假设他把诱饵丢在了后面,我该如何在尽可能短的停机时间内优雅地接管服务器?

详细信息如下:

  • 位于地下室服务器场中的一台生产服务器;ubuntu server 9.x,可能带有grsec补丁(上次我问管理员的谣言)
  • 一台包含所有内部文档,文件存储库,Wiki等的内部服务器。同样,ubuntu服务器已经使用了几年。

假设两个服务器都已打补丁并且是最新的,那么除非有充分的理由(即可以向高层管理人员解释),否则我不希望尝试破解。

生产服务器上托管了一些网站(标准apache-php-mysql),LDAP服务器,ZIMBRA电子邮件套件/服务器,据我所知,vmware工作站正在运行。不知道那里发生了什么。可能是LDAP主服务器,但这是一个疯狂的猜测。

内部服务器具有内部wiki / cms,从生产服务器复制凭据的LDAP从属服务器,更多的vmware工作站以及正在运行的备份。

我可以直接去服务器场的管理员,指向服务器,告诉他们“请sudo关闭该服务器”,以单用户模式登录并自行处理。内部服务器相同。尽管如此,那仍然意味着停机时间,高层管理人员不满,老系统管理员朝我开枪说:“看吗?您无法完成自己的工作”和其他烦扰,最重要的是,我将不得不失去数周的无薪时间。

在频谱的另一端,我可以以root用户和inch身份通过服务器登录,以尝试了解正在发生的事情。遗留引发意外的所有风险。

我正在寻找一种中间的解决方案:尝试让所有事物保持原样运行,同时了解正在发生的事情和发生的情况,最重要的是避免触发任何留下的诱杀陷阱

您有什么建议?

到目前为止,我考虑过使用内部服务器进行“练习”,断开网络连接,使用实时cd重启,将根文件系统转储到USB驱动器中并将其加载到断开连接的隔离虚拟机上以了解以前的sysadmin方式。思考(“ la'知道你的敌人”)。可以在生产服务器上获得同样的成就,但是完全转储会使人注意到。也许我可以以root用户身份登录,检查crontab,检查.profile中是否有已启动的命令,转储lastlog以及所有想到的内容。

这就是为什么我在这里。任何提示,无论大小如何,都将不胜感激。

时间也是一个问题:可能在几小时或几周内发生触发因素。感觉就像是好莱坞那些糟糕的电影之一,不是吗?


5
为什么系统管理员被解雇了?看来这是不赢的局面。如果您不确定该怎么办以及服务器上到底是什么,这将不能很好地结束。
cstamas 2011年

@cstamas的sysadmin被解雇是因为,对于我们执行的每个请求(即,将用户添加到邮件列表,或创建电子邮件别名等),所花费的时间是t = 1天和t = 2个月之间的随机变量(包括的)。他从未承认过。加上一堆其他不良行为,在这里我将不做详细介绍。
lorenzog 2011年

@lorenzog现在有意义。看起来这将不是一件容易的事。已经有很好的答案。祝好运!
cstamas 2011年

1
@serverhorror:不,在我加入这家公司之前,他们只是雇用了他,现在他证明自己不够出色。自从我从与他打交道的任务开始就认识他以来。小心您的假设。
lorenzog 2011年

1
@lorenzog:这与你无关。问题的关键是,它实际上是管理者的错(这是谁)无证基础设施的情况下甚至可能发生-就像我说:没有犯罪只是观察(授予主观观察)
马丁M.

Answers:


12

正如其他人所说的那样,这看起来像是一种松散的情况。

(从结尾开始)

  • 全新的部署

当然,您不能只关闭服务器,然后让安装程序来完成它。

一般流程

  • 获取备用服务器的预算(在数据存储中进行备份)
  • 创建数据快照并将其放置在执行任何操作之前
  • 得到管理层的批准!
  • 收集需求列表(是否需要Wiki,谁正在使用VMWare实例,...)
    • 从管理
    • 来自用户
  • 得到管理层的批准!
  • 关闭一周内未列出的服务(一次仅提供一项服务 -如果您仅想关闭外部服务,但怀疑仍可能在同一主机上的应用程序中使用它,iptables可能是您的朋友)
    • 没有反应吗?->最终备份,从服务器中删除
    • 反应?->与服务的用户交谈
    • 收集新的要求由管理人员批准的Geet!
  • 所有未列出的服务都停下来一个月了,没有反应吗?-> rm -rf $service(听起来很刺耳,但我的意思是停止服务)
  • 获取备用服务器的预算
  • 一次将一项服务迁移到备用服务
  • 得到管理层的批准!
  • 关闭迁移的服务器(关闭电源)
  • 找出更多的人来对你大喊->是的,你刚刚发现了剩菜剩饭
  • 收集新要求
  • 重新启动并迁移服务
  • 重复最后4个步骤,直到一个月后没有人来
  • 重新部署服务器(并由管理人员批准!)
  • 冲洗并重复整个过程。
    • 重新部署的服务器是您的新备用服务器

你得到了什么?

  • 所有服务的清单(供您和管理层使用)
  • 文档(毕竟,您需要为管理写下一些东西,为什么不正确地做一些事情,然后为您和管理层做些事情)

到那里去做,一点都没有乐趣:(

为什么需要让管理层批准它?

  • 使问题可见
  • 确保你不会被解雇
  • 解释风险的机会
    • 如果他们不希望您这样做是很好的,但是毕竟,这是他们在得到足够的投入来判断投资是否值得时做出的决定。

哦,在开始之前向他们介绍总体计划,并对在最坏情况和最佳情况下会发生的情况进行一些估算。

花费大量的时间,无论调入的,如果你没有文档。无需考虑后门,恕我直言,如果您没有文档,那么进行滚动迁移是达到可以为公司创造价值的明智状态的唯一方法。


这是一个很好的观点。谢谢。我一定会遵循您的建议:重新批准管理并缓慢重新部署服务器。这会很痛苦,但听起来像是最好的合理措施。
lorenzog 2011年

通过适当的文档,我建议这样做:serverfault.com/questions/25404/…(另请参见一般主题)效果很好(至少对我而言)
Martin M.

4

您是否有理由相信前任管理员留下了不好的事情,还是您只是看了很多电影?

我并不是想开个玩笑,我是想了解一下您认为那里存在什么样的威胁以及威胁的可能性。如果您认为确实存在严重破坏性问题的机会很高,那么我建议将其视为成功的网络入侵

无论如何,您的老板都不希望在您处理此故障时中断停机时间-他们对计划的停机时间进行整顿以保持系统正常运行的态度与计划外的停机时间(如果系统存在故障)是什么态度(无论是真正的故障还是停机)流氓管理员),以及他们的态度是否现实,以及您对您在此处确实有问题的可能性的评估。

无论您做什么,请考虑以下事项:

现在就对系统进行拍照。在您做其他事情之前。实际上,请把两个放在一边,不要再碰它,直到您知道系统发生了什么(如果有的话),这就是您接管系统时的记录。

将“第二”映像集还原到某些虚拟机,并使用它们来探测正在发生的情况。如果您担心某个日期之后会触发事件,请在虚拟机中将日期设置为一年左右。


我确实有理由怀疑可能存在某些隐患,因为我们没有按最好的条件分开。以前的sysadmin是个好朋友,我们在大学期间是室友,我“教给他”他后来成为软件管理员和我使用软件开发和项目管理之路的许多技巧。因为涉及个人感觉(他指责我设法将他开除),所以我不能指望有合理的举止。将其视为父子关系,儿子要在某种程度上向父亲证明自己的美德。
lorenzog 2011年

4

首先,如果您打算为此花更多的时间,我建议您实际付钱。从您的言语来看,您似乎已经接受了无偿加班的事实-我认为这不应该是这种方式,尤其是当您因为其他人的过失而处于紧要关头时(例如管理层,旧的sysadmin或两者的组合)。

关闭服务器,然后引导至单用户模式(init = / bin / sh或grub处为1),以检查在root登录时运行的命令。在这里停机是必要的,向管理层明确表示,如果他们想确保自己可以保留数据,别无选择,只有停机。

然后查看所有cronjob,即使它们看起来合法。还应尽快执行完整备份-即使这意味着停机。您可以根据需要将完整备份转换为正在运行的VM。

然后,如果您可以使用新服务器或功能强大的VM,那么我实际上可以将服务一一迁移到新的干净环境中。您可以分几个阶段执行此操作,以最大程度地减少停机时间。在恢复对基本系统的信心的同时,您将获得大量必要的服务深入知识。

同时,您可以使用chkrootkit等工具检查rootkit 。在服务器上运行nessus,以查找旧管理员可能使用的安全漏洞。

编辑:我想我没有尽我所能解决您问题的“优美”部分。第一步(进入单用户模式以检查登录陷阱)可能可以跳过-旧的sysadmin为您提供root密码并设置登录名以执行a操作rm -rf /与删除自己的所有文件几乎相同,因此这样做可能没有意义。根据备份部分:尝试使用rsync基于解决方案的解决方案,以便您可以在线进行大部分初始备份,并最大程度地减少停机时间。


0

我将花时间学习那些服务器上运行的应用程序。知道什么之后,您可以随时安装新服务器。如果您认为这可能是一些后门,最好以单模式启动,或者在服务器和外部网络之间有防火墙。


0

您对安全性抱有偏执。不需要变得偏执。(您可能会谈论诱杀陷阱)。浏览安装的软件列表。查看正在运行的服务(netstat,ps等),以及cron作业。禁用以前的sys admin用户帐户,而不删除该帐户(通过将shell指向nologin即可轻松完成)。查看日志文件。我认为,通过这些步骤以及从对公司需求的了解(可以从中猜测服务器的使用),我认为您应该能够维护它们而不会造成任何麻烦。


1
我同意,这与安全性无关(否则他们根本不应该雇用旧管理员)。但这关乎一个人可以增加多少价值。我完全不同意其余的一切。没有某种库存来管理事物,这是没有理智的方法。一段时间后,用户会来打你,因为在停止工作之前您从未听过。毕竟,每个用户可见的服务背后都有相当多的基础架构。甚至没有关于这些服务的文档……
Martin M.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.