网站首页 > 技术文章 正文
『洞察』是集成应用系统资产管理、漏洞全生命周期管理、安全知识库管理三位一体的管理平台。
『洞察』使用了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>'
# 发送邮件的服务器设置,邮箱密码由系统变量中读取
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>'
# 发送邮件的服务器设置,账号密码由系统变量中读取
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>'
# 发送邮件的服务器设置,账号密码由系统变量中读取
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
猜你喜欢
- 2024-10-03 不改一行代码!快速部署流行框架到腾讯云 Serverless
- 2024-10-03 Flask 基础理解(flask基础入门)
- 2024-10-03 AI界最危险武器GPT-2使用指南:从Finetune到部署
- 2024-10-03 解决Flask-SocketIO部署遇到的问题
- 2024-10-03 Python Web 部署(pythonweb服务器部署)
- 2024-10-03 Python Flask 大型应用的架构(python的flask案例)
- 2024-10-03 python 解析二维码(ZBar) flask开发 Dockerfile 打包部署
- 2024-10-03 使用Docker部署Python Flask Web应用的最佳实践
- 2024-10-03 带你认识 flask 错误处理(flask errorhandler)
- 2024-10-03 使用 Python 和 Flask 架设网站:入门指南
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)