漏洞管理平台『洞察』部署指南

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 『洞察』使用了Python语言进行开发,利用Flask框架+MySQL+Docker部署实现。

『洞察』是集成应用系统资产管理、漏洞全生命周期管理、安全知识库管理三位一体的管理平台。

『洞察』使用了Python语言进行开发,利用Flask框架+MySQL+Docker部署实现。

一、部署和启动mysql

docker pull mysql:5.7.13

docker run -d -p 127.0.0.1:6606:3306 \
--name open_source_mysqldb \
-e MYSQL_ROOT_PASSWORD=root \
mysql:5.7.13

二、创建数据库和账号权限配置

$ mysql -h 127.0.0.1 -P 6606 -u root -p
Enter password:root

mysql> CREATE DATABASE IF NOT EXISTS vuldb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> grant all on vuldb.* to vuluser@'%' identified by 'vulpassword';
mysql> flush privileges;
mysql> quit

三、部署和启动APP

1、下载源码

$ git clone https://github.com/creditease-sec/insight.git

2、修改srcpm/config.py 配置文件

1)修改公司邮箱后缀

#公司邮箱后缀限制,只能使用公司邮箱注册账号。
CORP_MAIL = '@qq.com'

2)修改邮件CC抄送列表

#平台发送的每封邮件的邮件抄送列表,可以设置发送给安全部邮箱列表,可自行修改,也可以保持不变为空
    '''
    示例:
    CC_EMAIL = ['xxx1@creditease.cn',
                'xxx2@creditease.cn',
            ]
    '''
    CC_EMAIL = [
            ]

3)修改开发模式的邮箱服务器和发件邮箱配置

# 以开发模式的配置运行,使用测试邮件服务器,并开启debug模式

    # 平台发邮件账号设置
    SRCPM_MAIL_SENDER = '安全部 <sec_creditease@sina.com>'
    
    # 发送邮件的服务器设置,邮箱密码由系统变量中读取
    MAIL_SERVER = 'smtp.sina.com'
    MAIL_PORT = 587
    MAIL_USE_TLS = True
    MAIL_USERNAME = os.environ.get(
        'MAIL_USERNAME') or 'sec_creditease@sina.com'
    MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') or ''

4)修改生产模式的邮箱服务器和发件邮箱配置

# 以生产模式的配置运行,使用生产邮件服务器,并关闭debug模式

    # 平台发邮件账号设置
    SRCPM_MAIL_SENDER = '安全部 <xxx@creditease.cn>'
    
    # 发送邮件的服务器设置,账号密码由系统变量中读取
    MAIL_SERVER = 'x.x.x.x'
    MAIL_PORT = 25
    MAIL_USE_TLS = False
    MAIL_USERNAME = os.environ.get(
        'MAIL_USERNAME') or 'xxx@creditease.cn'
    MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') or ''

3、修改定时周期邮件 mail_sender.py 的配置

#平台发送的每封邮件的邮件抄送列表,可以设置发送给安全部邮箱列表,可自行修改,也可以保持不变为空
    '''
    示例:
    CC_EMAIL = ['xxx1@creditease.cn',
                'xxx2@creditease.cn',
            ]
    '''
    CC_EMAIL = [
            ]


    #主机名设置
    SERVER_NAME = 'xxx.creditease.corp'
    
    # 平台发邮件账号设置
    SRCPM_MAIL_SENDER = '安全部 <xxx@creditease.cn>'
    
    
    # 发送邮件的服务器设置,账号密码由系统变量中读取
    MAIL_SERVER = 'x.x.x.x'
    MAIL_PORT = 25
    MAIL_USE_TLS = False
    MAIL_USERNAME = os.environ.get(
        'MAIL_USERNAME') or 'xxx@creditease.cn'
    MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') or ''

4、修改srcpm/app/src/forms.py 漏洞来源下拉列表

    ''' 下拉选项 '''
    source_choices = [('',''), (u'安全部', u'安全部'), (u'YISRC', u'YISRC'), (u'公众平台', u'公众平台'), (u'合作伙伴', u'合作伙伴')]

5、在项目根目录下部署和启动APP

# 拉取镜像
docker pull daocloud.io/liusheng/vulpm_docker:latest
或
自己构建镜像
docker build -t='vulpm_docker' .

