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