EAK运维架构审计Linux事件
架构图(如下):
Auditbeat介绍:Auditbeat是一种轻量级的数据收集器,可以收集linux审计框架的数据、监控文件完整性,您可以将其安装在服务器上,以审核系统上的用户和进程的活动。 例如,您可以使用Auditbeat从Linux Audit Framework收集和集中审核事件。 您还可以使用Auditbeat来检测对关键文件(如二进制文件和配置文件)的更改,Auditbeat是一种Elastic Beat。 它基于libbeat框架架构:整个架构分采集器和存储、查询三个部分。【采集】:采集器使用Auditbeat进行审计日志采集【存储】:采集后的日志直接输出到ElasticSearch【查询】:查询使用Kibana与ElasticSearch对接,进行日志可视化分析场景(审计):1.实时监控系统进程2.系统文件属性事件3.系统用户登陆事件4.系统用户执行命令5.系统用户事件审计6.系统安装所需安装包官网链接:https://www.elastic.co/guide/en/beats/auditbeat/7.4/index.html
下载:Linux System Package::7.4.2):curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-7.4.2-linux-x86_64.tar.gz:7.4.2):curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-linux-x86_64.tar.gz:7.4.2):://artifacts.elastic.co/downloads/kibana/kibana-7.4.2-linux-x86_64.tar.gz
解压:tar -xvf auditbeat-7.4.2-linux-x86_64.tar.gztar -xvf elasticsearch-7.4.2-linux-x86_64.tar.gztar -xvf kibana-7.4.2-linux-x86_64.tar.gz
禁用:系统守护进程 auditd 会影响 Auditbeat Audited 模块的正常使用,所以必须将其禁用。service auditd stop #停止systemctl disable auditd.service #禁用
配置Java环境(ES)yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-develjava -version
ElasticSearch:配置并启动ES(配置文件如下图):ulimit -a #此时我们默认的Open Files 是1024,需要调整限制vim /etc/security/limits.conf添加如下内容:* soft nofile 65536* hard nofile 131072* soft nproc 2048* hard nproc 4096vim /etc/sysctl.conf添加以下内容vm.max_map_count=655360 #设置单个JVM下支撑线程数然后如下:sysctl -p #使其生效ES不允许用root启动,所以需要创建普通用户EAK然后启动ES~useradd EAK #创建用户chown EAK.EAK /usr/local/elasticsearch -R #修改用户属性#相对路径./bin/elasticsearch-setup-passwords interactive #开启安全认证 输入Y然后设置各个用户密码使用普通用户启动ES:su - EAK -c /usr/local/elasticsearch/bin/elasticsearch #启动验证:建议直接用web输入密码访问9200端口验证ES Config:#################################### Http #####################################http.port: 9200network.host: 0.0.0.0 #定义访问地址http.max_content_length: 100mb#################################### Node #####################################node.name: node-1 #定义节点名字cluster.initial_master_nodes: ["node-1"]#################################### security #####################################xpack.security.enabled: true #开启密码认证xpack.security.transport.ssl.enabled: true#################################### Paths ####################################path.data: /usr/local/elasticsearch/datapath.logs: /usr/local/elasticsearch/logs############## Memory #################设置内存熔断参数,防止写入或查询压力过高导致OOM#indices.breaker.total.limit: 30%##indices.breaker.request.limit: 6%##indices.breaker.fielddata.limit: 3%##调小查询使用的cache,避免cache占用过多的jvm内存,具体数值可根据使用场景调整#indices.queries.cache.count: 500##indices.queries.cache.size: 5%##适当增大写入buffer和bulk队列长度,提高写入性能和稳定性#indices.memory.index_buffer_size: 15%###读写文件方式#index.store.type: niofs
Kibana:配置好kibana的配置文件后直接启动:./bin/kibana --allow-root #允许root启动
#设置kibana启动端口server.port: 9090#允许访问IP地址的网段server.host: "0.0.0.0"#将kibana设置为中文i18n.locale: "zh-CN"#设置es地址elasticsearch.hosts: ["http://127.0.0.1:9200"]#xpack认证配置xpack.security.encryptionKey: "something_at_least_32_characters"xpack.reporting.encryptionKey: "b_random_string"#配置es访问密码elasticsearch.username: "kibana"elasticsearch.password: ""#使用高德地图map.tilemap.url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}'#Kibana刚启动时等待Elasticsearch的时间,单位mselasticsearch.startupTimeout: 5000#Elasticsearch等待分片响应的时间elasticsearch.requestTimeout: 30000
启动成功后,我们直接访问Kibana服务(如下)需要密码验证 端口:9090 用户为:elastic
AuditBeat:./auditbeat test config -e #测试配置./auditbeat setup --dashboards #手动加载模板 模板路径为:kibana下的11个json配置文件自动加载配置:setup.dashboards.enabled: true #自动加载模板
auditbeat.modules:- module: auditd# Load audit rules from separate files. Same format as audit.rules(7).audit_rule_files: [ '${path.config}/audit.rules.d/*.conf' ]audit_rules: |-a exit,always -F arch=b64 -F euid=0 -S execve -k root_acct-a exit,always -F arch=b32 -F euid=0 -S execve -k root_acct-a exit,always -F arch=b64 -F euid>=1000 -S execve -k user_acct-a exit,always -F arch=b32 -F euid>=1000 -S execve -k user_acct- module: file_integritypaths:- /bin- /usr/bin- /sbin- /usr/sbin- /etc- module: systemdatasets:- host # General host information, e.g. uptime, IPs- login # User logins, logouts, and system boots.- package # Installed, updated, and removed packages- process # Started and stopped processes- socket # Opened and closed sockets- user # User informationexclude_files:- '(?i)\.sw[nop]$'- '~$'- '/\.git($|/)'state.period: 12huser.detect_password_changes: truelogin.wtmp_file_pattern: /var/log/wtmp*login.btmp_file_pattern: /var/log/btmp*setup.template.settings:index.number_of_shards: 1setup.template.name: "auditbeat"setup.template.pattern: "auditbeat-*"#setup.template.enabled: 'false' #这里表示是否启用模板setup.kibana:host: "127.0.0.1:9090"# setup.dashboards.enabled: trueoutput.elasticsearch:# # Array of hosts to connect to.hosts: ["127.0.0.1:9200"]username: "elastic"password: ""index: "other.auditbeat-%{[beat.version]}-%{+yyyy.MM.dd}"processors:- add_host_metadata: ~- add_cloud_metadata: ~
shell命令过滤:示出Kibana user.name,process.executable,process.args和tags选定的字段。过滤器是user.name: root和auditd.data.syscall: execve。每秒刷新一次数据命令审计:
TTY审核当系统中发生TTY事件时,Auditbeat Audited模块也可以拾取它们。配置system-authPAM配置文件以启用TTY音频。只有根TTY事件将被实时记录。用户事件通常会缓冲到exit。TTY审计需要捕获内置外壳命令等pwd,test等。追加以下内容以/etc/pam.d/system-auth对所有用户启用审核-
session required pam_tty_audit.so enable=*
实时监控系统进程审计 系统一些正在使用的pid
系统文件属性事件审计 执行 可读 可写 权限
系统用户登陆事件审计 成功用户 & 失败用户
系统用户执行命令审计 普通用户 & 管理员
系统用户事件审计 对用户 新增 改密 删除
系统安装所需安装包审计 安装mariadb安装包
演示完毕,欢迎大家关注哈,学到即赚到,谢谢支持
