NextScan(飞刃)安装教程

目录

手动部署

环境要求⚓︎

1、管理平台⚓︎

2、扫描服务⚓︎

3、爬虫服务(按需部署)⚓︎

4、代理服务(按需部署)⚓︎

5、分布式部署⚓︎

6、配置文件内容解读⚓︎

6-1、配置文件格式⚓︎

6-2、配置项说明⚓︎

Docker部署

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

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

1-2、启动与停止⚓︎

1-3、访问⚓︎

1-4、配置项修改⚓︎

2、单宿主机部署⚓︎

2-1、管理平台⚓︎

2-2、扫描服务⚓︎

2-3、爬虫服务⚓︎

代理部署

一、代理服务安装(手动部署)⚓︎

二、代理服务安装(docker部署)⚓︎

1、需要先删掉旧服务⚓︎

2、添加管理端的conf.ini⚓︎

3、修改docker-compose.yaml⚓︎

4、重新启动各docker容器⚓︎

5、下载安装代理服务⚓︎


手动部署

企业推荐安装方式,支持分布式部署
手动部署时,重复部署将会覆盖已有服务。

环境要求⚓︎

OS/ArchArchitectureSoft RequirementMinimize Hardware
linux/amd64x86_64wget curl tar unzip2Core/8GB RAM/ 60G HDD
名称版本是否必要
mongo= 4.2.*
etcd>=3.0
文件存储ceph、minio(支持s3协议)
名称版本单机集群(cluster)哨兵(Sentinel)
redis>=4.0✔️

需要先安装好以上版本数据库及中间件。

  • mongo数据库首次使用,需初始化
    • 下载数据文件,解压后使用db.js(init/db.js)。
    • 进入 mongo shell
      ##默认数据库为:NextScan,可自行修改同时部署管理平台时修改配置文件。
      use NextScan;
      load("db.js文件绝对路径");
      

国内下载地址:数据文件

1、管理平台⚓︎

启动要求:和etcd、redis服务网络相通

1. 下载

wget https://github.com/tongcheng-security-team/NextScan/releases/download/v1.1.0/ns-admin_linux_x86_64.tar.gz
tar zxvf ns-admin_linux_x86_64.tar.gz && cd ns-admin_linux_x86_64

# or 国内下载:
wget  https://oss.17usoft.com/nextscan/download/v1.1.0/ns-admin_linux_x86_64.tar.gz
tar zxvf ns-admin_linux_x86_64.tar.gz && cd ns-admin_linux_x86_64

文件名描述
assets资源文件
conf.ini配置文件
mongomongo需要的初始化数据文件
ns-admin二进制可执行文件
start.sh一键启动脚本
stop.sh一键停止脚本
web静态资源文件

2. 修改配置文件

默认配置格式

#管理平台访问地址,手动部署可不填,docker部署则必填,若使用域名请配置:http://域名
serverUrl =
#redis配置
[redis]
Addr = 127.0.0.1:6379
PoolSize = 20
MinIdleConns = 5
Password =
#可选配置:MaxConnAge、ReadTimeout、WriteTimeout(int64)
#mongo配置
[mongo]
MgoUrl = mongodb://127.0.0.1:27017/NextScan
DbName = NextScan
PoolLimit = 50
MgoTimeout = 30
#etcd配置
[etcd]
Endpoints = 127.0.0.1:2379
Username =
Password =
#5秒
DialTimeout = 5000000000
#可选配置:DialKeepAliveTime、DialKeepAliveTimeout
[log]
#日志级别 panic、fatal、error、warn、info、debug、trace
Level = info
Stdout = true
#日志文件存储
[log.file]
Filename = ./ns-admin.log
MaxSize = 100
MaxBackups = 30
MaxAge = 30
Compress = false
[aws]
#文件存储服务配置
Addr =
PublicAddr =
AccessKey =
SecretKey =
Bucket =
[http]
Port = 80
#运行级别 debug、release、test
Mode = release
[other]
#ip区域查询数据文件配置
XDBPath = ./assets/ip2region.xdb

可只修改etcd、mongo、redis地址,其他使用默认即可。详细查看具体配置项说明

3. 启动与停止

./start.sh #启动
./stop.sh #停止

4. 访问

http://你的ip
用户名:admin
默认密码:nextscan

2、扫描服务⚓︎

启动要求:管理平台启动成功,和管理平台服务及etcd、redis服务网络相通。

1. 下载

wget https://github.com/tongcheng-security-team/NextScan/releases/download/v1.1.0/ns-scan_linux_x86_64.tar.gz
tar zxvf ns-scan_linux_x86_64.tar.gz && cd ns-scan_linux_x86_64

