去年在centos 6.4上面yum装了openvas,结果扫描的时候,客户端经常挂掉,囧。openvas对centos的支持很不好,在centos 6.4重新yum又安装不上了,编译也是各种依赖需要export。终于还是放弃了centos 6.4,在ubuntu上编译安装。


一、准备工作

1. 系统环境

root@bob-Openvas:~# lsb_release -a

Ubuntu 14.04.4 LTS


2.安装依赖包

root@bob-Openvas:~# apt-get update

root@bob-Openvas:~# apt-get install openssh-server

root@bob-Openvas:~# apt-get install lrzsz

root@bob-Openvas:~# apt-get install build-essential bison flex cmake pkg-config libglib2.0-0 libglib2.0-dev

root@bob-Openvas:~# apt-get install libgnutls-dev

root@bob-Openvas:~# apt-get install libgnutls28-dev

root@bob-Openvas:~# apt-get install libpcap0.8 libpcap0.8-dev libgpgme11 libgpgme11-dev doxygen libuuid1 uuid-dev sqlfairy xmltoman sqlite3

root@bob-Openvas:~# apt-get install libxml2-dev libxslt1.1 libxslt1-dev xsltproc libmicrohttpd-dev libsqlite3-dev rsync libldap2-dev libhiredis-dev

root@bob-Openvas:~# apt-get install libgcrypt-dev zlib1g-dev libssh-dev


3.openvas包下载

http://www.openvas.org/install-source.html


(1)libraries:openvas库文件

openvas-libraries-8.0.7.tar.gz


(2)scanner:扫描器 负责调用各种漏洞检测插件,完成实际的扫描操作。

openvas-scanner-5.0.5.tar.gz


(3)manager:管理器 负责分配扫描任务,并根据扫描结果生产评估报告。

openvas-manager-6.0.8.tar.gz


(4)gsa:前端web ui 负责提供访问openvas服务层的web接口,便于通过浏览器来执行扫描任务,是使用最简便的客户层组件。

greenbone-security-assistant-6.0.10.tar.gz


(5)openvas-cli(命令行接口):负责提供从命令行访问OpenVAS服务层程序。

openvas-cli-1.4.4.tar.gz


二、编译安装

1.安装libraries

root@bob-Openvas:~# tar -xf openvas-libraries-8.0.7.tar.gz

root@bob-Openvas:~# cd openvas-libraries-8.0.7/

root@bob-Openvas:~/openvas/openvas-libraries-8.0.7# mkdir build

root@bob-Openvas:~/openvas/openvas-libraries-8.0.7# cd build/

root@bob-Openvas:~/openvas/openvas-libraries-8.0.7/build# cmake ..

root@bob-Openvas:~/openvas/openvas-libraries-8.0.7/build# make

root@bob-Openvas:~/openvas/openvas-libraries-8.0.7/build# make doc-full

root@bob-Openvas:~/openvas/openvas-libraries-8.0.7/build# make install

root@bob-Openvas:~/openvas/openvas-libraries-8.0.7/build# cd ../../


2.安装scanner方法同上,后面安装方法都一样

openvas-scanner-5.0.5.tar.gz


3.创建cert

root@bob-Openvas:~# openvas-mkcert


cert存放位置

/usr/local/var/lib/openvas/private/CA

/usr/local/var/lib/openvas/CA


4.重载libraries,重载的是libopenvas_nasl.so.8

root@bob-Openvas:~# ldconfig


5.同步nvt,nvt插件目录。NVT collection in /usr/local/var/lib/openvas/plugins contains 38966 NVTs.

root@bob-Openvas:~# openvas-nvt-sync   

...

...

zone_alarm_local_dos.nasl

zone_alarm_local_dos.nasl.asc

[i] Download complete

[i] Checking dir: ok

[i] Checking MD5 checksum: ok


6.安装redis-2.8.4,scanner启动前还需要运行一个redis服务,用于缓冲

root@bob-Openvas:~# apt-get install redis-server

root@bob-Openvas:~# netstat -lanpt |grep 6379

tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      3602/redis-server 1


root@bob-Openvas:~# cp /etc/redis/redis.conf{,.bak}

root@bob-Openvas:~# /etc/init.d/redis-server stop

Stopping redis-server: redis-server.


添加下面2行,不添加后面会报错

root@bob-Openvas:~# vim /etc/redis/redis.conf

unixsocket /tmp/redis.sock

unixsocketperm 700


root@bob-Openvas:~# /etc/init.d/redis-server start

root@bob-Openvas:~# netstat -lanpt |grep 6379

tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      3602/redis-server 1


7.启动scanner命令openvassd

scanner监听9391端口,需要说明的是scanner启动成功后,manager可以扮演客户端的角色与scanner交互,对scanner进行控制,真正的客户端如命令行cli、webui(gsa)只能与manager进行交互,不能越过manager操作scanner。

root@bob-Openvas:~# openvassd 

root@bob-Openvas:~# netstat -lanpt |grep 939

tcp        0      0 0.0.0.0:9391            0.0.0.0:*               LISTEN      3949/ ETA: 00:40)


8.安装manager

openvas-manager-6.0.8.tar.gz


9.manager启动后需要与scanner通信,scanner是服务端,manager是客户端,在scanner的“配置与启动”阶段,我们已经为scanner生成了SSL相关的证书和私钥文件,

说明manager可以进行服务端验证,但是scanner也要求对manager进行客户端验证,所以也需要为mananger生成SSL相关的证书和私钥文件。


10.下载scap feed.下载时间超级长,网速快的时候80分钟,网速慢的时候可能就要一天

root@bob-Openvas:~# openvas-scapdata-sync


11.下载cert feed

root@bob-Openvas:~# openvas-certdata-sync


12.执行下面命令生成client证书和私钥

root@bob-Openvas:~# openvas-mkcert-client -n -i

root@bob-Openvas:~# ls -l /usr/local/var/lib/openvas/private/CA

total 12

-rw------- 1 root root 3247  7月 30 16:59 cakey.pem

-rw------- 1 root root 3247  7月 30 20:08 clientkey.pem

-rw------- 1 root root 3247  7月 30 16:59 serverkey.pem

root@bob-Openvas:~# ls -l /usr/local/var/lib/openvas/CA

total 24

-rw-r--r-- 1 root root 2451  7月 30 16:59 cacert.pem

-rw------- 1 root root 7931  7月 30 20:08 clientcert.pem

-rw-r--r-- 1 root root 8229  7月 30 16:59 servercert.pem


######################################################################################################################

上述两步也可以通过执行openvas-mkcert-client生成证书和私钥:

root@bob-Openvas:~# openvas-mkcert-client 

然后将证书和私钥从临时目录拷贝到相应目录下

root@bob-Openvas:~# cp /tmp/openvas-mkcert-client.4501/key_om.pem /usr/local/var/lib/openvas/private/CA/clientkey.pem

root@bob-Openvas:~# cp /tmp/openvas-mkcert-client.4501/cert_om.pem /usr/local/var/lib/openvas/CA/clientcert.pem

######################################################################################################################


13.初始化数据库。scanner openvassd 9391端口启动,才能重建数据库成功。否则报错Rebuilding NVT cache... failed.

root@bob-Openvas:~# openvasmd --rebuild --progress -v

Rebuilding NVT cache... done.


root@bob-Openvas:~# openvasmd -p 9390 -a 127.0.0.1

root@bob-Openvas:~# netstat -lanpt |grep 939

tcp        0      0 127.0.0.1:9390          0.0.0.0:*               LISTEN      4836/openvasmd  

tcp        0      0 0.0.0.0:9391 


14.创建帐号bob

root@bob-Openvas:~# openvasmd --create-user=bob --role=Admin  

User created with password '23c65192-2fa7-4aab-aa8d-6c9df701314c'.


15.更改帐号bob的密码

root@bob-Openvas:~# openvasmd --user=bob --new-password=XXXXXXX 


16.安装cli,cli是一个命令行工具,作为客户端的omp,它可以运行在windows或linux上

