美文网首页宜信开源
搭建宜信开源项目---“洞察”

搭建宜信开源项目---“洞察”

作者: 小明今晚加班 | 来源:发表于2018-10-09 22:38 被阅读223次

    由于后面要做漏洞管理平台类的课题,今天把开源项目“洞察”搭建起来了,希望能为我后续的课题开展带来启发和参考。在此,把搭建过程整理出来,留下今天的工作轨迹。

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

    • 应用系统资产管理:对公司应用系统资产进行管理,包括系统名称、域名、重要级别、部门、负责人等。

    • 漏洞生命周期管理:对公司应用系统产生的安全漏洞进行线上提交、通告、知悉、复测、分类、风险计算、修复期限计算、邮件提醒、漏洞数据分析统计等。

    • 安全知识库管理:对安全知识、管理制度进行集中存放、线上学习、安全培训、知识传承等。

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


    本机原始环境:scientificLinux(我觉得对应centos 7 )

    第一步:安装docker

    这里可参考docker官方文档

    # 如果有旧版本docker的话,下面code帮你移除。
    $ sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-selinux \
                      docker-engine-selinux \
                      docker-engine
    

    然后,安装依赖包:

    $ sudo yum install -y yum-utils \
      device-mapper-persistent-data \
      lvm2
    

    再然后,设置docker安装源,这里给出stable repository:

    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    

    再接下来就是安装docker CE(社区版):

    $ sudo yum install docker-ce
    

    最后启动docker,并测试:

    $ sudo systemctl start docker
    
    $ sudo docker run hello-world
    

    如果出现下面的提示,就证明安装成功了:


    hello_world

    第二步:部署mysql

    首先,拉去mysql镜像:

    # 我这里用的mysql版本是5.7.13
    docker pull mysql:5.7.13
    

    然后,创建容器:

    # 容器名字:open_source_mysqldb
    # 连接mysql数据库的密码:root
    docker run -d -p 127.0.0.1:6606:3306 \
    --name open_source_mysqldb \
    -e MYSQL_ROOT_PASSWORD=root \
    mysql:5.7.13
    

    再接下来,我们要考虑安装一个mysql的客户端。因为上面的操作是在docker中进行的,也就是说mysql的服务是在docker中的(我觉得)。所以操作如下:(后续的操作会有用)

    wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
    rpm -Uvh mysql80-community-release-el7-1.noarch.rpm
    yum install mysql-community-client
    

    接下来在docker中创建数据库:

    # 其实这里可以告诉你为什么上一步我要安装mysql客户端,如果不安装的话,下面的mysql命令是识别不了的。会出现下面图 1 的情况。
    $ 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
    
    图 1

    数据库创建好后,你就可以查看了,但是vuldb中是没有任何表的呢。如下:


    null_tables

    第三步:部署和启动app

    首先,下载源码:

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

    然后,修改srcpm/config.py 配置文件、mail_sender.py配置文件以及邮箱设置:这里参考:注册使用QQ邮箱转发邮件,已正常配置

    接下来,在项目根目录(也就是insight/)部署和启动app:

    #拉取镜像Image
    docker pull daocloud.io/liusheng/vulpm_docker:latest
    
    # 在项目目录下启动容器,确保当前目录下存在srcpm文件夹,MAIL_PASSOWRD替换为自己邮箱服务器的密码。
    $ docker run -d -p 0.0.0.0:80: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'
    

    再然后,我们初始化数据库,这里我们直接导入“洞察”的初始化sql(注意当前路径是在 insight/):

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

    最后就是访问洞察:

    http://ip:port/srcpm/
    

    放上我访问洞察的部分初始界面吧:


    初始界面










    别人眼中的你解决问题似乎毫不费力,其实他们不明白背后的你付出了偌大的努力!



    good night!!!

    相关文章

      网友评论

        本文标题:搭建宜信开源项目---“洞察”

        本文链接:https://www.haomeiwen.com/subject/oozyaftx.html