Security Monkey安装指南:构建云端安全监控系统
前言
Security Monkey是Netflix开源的云端安全监控与合规审计工具,能够持续监控AWS、GCP等云平台的配置变更,并识别潜在的安全风险。本文将详细介绍如何在Linux系统上部署Security Monkey服务。
系统准备
环境要求
在开始安装前,请确保系统满足以下条件:
- Ubuntu/Debian系列操作系统
- Python 3.6及以上版本
- PostgreSQL数据库服务
- 至少2GB可用内存
基础环境配置
首先创建必要的日志目录并设置权限:
sudo mkdir /var/log/security_monkey
sudo mkdir /var/www
sudo chown -R `whoami`:www-data /var/log/security_monkey/
sudo chown www-data /var/www
启用universe软件源并安装依赖包:
sudo add-apt-repository universe
sudo apt update
sudo apt install -y python3 python3-dev python3-venv postgresql postgresql-contrib libpq-dev nginx process-manager git libffi-dev gcc redis-server
数据库配置
PostgreSQL安装与设置
Security Monkey支持本地PostgreSQL或云数据库服务。本地安装步骤如下:
sudo apt install postgresql postgresql-contrib
配置数据库用户和schema:
CREATE DATABASE "secmonkey";
CREATE ROLE "securitymonkeyuser" LOGIN PASSWORD 'securitymonkeypassword';
CREATE SCHEMA secmonkey;
GRANT Usage, Create ON SCHEMA "secmonkey" TO "securitymonkeyuser";
set timezone TO 'GMT';
select now();
源码部署
获取代码并创建虚拟环境
建议将代码放在/usr/local/src目录下:
cd /usr/local/src
sudo git clone --depth 1 --branch develop https://github.com/Netflix/security_monkey.git
sudo chown -R `whoami`:www-data /usr/local/src/security_monkey
cd security_monkey
设置Python虚拟环境:
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
python3 -m venv venv
source venv/bin/activate
安装Python依赖
升级pip并安装依赖包:
pip install --upgrade setuptools pip
pip install --upgrade urllib3[secure] # 解决安全警告
pip install -r requirements.txt
根据云平台选择安装额外依赖:
- GCP平台需要额外安装google-compute-engine等包
- OpenStack需要安装cloudaux[openstack]
最后安装Security Monkey本体:
pip install .
重要提示:所有后续操作都必须在虚拟环境中执行,可通过source venv/bin/activate
重新激活环境。
前端构建
安装Dart SDK
Security Monkey前端使用Dart开发,需要先安装Dart SDK:
curl https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
curl --output ./dart_1.23.0-1_amd64.deb https://storage.googleapis.com/download.dartlang.org/linux/debian/pool/main/d/dart/dart_1.23.0-1_amd64.deb
sudo dpkg -i dart_1.23.0-1_amd64.deb
编译前端代码
cd /usr/local/src/security_monkey/dart
/usr/lib/dart/bin/pub get
/usr/lib/dart/bin/pub build
部署编译后的静态文件:
sudo mkdir -p /usr/local/src/security_monkey/static/
sudo /bin/cp -R /usr/local/src/security_monkey/dart/build/web/* /usr/local/src/security_monkey/static/
sudo chgrp -R www-data /usr/local/src/security_monkey
应用配置
修改配置文件
编辑env-config/config.py
文件,关键配置项包括:
FQDN
: 服务访问地址(IP或域名)SQLALCHEMY_DATABASE_URI
: 数据库连接字符串SECRET_KEY
: 随机密钥,用于加密会话SECURITY_PASSWORD_SALT
: 密码加密盐值
数据库连接字符串格式示例: postgresql://securitymonkeyuser:securitymonkeypassword@localhost:5432/secmonkey
初始化数据库
执行数据库迁移命令创建表结构:
export SECURITY_MONKEY_SETTINGS=/usr/local/src/security_monkey/env-config/config.py
monkey db upgrade
后续步骤
完成上述安装后,下一步需要:
- 配置监控的云平台账号
- 设置定时任务执行监控扫描
- 配置Nginx反向代理
- 设置邮件/Slack等告警通知
Security Monkey的强大之处在于其可扩展的监控架构,用户可以根据需要添加自定义的审计规则和监控项,构建符合自身业务需求的安全监控体系。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考