Daniel Rikowski Asked: 2009-08-11 23:37:54 +0800 CST2009-08-11 23:37:54 +0800 CST 2009-08-11 23:37:54 +0800 CST 当我必须管理现有的 Linux 服务器时,检查它是否安全的最佳方法是什么? 772 有很多关于如何设置新的安全服务器的教程。 但是,如果我必须管理其他人前段时间设置的服务器,而我对其配置知之甚少,该怎么办? 是否有一些工具可以自动检查“通常的嫌疑人”或我可以通过一些清单来确保不存在明显的安全漏洞?是否有远程检查漏洞的 Web 服务? linux security 12 个回答 Voted Best Answer niXar 2009-08-11T23:55:34+08:002009-08-11T23:55:34+08:00 下载 Nessus 并对其进行网络检查。它将告诉您有关可远程利用的漏洞。 另外,安装Ossec;虽然这不是它的主要目的,但它会发现一些常见的错误配置(例如配置不正确的帐户)。它的主要功能——基于主机的入侵检测——将有助于发现是否有人试图利用漏洞。 jtimberman 2009-08-11T23:44:55+08:002009-08-11T23:44:55+08:00 我将从互联网安全中心的“基准”清单开始。这些是安全专家为各种平台和软件包编制的基于共识的清单。清单中提到的或通常推荐的一些工具将有助于您寻找安全问题: Nessus/ OpenVAS(漏洞扫描器) Nmap(端口扫描器) TCPdump/ Wireshark(libpcap抓包) SNORT(入侵检测系统) (tcpdump 默认安装在许多 linux 系统上,或者可以从包存储库中轻松安装,并且有一个全面的手册页) 如果这是针对您工作的公司,请确保安全分析得到管理层的授权,并且扫描不会导致任何中断或应用程序愚蠢。是的,一个简单的 portscan 可能会导致问题 - portscan 较旧的 HP Laserjet 打印机,它们会吐出成堆的纸。 sleske 2009-08-12T03:49:06+08:002009-08-12T03:49:06+08:00 作为一个非常快速的第一次检查: 跑 网络统计-ltnp 作为根。这将向您显示在网络上侦听的所有服务: 这可能会显示您想要立即关闭的内容。然后您可以继续使用其他答案中的解决方案。 对于需要运行但无法从外部访问的服务(例如本地数据库服务器),请考虑更改配置,使其仅侦听 localhost/127.0.0.1。这样它就只能由本地用户访问。 Jimsmithkka 2009-08-12T04:48:50+08:002009-08-12T04:48:50+08:00 我会在http://www.bastille-unix.org/上查看 Bastille-Linux ,它是一组可以运行的脚本,它会检查系统设置、文件权限、用户设置等。我用过它在我自己的盒子上一次或两次,如果在默认安装中发现问题(主要是 rsh/rsync utils 上的 r_x)。它输出为 html/java+curses/纯文本。 David Rickman 2009-08-11T23:49:33+08:002009-08-11T23:49:33+08:00 什么发行版? 一般的: 查看 iptables 和/或防火墙设置 查看 SSHD 配置 查看所有外部可访问的服务配置 确保您运行的是可用的最新软件 检查内核漏洞(uname -a 然后 google) 查看可编辑文件的用户权限和组权限 kmarsh 2009-08-12T04:17:30+08:002009-08-12T04:17:30+08:00 另一个好的第一个检查是从网络上的另一台主机运行nmap 主机名。这可以让局外人看到 netstat 在主机上显示的内容。 Kyle Brandt 2009-08-12T04:36:12+08:002009-08-12T04:36:12+08:00 如果您担心,我建议您遵循您提到的那些教程并重建服务器。特别是如果您认为其他管理员可能留下了不好的东西。作为新管理员,您应该知道如何部署它正在运行的任何服务。 只需确保首先备份所有内容,您可以对所有分区进行映像以确保您真正做到正确。 如果你的老板不让你,那么其他人的建议对我来说听起来不错:-) Greeblesnort 2009-08-12T05:06:39+08:002009-08-12T05:06:39+08:00 除了这里的一些非常好的回复,请查看http://www.sans.org/。如果您愿意稍微阅读以更好地理解“纵深防御”,他们会提供一些非常好的文档。 一些非常基本的前提: 保持你的服务器修补 只运行那些需要运行的服务 限制用户访问服务器 wazoox 2009-08-12T06:00:14+08:002009-08-12T06:00:14+08:00 也可以试试chkrootkit,它包含在大多数发行版的标准存储库中,而且很容易安装。它将检查您的系统是否存在许多已知漏洞、rootkit 和蠕虫。 Chris Nava 2009-08-12T07:26:46+08:002009-08-12T07:26:46+08:00 您可以做的一件事来了解系统,将 /etc 文件夹与全新安装(应用相同的更新)进行比较。这将告诉您发生了什么变化,以便您可以将安全问题集中在那里。
下载 Nessus 并对其进行网络检查。它将告诉您有关可远程利用的漏洞。
另外,安装Ossec;虽然这不是它的主要目的,但它会发现一些常见的错误配置(例如配置不正确的帐户)。它的主要功能——基于主机的入侵检测——将有助于发现是否有人试图利用漏洞。
我将从互联网安全中心的“基准”清单开始。这些是安全专家为各种平台和软件包编制的基于共识的清单。清单中提到的或通常推荐的一些工具将有助于您寻找安全问题:
(tcpdump 默认安装在许多 linux 系统上,或者可以从包存储库中轻松安装,并且有一个全面的手册页)
如果这是针对您工作的公司,请确保安全分析得到管理层的授权,并且扫描不会导致任何中断或应用程序愚蠢。是的,一个简单的 portscan 可能会导致问题 - portscan 较旧的 HP Laserjet 打印机,它们会吐出成堆的纸。
作为一个非常快速的第一次检查:
跑
作为根。这将向您显示在网络上侦听的所有服务:
这可能会显示您想要立即关闭的内容。然后您可以继续使用其他答案中的解决方案。
对于需要运行但无法从外部访问的服务(例如本地数据库服务器),请考虑更改配置,使其仅侦听 localhost/127.0.0.1。这样它就只能由本地用户访问。
我会在http://www.bastille-unix.org/上查看 Bastille-Linux ,它是一组可以运行的脚本,它会检查系统设置、文件权限、用户设置等。我用过它在我自己的盒子上一次或两次,如果在默认安装中发现问题(主要是 rsh/rsync utils 上的 r_x)。它输出为 html/java+curses/纯文本。
什么发行版?
一般的:
另一个好的第一个检查是从网络上的另一台主机运行nmap 主机名。这可以让局外人看到 netstat 在主机上显示的内容。
如果您担心,我建议您遵循您提到的那些教程并重建服务器。特别是如果您认为其他管理员可能留下了不好的东西。作为新管理员,您应该知道如何部署它正在运行的任何服务。
只需确保首先备份所有内容,您可以对所有分区进行映像以确保您真正做到正确。
如果你的老板不让你,那么其他人的建议对我来说听起来不错:-)
除了这里的一些非常好的回复,请查看http://www.sans.org/。如果您愿意稍微阅读以更好地理解“纵深防御”,他们会提供一些非常好的文档。
一些非常基本的前提:
也可以试试chkrootkit,它包含在大多数发行版的标准存储库中,而且很容易安装。它将检查您的系统是否存在许多已知漏洞、rootkit 和蠕虫。
您可以做的一件事来了解系统,将 /etc 文件夹与全新安装(应用相同的更新)进行比较。这将告诉您发生了什么变化,以便您可以将安全问题集中在那里。