Skip to content
This repository has been archived by the owner on Feb 11, 2022. It is now read-only.

Commit

Permalink
更新部署文档
Browse files Browse the repository at this point in the history
  • Loading branch information
ihacku committed Mar 29, 2018
1 parent 1954c0b commit 228d24d
Showing 1 changed file with 141 additions and 44 deletions.
185 changes: 141 additions & 44 deletions docs/install.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,99 @@
# 部署文档
----------
## 服务器准备
## 服务器资源需求参照表

所有服务和后端均为跨平台解决方案,可为Windows或Linux或混合使用
所有程序均为跨平台解决方案,可 Windows 或 Linux 混合使用

| 要求 | 版本 | 数量 |
| -------- | -----: | -----: |
| Mongodb | 3.x |1|
| Es集群 | 5.x | 3+主机数/1000 |
| Server集群 | |主机数/1000 |
|WebServer||1|
| 要求 | 版本要求 | 数量 |
| :------: | :----: | :----: |
| MongoDB | 3.x |1|
| Elasticsearch 集群 | 5.x | 3 + 主机数/1000 |
| server 集群 | |主机数/1000 |
|web||1|

## Es集群配置
以5000台服务器为例子,需准备好8台服务器并安装好jar [下载地址][1] 和elasticsearch [下载地址][2]
## 部署流程

部署 MongoDB (3.x,驭龙不兼容2.x版本);
部署 Elasticsearch (5.x,驭龙暂不兼容6.x版本);
启动 MongoDB 、Elasticsearch;
修改 web 的配置,启动 web ,在引导界面根据提示初始化数据库、规则等;
启动 server(服务端);
部署 daemon (守护进程),启动 agent(客户端)。

### 部署 MongoDB (3.x,驭龙不兼容2.x版本);

下载对应安装包 https://www.mongodb.com/download-center?jmp=nav#community

以 centos 上部署为例,如果报错,请去掉 --fork 查看原因。

```
mkdir /var/lib/mongodb/ && mkdir /var/log/mongodb && wget https://sec.ly.com/mirror/mongodb-linux-x86_64-3.6.3.tgz && tar -xvzf mongodb-linux-x86_64-3.6.3.tgz && mongodb-linux-x86_64-3.6.3/bin/mongod --dbpath /var/lib/mongodb/ --logpath /var/log/mongodb.log --fork --bind_ip 10.0.0.134
```

从 MongoDB 3.6版本开始,出于安全考虑,如果不指定实例绑定ip,默认是 bind 到 localhost (127.0.0.1)的。

**但是驭龙 MongoDB 这边必需 bind_ip 指定非 localhost (127.0.0.1)的本机ip,否则后面会出错。**

> MongoDB 服务器需配置防火墙策略只允许 Server 集群和 Web 服务器的连接。
### 部署 Elasticsearch (5.x,驭龙暂不兼容6.x版本)

