开源漏洞平台 OpenCVE
平台概览
GitHub
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 john.doe@example.com --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:123456@127.0.0.1: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 john.doe@example.com --admin
opencve create-user ${user} ${userMail} --admin
#启动WEB服务
opencve webserver #默认访问http://127.0.0.1:8000/
相关截图
登录数据库
创建数据库用户
导入数据库
启动web服务
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
版权声明:本文为qq_37497758原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。