确保您主机的基线安全是很重要的,而其中一个很有用的工具就是网络安全扫描器。网络安全扫描器虽然不如集中的渗透测试,但对于识别简单的漏洞、缺少的补丁、开放的端口以及其它的问题都是很有用的。
Tenable的开源或商业混合的工具Nessus,是一款您可能会比较熟悉的网络安全扫描工具。这个工具已经有超过10年的历史了,并且从2005年开始有了双重发行,并仅对非商业目的的使用是免费的。但工具已经不再是免费的了,并且从3.0版开始,不再开源。
自由而开放的网络安全扫描
为了适应Nessus的商业化和开源代码的不开源化,开发了开放式漏洞评估系统(Open Vulnerability Assessment System OpenVAS)。最开始,其只是Nessus的一个纯GPL性质的克隆产物。但现在已经开始了进一步的开发,并扩展了Nessus项目所没有的能力和功能。在这里,我们将向您展示,如何去安装OpenVAS并进行初步的使用。这是一个很简单的过程。我们将很快让您可以在自己的主机上运行安全扫描。
最新版本的OpenVAS 3.0.0是从Nessus 2.2克隆出来(Nessus从3.0开始发行自己专有的许可证)。它将一个客户端—服务端的扫描架构和一个图形化的前端结合起来,并可以在多种Linux、Windows以及其它操作系统上运行。它可以利用网络漏洞测试或者使用Nessus攻击脚本语言(Nessus Attack Scripting Language NASL)编写的网络漏洞测试,其中NASL是Nessus项目中用于编写测试的语言。
截止到2009年12月,OpenVAS项目已经发布了15,500个带签名的网络漏洞测试,而这些测试都由一个GPL许可进行授权。从3.0.0版本起,OpenVAS从原来的一个漏洞扫描器扩充为了一个完整的漏洞管理解决方案。OpenVAS现在有了一个模块化的架构并支持一个中心管理扫描服务器和控制台。
安装OpenVAS
让我们从安装各种OpenVAS模块开始。对于3.0.0版本来说,有三个核心模块:openvas-libraries、openvas-scanner以及openvas-client,以及两个可选的模块:openvas-manager和openvas-administrator。我们将对三个核心模块进行安装。在写这篇文章时,OpenVAS 3.0.0还没有被打包用于发布。如果您想要一个打包后的版本,那么您只能使用2.x分支的发布版本。因此,由于我们没有包,我们将通过源码进行安装。 在编译OpenVAS之前,需要先安装一些先决条件。比如说,在Red Hat上,我们将需要通过yum,安装一个编译器,以及下面的一些包:
$ sudo yum install gcc glib glib2 glib-dev glib2-dev gpgme gpgme-devel make bison gnutls gnutls-devel libpcap libpcap-devel cmake gtk+ gtk+-devel
在Ubuntu上,我们需要通过apt-get去安装相同的包。这可以通过下载所需的源tarball,并进行解包来完成:
$ wget http://wald.intevation.org/frs/download.php/683/openvas-libraries-3.0.0.tar.gz $ tar -zxf openvas-libraries-3.0.0.tar.gz $ cd openvas-libraries-3.0.0 $ ./configure $ make $ sudo make install $ sudo ldconfig
然后,对下面的文件重复这些步骤:
http://wald.intevation.org/frs/download.php/684/openvas-scanner-3.0.0.tar.gz http://wald.intevation.org/frs/download.php/685/openvas-client-3.0.0.tar.gz
下来,我们需要为OpenVAS创建一个服务器证书。
$ sudo openvas-mkcert
按照屏幕上的指示,去创建您的证书。
现在,我们需要使用openvas-adduser命令去为OpenVAS的运行创建一个用户。
$ sudo openvas-adduser
同样地,按照屏幕上的指示,为OpenVAS用户提供一个用户名字和用户密码。最后,我们需要安装我们用来扫描的网络漏洞测试(NVTs)。OpenVAS的命令为:
$ sudo openvas-nvt-sync
第一次运行会持续一段时间,而且您需要定期地运行它以便收到更新和新的测试。我一般通过cron,一天运行它一次。
运行OpenVAS扫描器
当安装完以后,您就可以运行OpenVAS扫描器守护进程:
$ sudo openvassd
由于守护进程会将所有的网络漏洞测试都加载到扫描器中,所以根据你扫描用的主机的性能,会花一点时间。