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


9

关于如何设置新的安全服务器,有许多教程。

但是,如果我必须管理其他人在一段时间前设置的服务器,而我对该服务器的配置还不太了解,该怎么办?

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

Answers:


13

下载Nessus并对其进行网络检查。它将告诉您有关可远程利用的漏洞。

另外,安装Ossec;尽管这不是其主要目的,但它会发现一些常见的错误配置(例如,配置不正确的帐户)。它的主要功能-基于主机的入侵检测-将帮助发现是否有人试图利用漏洞。


5
Nessus不再是开源的。它的开源分支称为openvas。
匿名

1
我知道。但是它仍然是免费的IIRC,并且张贴者从未说过他只想要F / OSS。
niXar

+1 Nessus非常好,我也要进行一下,Nmap扫描将结果加载到Nessus中,在某些情况下可能会帮助它吸收更多的脆弱性。
马克戴维森,2009年

1
+1对于OSSEC。它还具有一个rootkit /系统审核模块,您可以独立运行它:ossec.net/rootcheck
sucuri 2009年

5

我将从Internet安全中心的 “基准”清单开始。这些是安全专家针对各种平台和软件包编制的基于共识的清单。清单中提到的一些工具,或者通常推荐的其他工具,将有助于您寻找安全问题:

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

(默认情况下,tcpdump已安装在许多linux系统上,或者可以很容易地从软件包存储库安装,并且具有完整的手册页)

如果这是您工作所在的公司,请确保安全分析已得到管理层的授权,并且扫描不会造成任何停机或应用程序愚蠢的情况。是的,简单的端口扫描器可能会引起问题-旧的HP Laserjet打印机端口扫描器会吐出纸堆。


4

作为非常快速的先检查:

netstat -ltnp

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

这可能会向您显示您想立即关闭的内容。然后,您可以继续其他答案中的解决方案。

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


4

我会在http://www.bastille-unix.org/上查看Bastille-Linux ,它是一组可以运行的脚本,它将检查系统设置,文件许可权,用户设置等。一次或两次在我自己的盒子上,如果发现默认安装有问题(主要是rsh / rsync utils上的r_x)。它输出为html / java + curses / flat文本。


3

什么发行版?

一般:

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

没有特别的发行/所有发行
Daniel Rikowski 09年

另外,您可能希望获取已安装软件包的列表。类似于dpkg --get-selections> install_pkgs.txt这样的debian发行版。
戴维·里克曼

2
您可能还需要检查异常的setuid / setgid文件,哪些帐户设置了密码,其登录外壳是什么,等等,从而消除了后门的麻烦。
马斯

很好的建议,我完全忘记了那个,这可能是一个巨大的漏洞。
David Rickman

3

另一个不错的优先选择是从网络上的其他主机运行nmap主机名。这使局外人可以看到netstat在主机上显示的内容。


3

如果您担心,我建议您遵循您提到的那些教程并重建服务器。特别是如果您认为其他管理员可能留下了不好的事情。作为新管理员,您应该知道如何部署无论如何再次运行的任何服务。

只要确保首先备份所有内容,就可以对所有分区进行映像以确保您确实正确。

如果您的老板不肯让您,那么其他所有人的建议对我来说都是不错的:-)


+1:如果没有记录它的创建/配置,并且您有时间,那么也许趁机重建它。而不需要日后在胁迫下进行。然后,您可以确定它是安全的,并将其记录下来以备将来参考。
丹·卡利

2

除了此处的一些很好的响应之外,请访问http://www.sans.org/。如果您愿意阅读一些内容,以更好地理解“纵深防御”,他们将提供一些非常好的文档。

一些非常基本的前提:

  • 保持服务器修补
  • 仅运行那些需要运行的服务
  • 限制用户对服务器的访问

1
请记住,不仅要限制网络访问,还要限制物理访问。
2009年

1

也可以尝试chkrootkit,它位于大多数发行版的标准存储库中,并且很容易安装。它将检查系统中是否存在许多已知的漏洞,rootkit和蠕虫。


1

有一两件事你可以做的就是为系统中的手感差异对新鲜的/ etc文件夹安装(应用了相同的更新。)这会告诉你发生了什么变化,所以你可以关注你的安全问题存在。


1

为了扩展mas所说的内容,这是一个简单的find命令,用于列出系统上的所有setuid和setgid文件以供查看。

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

当然,就像其他人所说的那样,这一切都是假设机器上还没有rootkit ...


1

Chrootkit / rkhunter是长期存在的成果。如果安装了rootkit,则报告的所有内容都会受到损害,因此没有太大帮助,因此请从已知来源下载它们,请勿使用包装盒上已有的内容。另一个不错的技巧是安装一个您认为不错的内核(通过软件包或自己安装)。检查后门(lsof -i和0个uid非根帐户)。检查防火墙规则通常可以告诉您很多有关以前管理员的习惯。在其上放电线/鼻孔,尝试发现任何异常。查看日志的去向。检出所有.p​​rofile / .bashrc类文件中是否有任何异常命令。在.ssh / known_hosts中查找任何狡猾的主机。

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.