跳转至

手动部署

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

环境要求⚓︎

OS/Arch Architecture Soft Requirement Minimize Hardware
linux/amd64 x86_64 wget curl tar unzip 2Core/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.2.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.2.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 配置文件
mongo mongo需要的初始化数据文件
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
[file]
#可选值: local:本地存储 aws:文件服务器
Location = aws
#aws文件服务存储配置
[file.aws]
Addr = 
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.2.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.2.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. 启动与停止

启动参数

image.png

启动例子

./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.2.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.2.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. 启动

启动参数

image.png

启动例子

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

停止

./stop.sh  

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

参考:代理服务部署

5、分布式部署⚓︎

架构如下:

image.png

  • 分布式部署方式:

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

  • 分布式部署作用

    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
[file]
# local:本地存储 aws:文件服务器
Location = aws
#aws文件服务存储配置
[file.aws]
Addr = http://ns-minio:9000
AccessKey = vi75e
SecretKey = hFimqbrlBE
Bucket = next-scan
[http]
Port = 80
#运行级别 debug、release、test
Mode = release
[other]
#ip区域查询数据文件配置
XDBPath = ./assets/ip2region.xdb

6-2、配置项说明⚓︎

配置项 描述 是否必填 格式
serverUrl 管理平台访问地址;若使用域名请配置 手动部署时可不填;docker环境下并且需部署代理节点时必填(宿主机ip) http://域名(宿主机IP)
[redis] Addr redis地址 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] MgoUrl mongo数据库访问url mongodb://用户名:密码@ip1:端口,ip2:端口/数据库名称
[mongo] DbName 数据库名称 字符串
[mongo] PoolLimit 连接池大小 否;不填默认:4096, 数字
[mongo] MgoTimeout 写超时 数字,如:5(表示5秒)
[etcd] Endpoints etcd服务器地址 (域名)ip:端口;多个逗号隔开
[etcd] Username etcd用户名 字符串
[etcd] Password etcd密码 字符串
[etcd] DialTimeout 连接超时时间 数字时间,如:5000000000(表示5000000000纳秒(5秒))
[log] Level 日志级别 否,不填默认:info panic、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
[file] Location 文件上传模式,admin单机可使用local aws或者local
(aws:单独文件服务器,local:本地服务)
[file.aws] Addr 文件服务器地址, Location为aws时有效 如:http://ns-minio:9000
[file.aws] AccessKey access秘钥 字符串
[file.aws] SecretKey secret秘钥 字符串
[file.aws] Bucket 文件桶 字符串
[http] Port 管理平台服务端口 否;不填默认:80 端口号
[http] Mode 管理平台运行级别 否;不填默认:release debug、release、test
[other] XDBPath ip区域查询数据文件配置 否(使用默认即可) 文件路径