跳转至

Docker部署

1、Docker Compose(一键式部署)⚓︎

请提前安装docker-compose,docker-compose 使用文档

1-1、下载安装文件⚓︎

wget https://github.com/tongcheng-security-team/NextScan/releases/download/v1.2.0/mongo.tar.gz
wget https://github.com/tongcheng-security-team/NextScan/releases/download/v1.2.0/docker-compose.yaml
tar zxvf mongo.tar.gz

# 国内下载
wget https://oss.17usoft.com/nextscan/download/v1.2.0/mongo.tar.gz
wget https://oss.17usoft.com/nextscan/download/v1.2.0/docker-compose.yaml
tar zxvf mongo.tar.gz
  • docker-compose.yaml :配置文件
  • mongo:存放mongo启动和初始化文件

1-2、启动与停止⚓︎

  • docker-compose.yaml 启动时确保和mongo在同一目录下
docker-compose up -d #启动
docker-compose stop #停止
docker logs 容器ID #查看日志
docker ps -a  #查看是否正常运行

注意:启动后容器ns-minio-buckets(镜像minio/mc)为一次性执行,首次执行成功就会退出,再次启动报错不影响正常使用可忽略,属于正常情况。

启动成功后如下

image.png

1-3、访问⚓︎

http://你的宿主机ip # 默认80端口
用户名:admin
默认密码:nextscan
登录系统后,查看节点管理->节点管理,查看有对应两个节点则表示服务都启动成功。扫描节点首次启动需要下载同步资源比较慢,请耐心等待(大约5分钟)

1-4、配置项修改⚓︎

如有特殊需求可自行修改docker-compose.yaml 文件

docker-compose.yaml⚓︎

redis密码配置

# 默认密码:3d7a6447328dcde6
redis:
  command:
    --requirepass "你的密码"

mongo数据库配置

mongo:
    environment:
      ### admin 身份验证数据库用户名及密码
      MONGO_INITDB_ROOT_USERNAME: admin数据库用户名
      MONGO_INITDB_ROOT_PASSWORD: admin数据库密码
      ### NextScan数据库用户名
      MONGO_USERNAME: 你的用户名
      # NextScan数据库密码
      MONGO_PASSWORD: 你的密码

如果你之前已经启动过一次,有了mongo容器,那么这个方法无法更改mongo数据库密码,需要通过命令行修改密码。

etcd密码配置

etcd:
    environment:
      # etcd root用户密码
      - ETCD_ROOT_PASSWORD=你的密码

扫描服务对应配置

scan:
    command:
      #extranet(外网环境)intranet(内网环境)
      --group=extranet
      #管理服务器地址
      --server=http://ns-admin

爬虫服务对应配置

craw:
    command:
      #extranet(外网环境)intranet(内网环境)
      --group=extranet
      #管理服务器地址
      --server=http://ns-admin

如果修改了docker-compose.yaml文件,需要在管理端服务器创建完整conf.ini文件并且挂载配置,按需修改文件中的配置项,用于覆盖默认配置

管理配置文件conf.ini⚓︎

文件格式

#redis配置
[redis]
Addr = ns-redis:6379
PoolSize = 20
MinIdleConns = 5
Password = 3d7a6447328dcde6
#MaxConnAge、ReadTimeout、WriteTimeout(int64)


#mongo配置
[mongo]
MgoUrl = mongodb://NextScan:56074e26d5a39aad@ns-mongo:27017/NextScan
DbName = NextScan
PoolLimit = 50
MgoTimeout = 30

#etcd配置
[etcd]
Endpoints = ns-etcd:2379
Username = root
Password = 0117be99f79bf9e2
#5秒
DialTimeout = 5000000000
#DialKeepAliveTime、DialKeepAliveTimeout

#日志配置
[log]
#日志级别 panic、fatal、error、warn、info、debug、trace
Level = info
Stdout = true
#日志文件存储
[log.file]
Filename = ./server.log
MaxSize = 100
MaxBackups = 30
MaxAge = 30
Compress = false

[file]
# local:本地存储 aws:文件服务器
Location = aws
#aws文件存储配置
[file.aws]
#非必填
PublicAddr = http://宿主机IP:9000
Addr = http://ns-minio:9000
AccessKey = vi75e
SecretKey = hFimqbrlBE
Bucket = next-scan

#web服务配置
[http]
Port = 80
#运行级别 debug、release、test
Mode = release

[other]
#ip区域查询数据文件配置
XDBPath = ./assets/ip2region.xdb

挂载配置⚓︎

  web:
    image: "lysec/ns-admin:v1"
    ports:
     - "80:80"
    depends_on:
      - redis
      - mongo
      - etcd
      - minio
      - createbuckets
    container_name: ns-admin
    volumes:
      # 配置文件
    - 你的配置文件路径:/next-scan/conf.ini

登录系统后,查看节点管理->节点管理,查看有对应两个节点则表示服务都启动成功。扫描节点首次启动需要下载同步资源比较慢,请耐心等待(大约5分钟)

2、单宿主机部署⚓︎

请确认已安装并启动docker,并且相关第三方数据库及中间件服务已部署完成

docker network create ns  ##创建自定义网络

2-1、管理平台⚓︎

拉取镜像:

docker image pull lysec/ns-admin:latest

启动前需先创建管理端配置文件(conf.ini) 后续挂载到容器中,文件内容及说明,并且根据实际情况修改配置文件中相关中间件(redis、etcd、mongo等)配置。

启动:

docker run -p 80:80 -v 您的配置文件路径:/next-scan/conf.ini --network ns --name ns-admin -d lysec/ns-admin:latest

访问管理端:

http://宿主机IP(域名)
用户名:admin
默认密码:nextscan

2-2、扫描服务⚓︎

拉取镜像:

docker image pull lysec/ns-scan:latest

启动参数说明:

名称 说明 格式
group 指定节点所在网络环境 extranet(外网环境、intranet(内网环境)
server 指定管理平台地址 http://管理平台地址

启动命令

# 启动命令
docker run  --network ns --name ns-scan -d  lysec/ns-scan:latest --group=网络环境 --server=http://ns-admin

#例子:网络环境为内网的启动命令
docker run  --network ns --name ns-scan -d  lysec/ns-scan:latest --group=intranet --server=http://ns-admin
首次启动需要下载同步资源比较慢,请耐心等待(大约5分钟)。 若在管理平台查看新增节点成功,则成功启动。

2-3、爬虫服务⚓︎

拉取镜像:

docker image pull lysec/ns-craw:latest

启动参数说明:

名称 说明 格式
group 指定节点所在网络环境 extranet(外网环境、intranet(内网环境)
server 指定管理平台地址 http://管理平台地址(此处使用默认即可)

启动命令:

# 启动命令
docker run --network ns --name ns-craw -d  lysec/ns-craw:latest --group=网络环境 --server=http://ns-admin

#例子:网络环境为内网的启动命令
docker run --network ns --name ns-craw -d  lysec/ns-craw:latest --group=intranet --server=http://ns-admin