当我必须pipe理现有的Linux服务器时,检查它是否安全的最好方法是什么?

有很多关于如何build立一个新的安全服务器的教程。

但是如果我必须pipe理别人以前设置的服务器,而且我对它的configuration了解不多,那该怎么办呢?

是否有一些工具,自动检查“通常的嫌疑犯”或一些清单,我可以通过确保没有明显的安全漏洞存在? 有远程检查漏洞的Web服务吗?

下载Nessus并执行networking检查。 它会告诉你有关可远程利用的漏洞。

另外,安装Ossec ; 虽然这不是它的主要目的,但会发现一些常见的错误configuration(例如,configuration不当的帐户)。 其主要function – 基于主机的入侵检测 – 将有助于查找是否有人试图利用漏洞。

我将从互联网安全中心的 “基准”清单开始。 这些是由安全专家为各种平台和软件包编制的基于共识的清单。 清单中提到的一些工具,或者通常build议的工具将有助于您寻找安全问题:

  • Nessus / OpenVAS (漏洞扫描器)
  • Nmap (端口扫描器)
  • TCPdump / Wireshark (libpcap数据包捕获)
  • SNORT (入侵检测系统)

(默认情况下tcpdump安装在许多Linux系统上,或者可以从软件包仓库轻松安装tcpdump,并且具有全面的手册页)

如果这是为您工作的公司,请确保安全分析得到pipe理层的授权,并且扫描不会导致任何中断或应用程序的恶意。 是的,一个简单的端口扫描可能会导致问题 – 端口可以扫描较旧的惠普激光打印机,他们会吐出一堆纸。

作为一个非常快速的首先检查:

netstat -ltnp

作为根。 这将显示您在networking上侦听的所有服务:

这可能会显示你想要立即closures的东西。 那么你可以继续在其他答案的解决scheme。

对于需要运行但不能从外部访问的服务(如本地数据库服务器),请考虑更改configuration,使其仅侦听localhost / 127.0.0.1。 这样只能由本地用户访问。

什么发行?

一般:

  • 查看iptables和/或防火墙设置
  • 检查SSHDconfiguration
  • 查看所有可从外部访问的服务configuration
  • 确保您正在运行最新的软件
  • 检查内核漏洞(uname -a然后google)
  • 查看可编辑文件的用户权限和组权限

另一个好的首先检查是从networking上的另一个主机运行nmap主机名 。 这给了一个局外人对netstat在主机上显示的看法。

如果你担心,我会build议遵循你提到的那些教程,并重build服务器。 特别是如果你认为其他pipe理员可能会留下不好的东西。 作为新的pipe理员,您应该知道如何部署任何正在运行的服务。

只要确保先把所有的东西都备份好,就可以把所有的分区都映像成图,以确保你真正做到了。

如果你的老板不让你,那么其他人的build议听起来不错,对我来说:-)

除了这里的一些非常好的回应,请查看http://www.sans.org/ 。 他们有一些非常好的文件,如果你愿意做一点点阅读,以更好地理解“纵深防御”。

一些非常基本的前提是:

  • 保持你的服务器补丁
  • 只运行那些需要运行的服务
  • 限制用户访问服务器

另外尝试chrootkit ,它是在大多数分布的标准库中,无论如何非常容易安装。 它会检查你的系统有很多已知的漏洞,rootkit和蠕虫。

有一件事情你可以做的感觉系统是差异的/ etc文件夹对全新安装(应用相同的更新。)这将告诉你什么已经改变,所以你可以把你的安全问题集中在那里。

为了扩大mas的说法,下面是一个简单的find命令,列出系统中所有的setuid和setgid文件供审查。

find / -type f \( -perm -4000 -o -perm -2000 \) -print 

当然,就像其他人所说的,这一切都假设机器上已经没有rootkit了…

Chrootkit / rkhunter是长久的垂果。 如果安装了rootkit,所有报告的内容都将被泄露,因此没有什么帮助,所以请从已知的源代码下载它们,不要使用已经存在的内容。 另一个好的诀窍是安装一个你知道的很好的内核(无论是从软件包还是自己推出)。 检查后门(lsof -i和0 uid非root帐户)。 检查防火墙规则通常可以告诉你很多关于以前的pipe理员的习惯。 把wirehark / snort放在上面,试着找出任何不寻常的东西。 看看日志在哪里。 查看所有.profile / .bashrc文件的任何不寻常的命令。 在任何狡猾的主机中查找.ssh / known_hosts。