zoukankan      html  css  js  c++  java
  • SeMF安装指南

    基础环境安装

    安装依赖

    # yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y

    安装python3

    # yum install python3 -y
    # python3 -V
    Python 3.6.8

    安装erlang

    # cd /tmp
    # wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm
    # rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm
    # erl -version
    Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 8.0.3

    安装Rabitmq

    # cd /tmp
    # wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9-1.-el7.noarch.rpm      # 下载
    # yum install rabbitmq-server-3.6.9-1.el7.noarch.rpm -y                  # 安装
    # service rabbitmq-server start                       # 启动rabbitmq-server
    Redirecting to /bin/systemctl start rabbitmq-server.service
    # rabbitmq-plugins enable rabbitmq_management                            # 开启web
    
    The following plugins have been enabled:
      amqp_client
      cowlib
      cowboy
      rabbitmq_web_dispatch
      rabbitmq_management_agent
      rabbitmq_management
    
    Applying plugin configuration to rabbit@localhost... started 6 plugins.

    rabbitmq基本操作

    # rabbitmqctl add_user admin admin                       # 创建用户
    Creating user "admin" ...
    # rabbitmqctl add_vhost semf                       # 添加vhost
    Creating vhost "semf" ...
    # rabbitmqctl set_user_tags admin administrator            # 设置标签
    Setting tags for user "admin" to [administrator] ...
    # rabbitmqctl set_permissions -p semf admin ".*" ".*" ".*"     # 设置权限
    Setting permissions for user "admin" in vhost "semf" ...

    安装nmap

    # yum install nmap -y

    防火墙设置

      开放rabbitmq端口。

    # systemctl start firewalld.service                    # 启动防火墙
    # firewall-cmd --zone=public --add-port=5672/tcp --permanent     # rabbitmq api 端口
    success
    # firewall-cmd --zone=public --add-port=15672/tcp --permanent       # rabbitmq web 端口
    success
    # firewall-cmd --reload                           # 刷新规则 
    success
    # firewall-cmd --zone=public --list-ports                # 查看开放端口
    5672/tcp 15672/tcp

    安装SeMF

       创建一个SeMF的专属目录进行操作。

    # cd /opt/
    # mkdir SeMF
    # cd SeMF/
    # yum install git -y
    # git clone https://gitee.com/gy071089/SecurityManageFramwork
    # cd SecurityManageFramwork/
    # ls
    ArticleManage  cnvd_xml     logs          RBAC              SeMFSetting                  TaskManage
    AssetManage    cnvd_xml.py  manage.py     README.md         SeMF使用指南-2018-06-20.pdf  templates
    ChartManage    initdata.py  MappedManage  requirements.txt  SeMF安装指南-2018-06-12.pdf  tmp
    cnnvd_xml.py   LICENSE      NoticeManage  SeMF              static                       VulnManage

    修改配置文件

       需修改邮箱和队列存储信息。

    # vim /opt/SeMF/SecurityManageFramwork/SeMF/settings.py
    ...
    #设置邮箱
    EMAIL_HOST = 'smtp.qq.com'          #SMTP地址
    EMAIL_PORT = 25                 #SMTP端口
    EMAIL_HOST_USER = 'your-email'    #我自己的邮箱
    EMAIL_HOST_PASSWORD = 'your-password#'  #我的邮箱密码
    EMAIL_SUBJECT_PREFIX = u'[SeMF]'      #为邮件Subject-line前缀,默认是'[django]'
    EMAIL_USE_TLS = True               #与SMTP服务器通信时,是否启动TLS链接(安全链接)。默认是false
    ...
    #设置队列存储 BROKER_URL
    = 'amqp://admin:admin@localhost/semf' #设置与rabbitmq一致 CELERY_ACCEPT_CONTENT = ['pickle', 'json', 'msgpack', 'yaml']

      数据库的话我们就用默认sqlite就好了,省懒。

    安装依赖

    # cd /opt/SeMF/SecurityManageFramwork/
    # sudo python3 -m pip install -r requirements.txt

       安装可能会比较慢,可能需要多试几次,如果还无法安装,请使用其它pip源。

    初始化数据库

    # python3 manage.py makemigrations    # 初始化数据表
    # python3 manage.py migrate       # 初始化数据库

    创建超级用户

    # python3 manage.py createsuperuser

      此处输入密码有复杂度要求,此处为登录SeMF界面的超管账户。

    初始化漏洞库

      CNNVD 漏洞数据 ,测试环境可不执行,执行过程中出现 fail 表明漏洞信息不完善或不重要,可忽略,因漏洞数据较多,需要耗费一定的时间,大概10min+。

    # python3 cnvd_xml.py

    初始化权限信息

      主要包含菜单,权限以及管理员角色信息,该信息可在后台调整。

    # python3 initdata.py 
    initassettype ok
    initassettypeinfo ok
    initrole ok
    initrole ok
    initsuperuser ok
    initarticle ok

      开启异步任务,执行celery

    # celery -A SeMF worker -l info

      启动服务器。

    # python3 manage.py runserver 192.168.8.15:8000     # 虚拟机地址

    使用

    界面演示

      访问http://192.168.8.15:8000/。

       可以看到左边栏:资产管理、漏洞管理、任务管理、报表中心及用户管理等。

    资产扫描

      点击资产管理 》 资产列表 》 新增资产 》 填写相关新即可,其中唯一标记可填单个ip或网段。

    资产发现

      如果填写了个172.16.80.0/24子网段,就可以点击资产发现,用来探测子网段中存活的主机。

    【注】经测试,资产发现实现功能有问题,未能正确识别资产和探测存活情况,应该简单修改就能修正这个Bug。

  • 相关阅读:
    JS Map的使用
    C# 创建Windows服务
    Oracle 表空间不足解决办法
    C# 企业微信API开发(获取Token,给用户发送消息)
    企业微信API开发笔记
    css实现div不定宽高垂直水平居中解决方案
    前端面试题目大全(附答案)
    移动Web开发
    jquery 给iframe里的元素添加事件
    Jquery实现可拖动进度条demo
  • 原文地址:https://www.cnblogs.com/Hi-blog/p/SeMF.html
Copyright © 2011-2022 走看看