天天看点

2021-06-16 开源漏洞平台 OpenCVE

开源漏洞平台 OpenCVE

    • Docker-copose 部署
      • 配置
      • 初始化
        • 构建镜像
        • 初始化数据库
        • 导入数据
        • 创建一个管理员
        • 后台启动服务
    • 手动安装
      • PostgreSQL 安装
      • Redis 安装
      • OpenCVE 安装
        • 相关截图
      • FAQ

平台概览

GitHub
  • opencve
  • opencve-docs
  • opencve-docker
2021-06-16 开源漏洞平台 OpenCVE
2021-06-16 开源漏洞平台 OpenCVE

Docker-copose 部署

配置

# 获取OpenCVE Docker
$ git clone https://github.com/opencve/opencve-docker.git
# 准备并从conf目录复制配置文件:
$ cd opencve-docker && cp ./conf/opencve.cfg.example ./conf/opencve.cfg
           

更新opencve.cfg档案:

  • Server_name(如果在.env文件中更改它,请使用相同的端口)
  • 秘密钥匙(见瓶)重命令)
  • SMTP服务器
  • SMTP_User&SMTP_密码(如果有的话)或空的话

Tip

如果要更改默认PostgreSQL密码(强烈建议),可以在docker-compose build前将其添加到

.env

POSTGRES_PASSWORD=MyStrongPassword42
           
然后,不要忘记在opencve.cfg文件中更改它。

初始化

构建镜像

#现在可以构建OpenCVE映像:

$ docker-compose build
           

然后开始一切,除了beat:

$ docker-compose up -d postgres redis webserver celery_worker
           

初始化数据库

可以使用以下命令初始化数据库:

$ docker exec -it webserver opencve upgrade-db
           

导入数据

创建了表,现在可以使用import-data指挥:

$ docker exec -it webserver opencve import-data
           

此命令下载CPE列表、CWE列表和CVE的每个年份(从2002年到现在),因此可能需要几分钟。别担心,你只会做一次。

创建一个管理员

现在您可以创建管理:

$ docker exec -it webserver opencve create-user john [email protected] --admin
Password:
Repeat for confirmation:
[*] User john created.
           

后台启动服务

$ docker-compose up -d celery_beat
           

现在你可以使用 OpenCVE 和自己的 dockerized 实例一起使用

手动安装

PostgreSQL 安装

# 安装PostgreSQL
apt install postgresql 
# kali默认自带了PostgreSQL启动即可
service postgresql start 

# 登录控制台
sudo -u postgres psql

# 修改登陆密码
ALTER USER postgres WITH PASSWORD '123456';   #修改用户 postgres 的密码为 123456
# 创建数据库
CREATE DATABASE cvedb OWNER postgres;      #为用户 postgres 创建数据库:cvedb

# 退出
\q
           

Redis 安装

#更新
apt-get install
#安装
apt-get install redis-server -y

#确保配置文件中 daemonize为yes
sudo vim /etc/redis/redis.conf
	`
	daemonize yes
	`

#后台运行
redis-server /etc/redis/redis.conf
#测试redis
redis-cli
           

OpenCVE 安装

# 通过pip进行安装
pip install opencve   #可能存在报错,根据报错信息直接pip install安装相应失败包即可,然后重新执行该命令即成功

# 生成配置文件
opencve init   #直接vim cfg文件可以查看core配置进行各项配置
>>[*] Configuration created in /home/kali/opencve/opencve.cfg 

# 配置数据库地址
vim /home/kali/opencve/opencve.cfg 
	# 编辑database_uri配置项:
	database_uri = postgresql://postgres:[email protected]:5432/cvedb

# 初始化数据库
opencve upgrade-db   #因为OpenCVE使用JSONB功能来提高性能,所以它仅支持PostgreSQL。

# 导入历史的cve数据
opencve import-data    #默认是N,需要键入y拉取CVE历史数据(2002年至今)

# 启动 Celery任务
opencve celery worker -l INFO        #工作程序
opencve celery beat -l INFO          #调度程序,默认每15分钟拉取一次
	' 
	# 后台运行
	opencve celery worker -l INFO &
	opencve celery beat -l INFO &
	# 查看后台进程 jobs
	# 切换后台进程 jobs ${Num}
	# 后台进程切换到前台 fg ${jobs_Num}
	# 后台进程终止 kill ${jobs_Num}  /  kill pid
	'
	
# 创建OpenCVE管理员  
# opencve create-user john [email protected] --admin
opencve create-user ${user} ${userMail} --admin

#启动WEB服务
opencve webserver #默认访问http://127.0.0.1:8000/
           

相关截图

登录数据库
2021-06-16 开源漏洞平台 OpenCVE
创建数据库用户
2021-06-16 开源漏洞平台 OpenCVE
导入数据库
2021-06-16 开源漏洞平台 OpenCVE
启动web服务
2021-06-16 开源漏洞平台 OpenCVE

FAQ

  • 如何更改服务器名称?
    默认情况下,OpenCVE的Web服务器监听

    127.0.0.1:8000

    ,但你可以很容易地改变这一点。

    第一步是设置server_name配置opencve.cfg文件(OpenCVE使用此设置来正确构造电子邮件模板中的URL):

    $ cat ~/opencve/opencve.cfg
    [core]
    server_name = 0.0.0.0:8080
               
    然后,您可以使用

    -b

    的选项webserver命令选择您想要的绑定:
    $ opencve webserver -b 0.0.0.0:8080
    [2021-03-27 11:21:12 +0100] [57622] [INFO] Starting gunicorn 20.0.4
    [2021-03-27 11:21:12 +0100] [57622] [INFO] Listening at: http://0.0.0.0:8080 (57622)
    [2021-03-27 11:21:12 +0100] [57622] [INFO] Using worker: sync
    [2021-03-27 11:21:12 +0100] [57676] [INFO] Booting worker with pid: 57676
               
  • 如何为导入数据命令使用磁盘空间?

    OpenCVE必须解析CPE字典以将供应商和产品插入其> PostgreSQL数据库以及CVE和CWE列表中。

    因为解析是在内存中完成的,所以import-data命令要求5 GB RAM至少。如果

    # 如果您没有5 GB的RAM,并且您有磁盘空间,您可以> 使用交换文件进行CVEs的初始导入:
    $ fallocate -l 5G /swapfile
    $ chmod 600 /swapfile
    $ mkswap /swapfile
    $ swapon /swapfile
    
    # 导入完成后,可以使用以下命令清除swapfile:
    $ swapoff /swapfile
    $ rm /swapfile
               

继续阅读