openvas-cli-1.4.4.tar.gz 


17.安装gsad  

greenbone-security-assistant-6.0.10.tar.gz  


18.启动gsad。通过设置IP地址为0.0.0.0使服务可以通过其他机器进行访问

root@bob-Openvas:~# gsad --listen=0.0.0.0 -p 9392

root@bob-Openvas:~# netstat -lanpt |grep 939

tcp        0      0 127.0.0.1:9390          0.0.0.0:*               LISTEN      4836/openvasmd  

tcp        0      0 0.0.0.0:9391            0.0.0.0:*               LISTEN      3949/openvassd: Wai

tcp        0      0 0.0.0.0:9392            0.0.0.0:*               LISTEN      5580/gsad 


19.安装nmap-5.51.tar.bz2

gsad日志报错,扫描没有任何结果。是因为nmap没安装

root@bob-Openvas:~# ./configure && make && make install


20.导出pdf格式报告需要安装texlive-full

root@bob-Openvas:~# apt-get install texlive-full


21.下载脚本测试

root@bob-Openvas:~# wget https://svn.wald.intevation.org/svn/openvas/trunk/tools/openvas-check-setup --no-check-certificate

root@bob-Openvas:~# /root/openvas/openvas-check-setup --v8 --server

openvas-check-setup 2.3.3

  Test completeness and readiness of OpenVAS-8

  (add '--v6' or '--v7' or '--v9'

   if you want to check for another OpenVAS version)


  Please report us any non-detected problems and

  help us to improve this check routine:

  http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss


  Send us the log-file (/tmp/openvas-check-setup.log) to help analyze the problem.