# or 国内下载:
wget https://oss.17usoft.com/nextscan/download/v1.1.0/ns-scan_linux_x86_64.tar.gz
tar zxvf ns-scan_linux_x86_64.tar.gz && cd ns-scan_linux_x86_64
文件名描述
ns-scan二进制可执行文件
start.sh一键启动脚本
stop.sh一键停止脚本

2. 启动与停止

启动参数

启动例子

./start.sh -gintranet -shttp://127.0.0.1
 #或者
./start.sh -gintranet -shttp://域名

停止

./stop.sh  

3、爬虫服务(按需部署)⚓︎

启动要求:管理平台启动成功,和管理平台服务及etcd、redis服务网络相通。

1. 下载

wget  https://github.com/tongcheng-security-team/NextScan/releases/download/v1.1.0/ns-craw_linux_x86_64.tar.gz
tar zxvf ns-craw_linux_x86_64.tar.gz && cd ns-craw_linux_x86_64

# or 国内下载:
wget https://oss.17usoft.com/nextscan/download/v1.1.0/ns-craw_linux_x86_64.tar.gz
tar zxvf ns-craw_linux_x86_64.tar.gz && cd ns-craw_linux_x86_64
文件名描述
ns-craw二进制可执行文件
start.sh一键启动脚本
stop.sh一键停止脚本
lib依赖文件夹

2. 启动

启动参数

启动例子

./start.sh -gintranet -shttp://127.0.0.1
#或者
./start.sh -gintranet -shttp://域名

停止

./stop.sh  

4、代理服务(按需部署)⚓︎

参考:代理服务部署

5、分布式部署⚓︎

架构如下:

  • 分布式部署方式:

    按以上方式正常添加相应节点(扫描,爬虫)部署即可,部署后系统会自动增加节点

  • 分布式部署作用

    1) 可以将项目(一组任务)分散到多个节点上,如果其中一个节点出现问题,其他节点仍然可以继续运行扫描任务;

    2) 大大缩短扫描时间,提高扫描效率;

6、配置文件内容解读⚓︎

6-1、配置文件格式⚓︎

#管理平台访问地址,手动部署可不填,docker环境下并且需部署代理节点时必填(宿主机ip),若使用域名请配置:http://域名
serverUrl =
#redis配置
[redis]
Addr = 127.0.0.1:6379
PoolSize = 20
MinIdleConns = 5
Password =
#可选配置:MaxConnAge、ReadTimeout、WriteTimeout(int64)
#mongo配置
[mongo]
MgoUrl = mongodb://127.0.0.1:27017/NextScan
DbName = NextScan
PoolLimit = 50
MgoTimeout = 30
#etcd配置
[etcd]
Endpoints = 127.0.0.1:2379
Username =
Password =
#5秒
DialTimeout = 5000000000
#可选配置:DialKeepAliveTime、DialKeepAliveTimeout
[log]
#日志级别 panic、fatal、error、warn、info、debug、trace
Level = info
Stdout = true
#日志文件存储
[log.file]
Filename = ./ns-admin.log
MaxSize = 100
MaxBackups = 30
MaxAge = 30
Compress = false
[aws]
#文件存储服务配置
Addr =
PublicAddr =
AccessKey =
SecretKey =
Bucket =
[http]
Port = 80
#运行级别 debug、release、test
Mode = release
[other]
#ip区域查询数据文件配置
XDBPath = ./assets/ip2region.xdb

6-2、配置项说明⚓︎

