手动部署
企业推荐安装方式,支持分布式部署
手动部署时,重复部署将会覆盖已有服务。
环境要求⚓︎
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服务网络相通
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 | 静态资源文件 |
默认配置格式
#管理平台访问地址,手动部署可不填,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 | 一键停止脚本 |
启动例子
./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. 启动
启动例子
./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
[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区域查询数据文件配置 | 否(使用默认即可) | 文件路径 |