我刚刚从被解雇的先前服务器人员那里继承了6台Web服务器,我不是系统管理员,我更是DevOps。
谁能指出我继承现有服务器时要遵循的某种标准清单?我需要知道的是:
- 服务器上装有什么软件
- 我应采取哪些标准措施来检查它们的安全性?
- 与他们有什么联系,他们又有什么联系?
- 我还应该知道些什么?
任何建议都是值得欢迎的,我希望可以有一个标准的清单作为起点,但是我什么也找不到。
所有服务器均为Ubuntu(各种版本)
我刚刚从被解雇的先前服务器人员那里继承了6台Web服务器,我不是系统管理员,我更是DevOps。
谁能指出我继承现有服务器时要遵循的某种标准清单?我需要知道的是:
任何建议都是值得欢迎的,我希望可以有一个标准的清单作为起点,但是我什么也找不到。
所有服务器均为Ubuntu(各种版本)
Answers:
要确定已安装什么软件,可以查看/var/log/dpkg.log。 但是,这可能不是完整的记录。可能有一些二进制文件和代码是手动编译的或直接复制到预编译的系统中。您可以将相同Ubuntu版本和类型的默认安装与服务器进行比较,并查找哪些文件不同,但这可能会非常乏味。文件监视器解决方案将是理想的(tripewire,inotifywatch等) http://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html
你需要检查一切在服务器上。在每个用户帐户/ etc / passwd文件,每个应用程序的用户帐户(如Apache中/ PHP用户,数据库帐户等)应占,你应该改变所有的密码。您应该检查一下引导时启动了哪些服务,默认运行级别是什么以及以该级别和其他运行级别开头的服务。我将使用漏洞扫描程序和基准配置工具来审核当前状态。Internet安全中心提供了免费的配置评估工具,但可能会受到限制。他们为会员组织($)提供了更高级的工具。 http://benchmarks.cisecurity.org/ OpenVAS是一种FOSS扫描仪,与Nessus不同,后者可能具有类似的功能。还有很多很多东西要检查,但是这个答案已经有点长了……(针对Webapp和网页的代码审查就是一个很好的例子。)
您可以使用netstat的各种标志来查看可用于连接到服务器的端口的状态。 http://www.thegeekstuff.com/2010/03/netstat-command-examples/ 要确定谁已连接到服务器,您将不得不使用最性感的Internet Security活动,并查看系统日志。该信息可以在多个日志中的任何一个中,具体取决于系统上的应用程序和服务器。如果存在外部网络日志,则可能还有些运气。
您有很多后续工作要做。您表示以前的管理员已被解雇;如果您怀疑该人的恶意意图(即他们可能留下了后门,布比陷阱,逻辑炸弹等),则可以肯定最好用干净的媒体来重建服务器并在其上重新实现Web应用程序。如果以前的管理员对这些系统具有完全的访问和控制权,并且没有经过严格的审核和监视,则您可能应该假设存在后门。
这是基于对先前管理员的悲观假设。不幸的是,这就是cookie破坏运营网络安全性的方式。正如我所说的,还有更多需要考虑的方面……远远超出了这里的范围。这些要点应该给您一些开始做的事情,以便您可以向管理层报告正在取得进展。但坦率地说,如果您不是安全专业人员,并且您有理由怀疑此人的行为是恶意的,那么您可能会大伤脑筋。
对于管理人员来说,这是一个不受欢迎的答案,因为这需要大量的精力(这意味着更多的钱),但是从总体上讲,出于安全考虑,答案是在有疑问的情况下,从干净的资源中擦除和重建。这就是最重要的政府系统与恶意软件一起工作的方式。如果从AV发出警报,则将隔离,擦除和重建系统。希望您做了一个备份,因为数据已经消失了。
祝你好运,我希望这会有所帮助,而不仅仅是沮丧。
/var/log/dpkg.log
非常适合检查安装过程本身(并查找错误),但是要获取已安装软件包的列表,dpkg -l
则更dpkg --get-selections
容易理解输出甚至更简单。
手册页是您的朋友:
man <command>
查看这些常用命令及其用法。通过运行在每个或某些情况下的手册页中找到更多帮助
<command> --help
软件:
安全:
连接方式:
祝好运。继承一批服务器非常困难,而运行它们的人没有机会培训您。如果这个人被解雇了,那就更令人担忧了,因为我认为这是有原因的,而且如果我也认为这与工作有关,那么批处理中可能会有一些奇怪的设置。
正在运行哪些应用程序:执行“ ps -ef”或“ ps -auxw”以获取进程列表。清除与内核无关的所有内容,查找正在运行的内容,在每个页面上进行手册页以找出其含义。您可以放心地忽略大多数正在运行的进程,因为它们不是用户应用程序
为了安全起见:执行“ netstat -pan”以查看哪些端口已打开,并关闭所有不必要的端口。换句话说,唯一应打开的端口是与这些服务器提供的网络服务相对应的端口。如果服务器是Web服务器,那么显然它需要在端口80/443 / etc上侦听。但是,如果服务器正在侦听端口21,但没有人在使用它,则应关闭打开该端口的进程。
对于连接,再次使用“ netstat -pan”为您提供答案。它告诉您连接了哪些主机以及连接了哪些端口。
查看/ var / log中的日志,以了解它们在做什么,并查看是否有来自其他应用程序的明显错误或危险信号。