缺少Linux管理员后拾起碎片[关闭]


8

因此,我们的Linux管理员离开了我们的项目,突然间,我(具有基本linux / server知识的Web编码器)负责主要运行网站(apache / mysql / php)和邮件(Postfix)的专用服务器(Ubuntu Server)。我们的管理员并不是真正的Linux专业管理员,而是一些具有Linux基本知识的人,他在研究过程中会发现一些问题。因此,我期望配置新颖,服务不安全等。

我的问题是:

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

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

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


“笨拙”的配置是什么意思?当我们这一代人使用这个词时,就意味着好东西。
约翰·加迪尼尔

Answers:


11

哇。从哪儿开始。

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

首先不要惊慌。我假设你现在是根。由于您拥有强大的功能并且对如何处理服务器一无所知,因此您当前对服务器是最危险的威胁。

写下服务器应运行的服务。您知道apache,mysql和postfix是必需的。我想您可能在那里有一个ftp服务器,并且您可以ssh输入,因此需要运行sshd。写下要安装的服务。找出最快的方法可能是列出/etc/init.d/*。然后,您需要找出正在运行的内容。我不知道与Red Hat chkconfig等效的东西是什么,但是如果没有替代的ps -ef将列出当前正在运行的进程。还要了解是否安装了防火墙(例如iptables)及其配置方式。

接下来,获取所有运行的cronjobs的列表。您可能不需要太担心它们立即执行的操作,但是您应该对服务器在不同时间的运行情况有一个大致的了解。

我会再次写下所有这些。

现在,写下谁应该有权访问服务器以及谁被允许具有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)以最终摆脱繁重的管理员职责。

我不会太担心。这似乎令人生畏,但这是因为您一口气要求这一切。该服务器可能还不错,请密切注意日志并在发布日志时应用更新,计划要执行的工作并朝着它努力,采取一些小步骤并尝试使用它。


3
在做其他事情之前,我先给那个傻瓜成像和/或P2V。
Orangutech 2010年

+1获取当前快照。至少通过SSH或rsync将服务器归档。
Gerald Combs 2010年

1
获取安装的服务时,还运行“ dpkg -l>〜/ installed_software”。这会将通过apt-get安装的软件包的列表写到主目录中名为“ installed_software”的文件中。检查是否有任何未通过apt-get安装的正在运行的服务。旧版管理员可能尚未通过apt-get安装服务器,并且这些服务将必须通过“ apt-get upgrade”以外的其他方式进行更新。有人会认为这种情况很少见,但事实并非如此。
德鲁

另一个合适的建议是在某种形式的版本控制下获取配置文件。然后,当您进行调整或更改内容以适合您的思维方式时,您可以跟踪这些更改并准确了解您的错误处。也许您很幸运,但这仍然是个好建议。
OldTroll

所有这些都是很好的建议。除上述内容外,我还将运行netstat -tanp和/或-anp来显示有关活动连接和侦听连接及其关联进程的详细信息。
nedm

5

一些让您入门的事情:

  1. 获得已经进行过此类审核的人员-或至少了解一些有关维护服务器的常见陷阱的知识。认真地-它得到了回报。

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

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


3
+1以寻找知道自己在做什么的人。从长远来看,它将更便宜。
David Mackintosh,2010年

1
+1相同,但我会更进一步,建议找一个明显更专业的人来确保整个系统都处于适当的状态。实时系统无处可从头开始学习。
John Gardeniers

完全同意,但是由于该系统已经投入使用,所以我想没有办法在实时系统上学习。
奥拉夫2010年

1

为了更轻松地获取日志文件的句柄,您可以考虑安装(或激活。如果ubuntu在默认安装中具有此功能,则我不知道)LOGWATCH。给您每天发送给电子邮件的摘要非常好。它通常会拾取一些时髦的东西,一眼@ configs可能无法发现。


1

如果您珍视服务器及其数据,请寻求帮助。请某人对其进行审核。

如果您不知道“正确”是什么样子,那么可能很难找出“错误”的地方(或您所说的“笨拙”)。服务器一旦有人处于已知的良好状态。

使用VMWare Converter之类的东西来制作服务器的暂存VM是一个很棒的主意,您应该研究一下。

然后,您可以在登台虚拟机(服务器的副本)上四处查看,并尝试在生产服务器之前首先在VM登台服务器上执行要求您做的每件事。


0

在按照理查德·霍洛威的话说之后;然后对系统进行网络扫描,以检查服务器正在提供哪些服务,并根据您到目前为止的数据进行检查。使用linux 可以做一些非常有趣的事情,而仅通过查看日志就很难找到。

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

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.