Step 1: Checking OpenVAS Scanner ... 

        OK: OpenVAS Scanner is present in version 5.0.5.

        OK: OpenVAS Scanner CA Certificate is present as /usr/local/var/lib/openvas/CA/cacert.pem.

        OK: redis-server is present in version v=2.8.4.

        OK: scanner (kb_location setting) is configured properly using the redis-server socket: /tmp/redis.sock

        OK: redis-server is running and listening on socket: /tmp/redis.sock.

        OK: redis-server configuration is OK and redis-server is running.

        OK: NVT collection in /usr/local/var/lib/openvas/plugins contains 38966 NVTs.

        WARNING: Signature checking of NVTs is not enabled in OpenVAS Scanner.

        SUGGEST: Enable signature checking (see http://www.openvas.org/trusted-nvts.html).

        OK: The NVT cache in /usr/local/var/cache/openvas contains 38966 files for 38966 NVTs.

Step 2: Checking OpenVAS Manager ... 

        OK: OpenVAS Manager is present in version 6.0.8.

        OK: OpenVAS Manager client certificate is present as /usr/local/var/lib/openvas/CA/clientcert.pem.

        OK: OpenVAS Manager database found in /usr/local/var/lib/openvas/mgr/tasks.db.

        OK: Access rights for the OpenVAS Manager database are correct.

        OK: sqlite3 found, extended checks of the OpenVAS Manager installation enabled.

        OK: OpenVAS Manager database is at revision 146.

        OK: OpenVAS Manager expects database at revision 146.

        OK: Database schema is up to date.

        OK: OpenVAS Manager database contains information about 38966 NVTs.

        OK: At least one user exists.

        OK: OpenVAS SCAP database found in /usr/local/var/lib/openvas/scap-data/scap.db.

        OK: OpenVAS CERT database found in /usr/local/var/lib/openvas/cert-data/cert.db.

        OK: xsltproc found.

Step 3: Checking user configuration ... 

        WARNING: Your password policy is empty.

        SUGGEST: Edit the /usr/local/etc/openvas/pwpolicy.conf file to set a password policy.

Step 4: Checking Greenbone Security Assistant (GSA) ... 

        OK: Greenbone Security Assistant is present in version 6.0.10.

Step 5: Checking OpenVAS CLI ... 

        OK: OpenVAS CLI version 1.4.4.

Step 6: Checking Greenbone Security Desktop (GSD) ... 

        SKIP: Skipping check for Greenbone Security Desktop.

Step 7: Checking if OpenVAS services are up and running ... 

        OK: netstat found, extended checks of the OpenVAS services enabled.

        OK: OpenVAS Scanner is running and listening on all interfaces.

        OK: OpenVAS Scanner is listening on port 9391, which is the default port.

        OK: OpenVAS Manager is running and listening on all interfaces.

        OK: OpenVAS Manager is listening on port 9390, which is the default port.

        OK: Greenbone Security Assistant is running and listening on all interfaces.

        OK: Greenbone Security Assistant is listening on port 9392, which is the default port.

Step 8: Checking nmap installation ...

        OK: nmap is present in version 5.51.

Step 10: Checking presence of optional tools ...

        OK: pdflatex found.

        OK: PDF generation successful. The PDF report format is likely to work.

        OK: ssh-keygen found, LSC credential generation for GNU/Linux targets is likely to work.

        OK: rpm found, LSC credential package generation for RPM based targets is likely to work.

        OK: alien found, LSC credential package generation for DEB based targets is likely to work.

        OK: nsis found, LSC credential package generation for Microsoft Windows targets is likely to work.


It seems like your OpenVAS-8 installation is OK.


If you think it is not OK, please report your observation

and help us to improve this check routine:

http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss

Please attach the log-file (/tmp/openvas-check-setup.log) to help us analyze the problem.



22.web访问openvas,ubuntu 14.04装出来是英文界面

https://127.0.0.1:9392


ubuntu 14.04编译安装openvas 8_第1张图片


三、开机自启动openvas脚本。因为是编译安装的,开机不会自启动,写了个小脚本

openvas开机自启动

root@bob-Openvas:~# vim /home/bob/openvas_server_start.sh 

#!/bin/bash

 

/usr/local/sbin/openvassd 

/usr/local/sbin/openvasmd -p 9390 -a 127.0.0.1 

/usr/local/sbin/gsad --listen=0.0.0.0 -p 9392




四、安装中遇到的问题以及解决办法

问题1

root@bob-Openvas:~# /root/openvas/openvas-check-setup --v8 --server


ERROR: redis-server is not running or not listening on socket: /tmp/redis.sock

FIX: You should start the redis-server or configure it to listen on socket: /tmp/redis.sock


ERROR: The number of NVTs in the OpenVAS Manager database is too low.

FIX: Make sure OpenVAS Scanner is running with an up-to-date NVT collection and run 'openvasmd --rebuild'.


ERROR: No OpenVAS SCAP database found. (Tried: /usr/local/var/lib/openvas/scap-data/scap.db)

FIX: Run a SCAP synchronization script like openvas-scapdata-sync or greenbone-scapdata-sync.



问题2

测试rsync.openvas.org 873端口是不是通的,通了之后才能执行openvas-nvt-sync openvas-scapdata-sync  greenbone-scapdata-sync

root@bob-Openvas:~# telnet rsync.openvas.org rsync

Trying 78.47.251.61...

Connected to openvas-feed.intevation.org.

Escape character is '^]'.



问题3

如果rsync.openvas.org 873端口不通,可以离线安装,在网上下载feed之后(直接到已经更新了资源的机器上拷贝对应的文件到自己机器上),拷贝到这些目录即可

openvas插件库下载,拷贝到下面目录,重启openvas

root@bob-Openvas:~# wget http://www.openvas.org/openvas-nvt-feed-current.tar.bz2


/usr/local/var/lib/openvas/plugins

/usr/local/var/lib/openvas/cert-data

/usr/local/var/lib/openvas/scap-data



问题4

openvas日志目录

root@bob-Openvas:~# ls -lh /usr/local/var/log/openvas/

total 24K

-rw-r--r-- 1 root root 1.4K  7月 29 17:39 gsad.log

-rw------- 1 root root  15K  7月 30 13:10 openvasmd.log

-rw-r--r-- 1 root root  559  7月 30 13:22 openvassd.messages