当前位置:   article > 正文

centos7搭建OpenCTI平台教程【完整无坑版】

opencti

前言:关于OpenCTI的简介就不相信说明了,本篇重点在搭建环节。之前调研过OpenCTI平台一段时间,但是建立在官网的demo体验之上,最近抽出一些时间自己搭建了OpenCTI平台,整个搭建过程没有花费太多时间,搭建步骤及遇到的问题及解决办法总结如下,希望能对大家的入门提供一些力所能及的帮助。

一、四种部署方式

官网提供了四种部署方式,详情请参考官方文档

  • 虚拟机
  • docker部署(对容器进行了很好的管理,部署更方便,强烈推荐此方式)
  • 云部署
  • 手动部署(不推荐,坑太多)

二、部署环境

  • Linux系统:CentOS Linux release 7.2.1511 (Core)
  • 1 核CPU(Linux命令:cat /proc/cpuinfo| grep “cpu cores”| uniq
  • 16个物理CPU (Linux命令:cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l
  • 32G内存(Linux命令:cat /proc/meminfo
  • 536G硬盘(Linux命令:fdisk -l | grep Disk
  • docker版本:Docker version 17.12.0-ce, build c97c6d6
  • docker-compose版本:Docker Compose version v2.1.1

三、部署步骤

  1. 安装需要的包
yum install -y yum-utils device-mapper-persistent-data lvm2 git
  • 1
  1. 安装docker
  • 下载docker
curl -sSL https://get.daocloud.io/docker | sh
  • 1
  • 启动docker
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 1
  • 2
  • 验证docker是否安装成功
docker -v
  • 1
  1. 安装docker-compose
  • 下载docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • 1
  • 修改docker-compose文件夹权限
chmod +x /usr/local/bin/docker-compose
  • 1
  • 建立链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  • 1
  • 验证docker-compose是否安装成功
docker-compose -v
  • 1
  • 下载OpenCTI
  • 创建一个openCTI文件夹如/home/open_cti/
  • 进入/home/open_cti/,然后下载OpenCTI
cd /home/open_cti/
git clone https://github.com/OpenCTI-Platform/docker.git
  • 1
  • 2
  1. 配置环境变量参数
  • 通过jq工具配置环境变量,下载jq
yum install -y jq
  • 1
  • 出现的问题及解决方式
    出现的问题无法下载jq,Error: Nothing to do
    解决的方法
    (1)下载epel-release:yum install epel-release
    (2)修改/etc/yum.repos.d/epel.repo,将enabled =0修改为enabled=1
  1. 批量写入待修改的数据
(cat <<EOF
OPENCTI_ADMIN_EMAIL=admin@opencti.io
OPENCTI_ADMIN_PASSWORD=PLEASECHANGEME
OPENCTI_ADMIN_TOKEN=$(cat /proc/sys/kernel/random/uuid)
MINIO_ROOT_USER=$(cat /proc/sys/kernel/random/uuid)
MINIO_ROOT_PASSWORD=$(cat /proc/sys/kernel/random/uuid)
RABBITMQ_DEFAULT_USER=guest
RABBITMQ_DEFAULT_PASS=guest
CONNECTOR_HISTORY_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_EXPORT_FILE_STIX_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_EXPORT_FILE_CSV_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_IMPORT_FILE_STIX_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_IMPORT_REPORT_ID=$(cat /proc/sys/kernel/random/uuid)
EOF
) > .env
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

注意:修改以下两个参数

OPENCTI_ADMIN_EMAIL=登录账户邮箱
OPENCTI_ADMIN_PASSWORD=登录账户密码
  • 1
  • 2
  1. 使配置生效
source .env
  • 1
  1. 由于ES对内存要求较高,因此需要调整机器内存参数
echo "vm.max_map_count=1048575" >> /etc/sysctl.conf
  • 1
  1. docker-compse拉取镜像
docker-compose pull
  • 1

注意:
在拉取镜像的过程中可能会存在问题:Error response from daemon: Get https://docker.elastic.co/v2/: x509: certificate signed by unknown authority

解决方式:
(1)获取证书信息

openssl s_client -connect docker.elastic.co:443 -showcerts
  • 1

(2)拷贝证书内容,注:从-----BEGIN CERTIFICATE----- 到 -----END CERTIFICATE-----的全部内容,cert中包含两个-----BEGIN CERTIFICATE----- 和两个-----END CERTIFICATE-----,这两部分内容都要拷贝(也即以下内容全部拷贝)。
-----BEGIN CERTIFICATE-----
something…
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
something…
-----END CERTIFICATE-----
(3)在/etc/pki/ca-trust/source/anchors/目录下创建一个文件:cert.crt,将(2)中拷贝的证书信息复制到该文件中。
(4)更新证书信任

update-ca-trust
  • 1

(5)重启docker【重要】

systemctl restart docker.service
  • 1

如果拉取过程中没有报错就可以继续执行下一步了。

  1. docker-compose启动。
docker-compose up -d
  • 1
  1. 如果没有报错则可以访问到oencti登录页http://IP:8080。
  • 登录账号:.env中的OPENCTI_ADMIN_EMAIL对应的值(admin@opencti.io)
  • 登录密码:env中的OPENCTI_ADMIN_PASSWORD对应的值(如admin)
    在这里插入图片描述
  1. 目前没有显示数据,通过添加一些外部连接器,可以接入外部数据。以
    AlienVault连接器为例。
  • 登录AlienVault,获取AlienVault分配给用户的API KEY。
    在这里插入图片描述
  • 获取CONNECTOR_ID,通过在线方式生成UUID。
  • 修改docker-compose.yml文件,添加以下内容。
    注:拉取更新时间参数:ALIENVAULT_INTERVAL_SEC可以根据实际情况自定义
connector-alienvault:
    image: opencti/connector-alienvault:5.2.1
    environment:
      - OPENCTI_URL=http://opencti:8080
      - OPENCTI_TOKEN=${OPENCTI_ADMIN_TOKEN}
      - CONNECTOR_ID=自动生成的UUID
      - CONNECTOR_TYPE=EXTERNAL_IMPORT
      - CONNECTOR_NAME=AlienVault
      - CONNECTOR_SCOPE=alienvault
      - CONNECTOR_CONFIDENCE_LEVEL=15 # From 0 (Unknown) to 100 (Fully trusted)
      - CONNECTOR_UPDATE_EXISTING_DATA=false
      - CONNECTOR_LOG_LEVEL=info
      - ALIENVAULT_BASE_URL=https://otx.alienvault.com
      - ALIENVAULT_API_KEY=注册alienvault之后生成的API的KEY
      - ALIENVAULT_CREATE_OBSERVABLES=true
      - ALIENVAULT_CREATE_INDICATORS=true
      - ALIENVAULT_PULSE_START_TIMESTAMP=2020-05-01T00:00:00                  # BEWARE! Could be a lot of pulses!
      - ALIENVAULT_REPORT_TYPE=threat-report
      - ALIENVAULT_REPORT_STATUS=New
      - ALIENVAULT_GUESS_MALWARE=false                                        # Use tags to guess malware.
      - ALIENVAULT_GUESS_CVE=false                                            # Use tags to guess CVE.
      - ALIENVAULT_EXCLUDED_PULSE_INDICATOR_TYPES=FileHash-MD5,FileHash-SHA1  # Excluded Pulse indicator types.
      - ALIENVAULT_ENABLE_RELATIONSHIPS=true                                  # Enable/Disable relationship creation between SDOs.
      - ALIENVAULT_ENABLE_ATTACK_PATTERNS_INDICATES=true                      # Enable/Disable "indicates" relationships between indicators and attack patterns
      - ALIENVAULT_INTERVAL_SEC=3600
    restart: always
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  1. 重新进行镜像更新和拉取。
docker-compose up -d
  • 1
  1. 数据接入成功。

参考链接

[1] https://www.opencti.io/en/
[2] https://luatix.notion.site/OpenCTI-Public-Knowledge-Base-d411e5e477734c59887dad3649f20518
[3] https://mp.weixin.qq.com/s/O5g314Nc_fO_NsO3NX_ZJg
[4] https://www.uuidgenerator.net/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/201349
推荐阅读
相关标签
  

闽ICP备14008679号