配置项描述是否必填格式
serverUrl管理平台访问地址;若使用域名请配置手动部署时可不填;docker环境下并且需部署代理节点时必填(宿主机ip)http://域名(宿主机IP)
[redis] Addrredis地址ip:端口
[redis] PoolSize连接池大小否;不填则默认:10*cpu个数数字
[redis] MinIdleConns创建时有用的最小空闲连接数数字
[redis] MaxConnAge连接存活时长,从创建开始计时,超过指定时长则关闭连接否;默认为0,即不关闭存活时长较长的连接数字时间,如:5000000000(表示5000000000纳秒(5秒))
[redis] ReadTimeout读超时否;不填默认:3秒,-1表示取消超时数字时间,如:5000000000(表示5000000000纳秒(5秒))
[redis] WriteTimeout写超时否;不填默认:3秒, -1表示取消超时数字时间,如:5000000000(表示5000000000纳秒(5秒))
[mongo] MgoUrlmongo数据库访问urlmongodb://用户名:密码@ip1:端口,ip2:端口/数据库名称
[mongo] DbName数据库名称字符串
[mongo] PoolLimit连接池大小否;不填默认:4096,数字
[mongo] MgoTimeout写超时数字,如:5(表示5秒)
[etcd] Endpointsetcd服务器地址(域名)ip:端口;多个逗号隔开
[etcd] Usernameetcd用户名字符串
[etcd] Passwordetcd密码字符串
[etcd] DialTimeout连接超时时间数字时间,如:5000000000(表示5000000000纳秒(5秒))
[log] Level日志级别否,不填默认:infopanic、fatal、error、warn、info、debug、trace
[log] Stdout是否在控制台输出日志false或者true
[log.file] Filename日志文件路径如:./ns-admin.log
[log.file] MaxSize文件最大大小否; 不填默认:0数字
[log.file] MaxAge备份日志的数量否;不填默认:0数字
[log.file] Compress是否压缩false或者true
[aws] Addr文件服务器地址如:http://ns-minio:9000
[aws] AccessKeyaccess秘钥字符串
[aws] SecretKeysecret秘钥字符串
[aws] Bucket文件桶字符串
[http] Port管理平台服务端口否;不填默认:80端口号
[http] Mode管理平台运行级别否;不填默认:releasedebug、release、test
[other] XDBPathip区域查询数据文件配置否(使用默认即可)文件路径

Docker部署

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

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

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

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

# 国内下载
wget https://oss.17usoft.com/nextscan/download/v1.1.0/mongo.tar.gz
wget https://oss.17usoft.com/nextscan/download/v1.1.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)为一次性执行,首次执行成功就会退出,再次启动报错不影响正常使用可忽略,属于正常情况。

启动成功后如下

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

#文件存储服务配置
[aws]
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 您的配置文件路径:/go/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

 

代理部署

本节主要介绍在手动部署和docker部署方式下怎么安装代理服务

注意:目前代理服务自身不支持docker容器启动,仅支持安装包手动部署,以下均为使用安装包部署!

一、代理服务安装(手动部署)⚓︎

前提条件:管理平台启动成功,并且和etcd、redis服务网络相通。8888端口未占用

1. 下载

wget https://github.com/tongcheng-security-team/NextScan/releases/download/v1.1.0/ns-proxy_linux_x86_64.tar.gz
tar zxvf ns-proxy_linux_x86_64.tar.gz && cd ns-proxy_linux_x86_64

# or 国内下载:
wget https://oss.17usoft.com/nextscan/download/v1.1.0/ns-proxy_linux_x86_64.tar.gz
tar zxvf ns-proxy_linux_x86_64.tar.gz && cd ns-proxy_linux_x86_64
文件名描述
ns-proxy二进制可执行文件
start.sh一键启动脚本
stop.sh一键停止脚本
scan.crt自签证书
scan.key私钥

2. 启动与停止

启动参数

启动例子

./start.sh -gintranet -shttp://127.0.0.1
#或者
./start.sh -gintranet -shttp://域名

停止

./stop.sh  

代理服务自己的端口为:8888,不可更改。

二、代理服务安装(docker部署)⚓︎

docker部署方式下使用代理需保证代理服务所在机器能访问到admin和etcd 服务,所以请按以下步骤安装

1、需要先删掉旧服务⚓︎

docker-compose down

2、添加管理端的conf.ini⚓︎

如果没有需先创建该文件,增加admin和etcd服务的端口映射(如下所示), 服务端会自动下发etcd配置给代理服务

conf.ini 文件内容

serverUrl = http://宿主机ip:admin映射端口
#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 = 宿主机ip: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


#文件存储服务配置

[aws]
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

3、修改docker-compose.yaml⚓︎

etcd 添加映射端口,能让外部通过宿主机ip:port访问到容器下的etcd;并且挂载conf.ini

  etcd:
    image: "bitnami/etcd:3.5.6"
    ports:
      - '2379:2379'

  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

4、重新启动各docker容器⚓︎

docker-compose up

5、下载安装代理服务⚓︎

下载

wget https://github.com/tongcheng-security-team/NextScan/releases/download/v1.1.0/ns-proxy_linux_x86_64.tar.gz

tar zxvf ns-proxy_linux_x86_64.tar.gz && cd ns-proxy_linux_x86_64


# or 国内下载:

wget https://oss.17usoft.com/nextscan/download/v1.1.0/ns-proxy_linux_x86_64.tar.gz

tar zxvf ns-proxy_linux_x86_64.tar.gz && cd ns-proxy_linux_x86_64

启动

./start.sh -gintranet -s宿主机ip:admin映射端口

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值