-
Notifications
You must be signed in to change notification settings - Fork 299
Install(中文)
WatchAD属于360内部自研系统,许多存储相关服务使用了360集团内部的私有云,以下建议配置方法可能存在错误或者不合理之处,如有问题请反馈issue,我会及时解决。
WatchAD需要的数据存储依赖较多,这里推荐使用项目中已经配置好的Docker一键启动脚本,在项目根目录下执行以下命令即可:
docker-compose up
之后将在本地启动 rabbitmq、logstash、elasticsearch、redis、mongo。
因为所有存储相关服务都安装到了本地,默认配置为简化版架构,项目的架构将使用下图:
使用docker启动的环境只能用于临时测试,单机可能无法承担较大的数据量。如果需要线上部署,请修改配置
{project_home}/settings/database_config.py
将各个服务地址替换为你的实际内网服务地址。
在项目根目录下执行:
pip3 install -r requirements.txt
我们的分析基础是所有域控的所有事件日志,所以首先需要打开域控上的安全审核选项,让域控记录所有类型的事件日志。这里以 windows server 2008为例,在 本地安全策略 -> 安全设置 -> 本地策略 -> 审核策略,打开所有审核选项:
首先,打开我们提供的配置文件 {project_home}/settings/winlogbeat/winlogbeat.yml
,修改output.logstash
的 hosts
字段值为你安装Logstash的IP和端口(默认5044),假设你安装Logstash的IP为10.10.10.10,此时配置文件为:
winlogbeat.event_logs:
- name: Security
ignore_older: 1h
output.logstash:
hosts: ["10.10.10.10:5044"]
前往下载对应版本的winlogbeat,建议版本为6.2,其它版本的字段可能有变动,存在不兼容的可能性。
解压之后,使用刚才修改的配置文件 winlogbeat.yml
替换掉原本默认的配置文件 winlogbeat.yml
。
接下来按照官网的教程正常安装即可。
注意!事件日志并不会在各个域控之间同步,所以我们必须收集所有域控的所有事件日志,否则会产生误报和漏报。
WatchAD使用python将一些配置信息自动化完成:
Usage: WatchAD.py <options> [settings]
Options:
-h, --help show this help message and exit
--install 执行WatchAD初始化安装,在次之前请确保已完整环境安装和配置。
-d DOMAIN, --domain=DOMAIN
A FQDN domain name of detection.
-s SERVER, --ldap-server=SERVER
Server address for LDAP search. e.g: dc01.corp.com
-u USERNAME, --domain-user=USERNAME
Username for LDAP search. e.g: CORP\peter
-p PASSWORD, --domain-passwd=PASSWORD
Password for LDAP search.
--check 检查各个数据库连接状态、消息队列状态
--start 启动检测引擎
--restart 重启检测引擎
--stop 停止引擎 (删除现有消息队列,防止数据量过大造成积压)
--status 查看当前引擎状态
直接执行安装命令,如:
python3 WatchAD.py --install -d 360.cn -s dc01.360.cn -u admin -p password
正常启动WatchAD,需要满足以下要求:
- 所有存储相关的依赖都正确安装和配置
- 能够访问安装时指定的LDAP Server
- supervisor正确安装可使用
- 正确安装python3.6,且存在 /usr/bin/python3 软连接
python3 WatchAD.py --start
完成之后,会使用supervisor
对python
进程进行托管,WatchAD的命令行只是对supervisor的命令进行了一个简单封装,引擎的启动关闭本质上是supervisor任务的启动关闭。
WatchAD依赖了rabbitmq、logstash、elasticsearch、redis和mongo,如果你想使用现有的存储服务和MQ等,请直接修改 {project_home}/settings/database_config.py
配置信息,数据管道Logstash
的配置可参考 {project_home}/settings/logstash/logstash.conf
,实际的配置需要根据你的架构环境更改。