# 在项目目录下启动容器,确保当前目录下存在srcpm文件夹,MAIL_PASSOWRD替换为自己邮箱服务器的密码。
$ docker run -d -p 127.0.0.1:9000:5000 \
--link open_source_mysqldb:db \
--name open_source_srcpm \
-v $PWD/srcpm:/opt/webapp/srcpm \
-e DEV_DATABASE_URL='mysql://vuluser:vulpassword@db/vuldb' \
-e SrcPM_CONFIG=development \
-e MAIL_PASSWORD='xxxxxx' \
daocloud.io/liusheng/vulpm_docker:latest \
sh -c 'supervisord -c srcpm/supervisor.conf && supervisorctl -c srcpm/supervisor.conf start all && tail -f srcpm/log/gunicorn.err && tail -f srcpm/log/mail_sender.err'

四、初始化数据库

方法一:数据库初始化详细配置指南

说明

下面配置在泊坞窗容器中进行,进入搬运工容器命令:

# docker exec -it open_source_srcpm bash
# cd srcpm

数据库初始化详细配置

1)创建数据库表,添加超级管理员账号,账号为admin@admin.com,密码为11。

# python manage.py db init
# python manage.py db migrate
# python manage.py db upgrade

# python manage.py shell
>>> admin = LoginUser(username='admin', email='admin@admin.com', password_hash='pbkdf2:sha1:1000$bLXlzNNn$6f8a286571a361ca99ede2ca3b9163e346f8a3ca', role_name=u'\u8d85\u7ea7\u7ba1\u7406\u5458', confirmed=1)
>>> db.session.add(admin)
>>> db.session.commit()
>>> exit()

2)启动应用

# python manage.py runserver -h 0.0.0.0

3)使用超级管理员账号登录,并设置角色

角色分为:

  • 安全管理员
  • 安全人员
  • 普通用户

增加角色页面URL:http://127.0.0.1:9000/srcpm/admin/ role_add

并将【普通用户】设置为默认角色。

4) 设置不同角色的权限

不同角色的详细权限请见:

洞察权限分配一览表https://github.com/creditease-sec/insight/blob/open-source/docs/permissions.md

角色权限修改方法为:选择角色对应的所有权限之后提交。

方法二:直接导入初始化的sql

导入sql

$ mysql -h127.0.0.1 -P6606 -uroot -p vuldb < srcpm/vuldb_init.sql
Enter password:root

五、访问洞察

5.1 主页

http://127.0.0.1:9000/srcpm/

5.2 登录页面

http://127.0.0.1:9000/srcpm/auth/login

GitHub开源地址https://github.com/creditease-sec/insight

内容来源:宜信技术学院

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
关系型数据库 MySQL Linux
Centos7 环境使用 Docker 安装 Mysql 服务详解
Centos7 环境使用 Docker 安装 Mysql 服务详解
2111 0
Centos7 环境使用 Docker 安装 Mysql 服务详解
|
JSON API 数据安全/隐私保护
|
存储 网络协议 安全
阿里云国际CDN加速图文和视频类网站操作教程
阿里云国际CDN加速图文和视频类网站操作教程
|
云栖大会
抢先看!2024云栖大会聊点啥?
2024云栖大会聊点啥?
283 3
Cesium自动生成建筑物3D轮廓模型
这篇文章讲解了如何使用Cesium根据地形和建筑物的高度数据自动生成3D轮廓模型的方法。
622 2
|
存储 Prometheus Cloud Native
[prometheus]基于influxdb2实现远端存储
[prometheus]基于influxdb2实现远端存储
552 2
|
数据采集 安全 Java
Burpsuite Intruder 暴力破jie实战
Burpsuite Intruder 暴力破jie实战
|
存储 SQL 监控
OceanBase 的水平扩展与性能优化
【8月更文第31天】随着业务的增长,单一数据库服务器往往难以满足日益增长的数据存储和处理需求。OceanBase 作为一款分布式数据库解决方案,通过其独特的水平扩展能力,能够在不牺牲性能的前提下支持海量数据存储和高并发事务处理。本文将详细介绍 OceanBase 的水平扩展机制,并提供一些性能优化的建议。
1075 0
|
JSON 资源调度 中间件
express学习 - (1)环境配置与第一个express项目
express学习 - (1)环境配置与第一个express项目
626 0
|
Kubernetes Ubuntu 应用服务中间件
kubeadm基于docker安装高可用1.26.3版本k8s集群
kubeadm基于docker安装高可用1.26.3版本k8s集群
1233 2