下载安装[jre](https://www.java.com/zh_CN/download/manual.jsp)依赖, 因为官网下载较慢,这边缓存了一份。

```
wget https://sec.ly.com/mirror/jre-8u161-linux-x64.rpm && yum -y localinstall jre-8u161-linux-x64.rpm
```

下载ES并解压

```
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.tar.gz && tar -zxvf elasticsearch-5.6.8.tar.gz -C /opt
```

Elasticsearch 不建议以 root 权限运行,新建一个非 root 权限用户,-p 后跟自行设定的密码

```
groupadd elasticsearch && useradd elasticsearch -g elasticsearch -p ElasticSearch666
```

修改文件夹及内部文件的所属用户及组为 elasticsearch:elasticsearch

```
chown -R elasticsearch:elasticsearch /opt/elasticsearch-5.6.8
```

centos7 以下的系统需编辑 config/elasticsearch.yml 添加

```
bootstrap.system_call_filter: false
```

启动es

```
su - elasticsearch -c '/opt/elasticsearch-5.6.8/bin/elasticsearch -d'
```

curl请求下确认ES启动成功

```
curl -XGET -s "http://localhost:9200/_cluster/health?pretty"
```

#### ES集群部署

如果只有几百台机器,单节点ES就足够;部署实例较多的话,ES就需要集群部署了。

以5000台服务器为例子,需准备好8台服务器左右。如果单ES实例配置较高,数量可以减少,可根据服务器资源情况调整节点角色和配置。

- client node 1台(10.100.100.100)
- master node 2台(10.100.100.101-102)
- data node 其余的5台(10.100.100.103-107)

> 根据实际情况调整节点角色和配置,如果只有几百台机器,单节点ES就足够。
**配置文件:**
`client node`

##### client node

```
cluster.name: yulonghids
node.name: client-node-1
Expand All @@ -30,7 +102,8 @@ node.data: false
# 监听的IP地址
network.host: 10.100.100.100
```
`master node`
##### master node

```
cluster.name: yulonghids
Expand All @@ -43,7 +116,8 @@ node.data: true
network.host: 10.100.100.101
discovery.zen.ping.unicast.hosts: ["10.100.100.100"]
```
`data node`
##### data node

```
cluster.name: yulonghids
Expand All @@ -56,58 +130,81 @@ network.host: 10.100.100.103
discovery.zen.ping.unicast.hosts: ["10.100.100.100"]
```

> Es服务器需**设置防火墙**只允许集群之间和Server以及Web服务器的连接(9200,9300端口)。
> ES服务器需配置防火墙策略只允许集群之间和Server以及Web服务器的连接(9200,9300端口)。
### web 配置

- 将 web 目录拷贝到 WebServer 服务器上,单台机器测试也可以都在一台机子上。

- 修改 web 的配置,必须改名为 app.conf

`mv yulong-hids/web/conf/app-config-sample.conf yulong-hids/web/conf/app.conf`
`vi yulong-hids/web/conf/app.conf`

## MongoDB配置
安装运行实例即可无需其他操作。[下载地址][3]
> MongoDB服务器需**设置防火墙**只允许Server集群和Web服务器的连接。
主要是改3个地方

## WebServer安装向导
管理密码 passwordhex 是密码的32位MD5值;

- 将web目录拷贝到WebServer服务器上
- 修改配置文件里的管理密码(MD5)、TwoFactorAuthKey、mongodb链接、es client node地址
- 控制台启动web.exe后通过浏览器访问进入向导过程,根据向导提示进行即可
TwoFactorAuthKey 是开启二次验证后,敏感操作都需要Google Authenticator生成的动态口令做二次验证;

> TwoFactorAuthKey使用Google Authenticator,需在手机中安装此APP并自行定义一个base32编码的密钥(如图),开启后敏感操作均需通过此APP的动态密码进行二次验证。
mongodb ip:port 修改为 MongoDB 之前 bind 的 ip:27017,ES修改为ES实例的 ip:9200;

如果需要 web 运行在其他端口,还需要修改对应的 HTTPPort 和 HTTPSPort。

#### 启动 web

可以直接用 YSRC 编译好的[版本](https://github.com/ysrc/yulong-hids/releases),也可以参照[编译指南](./docs/build.md)自行编译。

cd 进 web 目录
`cd yulong-hids/web/`

`./web` 启动 web,如果是下的编译好的二进制需要赋予执行权限 `chmod +x web/web`

如果能正常访问,可以放到后台去运行。

`nohup ./web &`

win 版本控制台运行 web.exe 后通过浏览器访问进入向导过程,根据向导提示进行即可。

> TwoFactorAuthKey 使用 Google Authenticator,需在手机中安装并导入生成的base32编码的密钥(如图),具体生成方式见 app.conf 注释,开启后敏感操作均需通过生成的动态口令进行二次验证。
![](./auth.png)

## Server集群
将server.exe拷贝到各Server集群服务器上。
运行参数:server.exe -db 10.100.100.200:27017 -es 10.100.100.100:9200
## server 集群
将 server 二进制文件拷贝到各 server 集群服务器上。
`server -db 10.0.0.134:27017 -es 10.100.100.100:9200`

db 跟MongoDB地址端口,es 跟 Elasticsearch 地址端口。

> Server会在33433端口开放RPC服务,请保持此端口与所有Agent机器通信畅通。
> server会在33433端口开放RPC服务,请保持此端口与所有Agent机器通信畅通。
## Agent安装
完成以上所有步骤且没有任何报错后即可开始安装Agent,建议小规模部署测试**确定稳定后**再批量覆盖
## agent 部署
完成以上所有步骤且没有任何报错后即可开始安装 agent,建议小规模部署测试**确定稳定后**再灰度部署

```
# 在主机列表添加处可查看自动生成的安装命令
# 例WebServer为http://10.100.100.254:8080
# Windows安装命令
# 例 web 地址为为http://10.100.100.254,netloc 后跟的ip即为 web 的ip
# Windows 安装命令
cd %SystemDrive% & certutil -urlcache -split -f http://10.100.100.254/json/download?type=daemon^&system=windows^&platform=64^&action=download daemon.exe & daemon.exe -netloc 10.100.100.254:443 -install
# 手动卸载
net stop yulong-hids & C:\yulong-hids\daemon.exe -uninstall
# Linux安装命令(依赖libpcap,未安装的需先编译安装libpcap
# Linux 安装命令(依赖libpcap,未安装的需先安装libpcap
wget -O /tmp/daemon http://10.100.100.254/json/download?type=daemon\&system=linux\&platform=64\&action=download;chmod +x /tmp/daemon;/tmp/daemon -install -netloc 10.100.100.254:443
# 手动卸载
service yulong-hids stop & /usr/yulong-hids/daemon -uninstall
#调试可以使用,ip跟web的ip
agent 10.100.100.254 debug
```
> 此系统规则仅适合服务器,请不要安装在个人办公机上。
> Daemon会开放监听tcp 65512端口用于接收任务,请保持此端口不被禁止
> Agent会本地监听udp 65530端口用于接收进程创建信息
> 目前驭龙系统的设计仅适合服务器场景,不适合部署在线下办公环境 ;
> daemon 会开放监听 tcp 65512 端口用于接收任务,请保持此端口不被禁止;
> agent 会本地监听 udp 65530 端口用于接收进程创建信息
## 开始使用

部署完成后默认为观察模式(建议1-3天),在此模式下所有警报都不会提示仅在后台进行统计,由于此系统规则定义中有首次出现的概念,在关闭观察模式后会有大量的结果需要人工审核,处置完结果后就可以开始正式使用了,具体功能介绍可查看[使用帮助](./help.md)




部署完成后默认为观察模式(建议1-3天),在此模式下所有警报都不会提示仅在后台进行统计。

[1]: https://sec.ly.com/mirror/jre-8u131-windows-x64.exe
[2]: https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-5
[3]: https://sec.ly.com/mirror/mongodb-win32-x86_64-2008plus-ssl-3.4.0-signed.msi
由于驭龙系统规则定义中有首次出现的概念,在关闭观察模式后会有大量的结果需要人工审核,处置完结果后就可以开始正式使用了,具体功能介绍可查看[使用帮助](./help.md)

0 comments on commit 228d24d

Please sign in to comment.