上一篇我们着重介绍了OSSEC的部署安装,而本篇主要想挖掘的是OSSEC程序目录放置的各种实用的工具和文件,了解他们是干什么的有助于更深的了解OSSEC的工作机制。
程序目录默认安装在 /var/ossec
,对核心子目录重点展示
/bin
此目录主要存放OSSEC的可执行程序文件
核心执行文件主要负责整个OSSEC入侵检测响应系统的运作,如下图所示
ossec-logcollector
ossec-analysisd
ossec-syscheckd
ossec-maild
ossec-execd
ossec-remoted
OSSEC入侵检测响应框架服务器端需要集中管理Agent,所以需要熟悉客户端管理工具的使用,方便系统运维
manage_agent - 客户端密钥管理
/var/ossec/manage_agent -e
/var/ossec/manage_agent -r
/var/ossec/manage_agent -i
/var/ossec/manage_agent -f
agent_control - 客户端控制
/var/ossec/agent_control -l
/var/ossec/agent_control -i
/var/ossec/agent_control -R
/var/ossec/agent_control -r -u
list_agents - 客户端状态
/var/ossec/list_agents -a
/var/ossec/list_agents -c
/var/ossec/list_agents -n
clear_stats - 统计信息清零
/var/ossec/clear_stats -d
/var/ossec/clear_stats -w
OSSEC在分析日志之前,通常需要对日志使用正则表达式提取内容字段,为保证正则解析的有效性,需要进行日志正则匹配测试,熟悉规则测试工具的使用,事半功倍
ossec-logtest - 规则测试、漏报/误报规则调优
加载指定定配置文件
/var/ossec/bin/ossec-logtest -c /var/ossec/etc/ossec.conf
测试读取单行日志
echo "Dec 30 04:15:28 server sshd[80558]: Failed password for invalid user test from 119.28.50.163 port 33020 ssh2" | /var/ossec/bin/ossec-logtest
测试读取日志文件
cat /var/log/secure | /var/ossec/bin/ossec-logtest -a
OSSEC内置正则表达式测试
OSSEC系统本身没有完善的UI界面,需要借助第三方工具做效果展现,但内置支持安全报告输出,可以弥补没有UI界面的不足
ossec-reportd - 事件统计报告
告警数据生成安全报告
cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd
过滤条件输出安全报告
cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd -f group authentication_failure
过滤条件 ossec-reportd -f
支持属性
OSSEC操作管理的基础内容,包含进程启动、停止、重启,以及进程状态和内置功能开关
ossec-control - OSSEC进程管理、功能开关管理
ossec进程启动
/var/ossec/bin/ossec-control start
ossec进程停止
/var/ossec/bin/ossec-control stop
ossec进程重启
/var/ossec/bin/ossec-control restart
ossec进程状态
/var/ossec/bin/ossec-control status
ossec功能(ossec-dbd、ossec-csyslog,ossec-agentlessd)开关激活
/var/ossec/bin/ossec-control enable
ossec功能(ossec-dbd、ossec-csyslog,ossec-agentlessd)开关关闭
/var/ossec/bin/ossec-control disable
OSSEC不仅支持在各种操作系统上部署Agent,进行安全管理,也支持Agentless(无代理模式)的远程管理,譬如交换机、路由器这样的设备,这些设备一般无法安装Agent程序,但通常都支持SSH, ossec-agentlessd通过功能脚本实现无代理模式的集中管理
ossec无代理设备通信处理
[root@server agentless]# cd /var/ossec/agentless
[root@server agentless]# ll
总用量 60
-r-xr-x--- 1 root ossec 2412 12月 23 21:03 main.exp
-r-xr-x--- 1 root ossec 2086 12月 23 21:03 register_host.sh
-r-xr-x--- 1 root ossec 5240 12月 23 21:03 ssh_asa-fwsmconfig_diff
-r-xr-x--- 1 root ossec 1445 12月 23 21:03 ssh.exp
-r-xr-x--- 1 root ossec 5360 12月 23 21:03 ssh_foundry_diff
-r-xr-x--- 1 root ossec 867 12月 23 21:03 ssh_generic_diff
-r-xr-x--- 1 root ossec 1060 12月 23 21:03 ssh_integrity_check_bsd
-r-xr-x--- 1 root ossec 1067 12月 23 21:03 ssh_integrity_check_linux
-r-xr-x--- 1 root ossec 772 12月 23 21:03 sshlogin.exp
-r-xr-x--- 1 root ossec 1473 12月 23 21:03 ssh_nopass.exp
-r-xr-x--- 1 root ossec 5222 12月 23 21:03 ssh_pixconfig_diff
-r-xr-x--- 1 root ossec 1350 12月 23 21:03 su.exp
OSSEC系统对产生的日志需要做有序管理,实现日志压缩、日志发送以及日志写入数据库的功能
监控客户端连接和压缩日志
负责发送syslog日志
负责把告警日志写入数据库
当前客户网络主机、服务器数量庞大,单纯的手动导出导入代理通讯密钥基本无法满足需求,ossec-authd就是解决批量生成代理密钥的工具
自动加载通信密钥加入Agent主机
OSSEC最牛的地方,就是功能设计带有前瞻性,结合使用者聪明的发散思维,同一个功能实现的安全需求截然不同,比如CDB列表,CDB列表是个键值对列表文件(需要ossec-makelists编译后使用),基于CDB列表目前安全实现有基线异常发现和恶意域名通讯异常发现等,高级篇会有专门的篇幅介绍
ossec-makelists - 负责编译CDB键值对数据库
监控网站和域名解析状态变更脚本
/etc
/etc 目录主要存放OSSEC系统的配置文件
[root@server etc]# cd /var/ossec/etc
[root@server etc]# ll
总用量 180
-r--r----- 1 root ossec 188 12月 28 11:21 client.keys
-rw-r----- 1 root ossec 138049 12月 23 21:03 decoder.xml
-rw-r----- 1 root ossec 3156 12月 23 21:03 internal_options.conf
-rw-r----- 1 root ossec 320 12月 21 21:12 local_internal_options.conf
-r--r----- 1 root ossec 388 12月 23 21:03 localtime
-rw-r----- 1 root ossec 8090 12月 25 16:09 ossec.conf
-rw-r----- 1 root root 104 12月 23 21:03 ossec-init.conf
drwxrwx--- 2 root ossec 4096 12月 23 21:03 shared
重点
/logs
目录 /logs
主要存放ossec程序的运行日志、主动响应日志以及事件告警日志
[root@server etc]# cd /var/ossec/logs
[root@server logs]# ll
总用量 1280
-rw-rw---- 1 ossec ossec 625512 1月 15 15:59 active-responses.log
drwxr-x--- 4 ossec ossec 4096 1月 15 00:00 alerts
drwxr-x--- 4 ossec ossec 4096 1月 15 00:00 archives
drwxr-x--- 4 ossec ossec 4096 1月 15 00:00 firewall
-rw-rw---- 1 ossec ossec 661514 1月 15 16:51 ossec.log
重点
/queue
目录 /queue
存放一些需要缓存处理的队列数据,比如完整性检测和后门检测的缓存数据等
[root@server etc]# cd /var/ossec/queue
[root@server queue]# ll
总用量 36
drwxr-x--- 2 ossecr ossec 4096 12月 29 10:42 agent-info
drwxr-x--- 2 ossec ossec 4096 12月 21 21:12 agentless
drwxrwx--- 2 ossec ossec 4096 12月 29 14:26 alerts
drwxr-x--- 5 ossec ossec 4096 12月 21 23:32 diff
drwxr-x--- 2 ossec ossec 4096 12月 21 21:17 fts
drwxr-x--- 2 ossec ossec 4096 12月 29 14:26 ossec
drwxr-x--- 2 ossecr ossec 4096 12月 28 11:23 rids
drwxr-x--- 2 ossec ossec 4096 12月 28 11:24 rootcheck
drwxr-x--- 2 ossec ossec 4096 12月 29 07:42 syscheck
/active-response
目录 /active-response
存放主动响应的脚本文件
root@server bin]# pwd
/var/ossec/active-response/bin
[root@server bin]# ll
总用量 60
-r-xr-x--- 1 root ossec 1711 12月 23 21:03 disable-account.sh
-r-xr-x--- 1 root ossec 3952 12月 23 21:03 firewalld-drop.sh
-r-xr-x--- 1 root ossec 7277 12月 23 21:03 firewall-drop.sh
-r-xr-x--- 1 root ossec 3539 12月 23 21:03 host-deny.sh
-r-xr-x--- 1 root ossec 800 12月 23 21:03 ip-customblock.sh
-r-xr-x--- 1 root ossec 1617 12月 23 21:03 ipfw_mac.sh
-r-xr-x--- 1 root ossec 1385 12月 23 21:03 ipfw.sh
-r-xr-x--- 1 root ossec 1290 12月 23 21:03 npf.sh
-r-xr-x--- 1 root ossec 1157 12月 23 21:03 ossec-pagerduty.sh
-r-xr-x--- 1 root ossec 1739 12月 23 21:03 ossec-slack.sh
-r-xr-x--- 1 root ossec 1636 12月 23 21:03 ossec-tweeter.sh
-r-xr-x--- 1 root ossec 1949 12月 23 21:03 pf.sh
-r-xr-x--- 1 root ossec 542 12月 23 21:03 restart-ossec.sh
-r-xr-x--- 1 root ossec 1353 12月 23 21:03 route-null.sh
/rules
目录 /rules
存放OSSEC内置支持的设备、应用,系统安全检测规则文件
root@server rules]# ls
apache_rules.xml hordeimp_rules.xml named_rules.xml proxmox-ve_rules.xml sysmon_rules.xml
apparmor_rules.xml ids_rules.xml netscreenfw_rules.xml psad_rules.xml systemd_rules.xml
arpwatch_rules.xml imapd_rules.xml nginx_rules.xml pure-ftpd_rules.xml telnetd_rules.xml
asterisk_rules.xml linux_usbdetect_rules.xml nsd_rules.xml racoon_rules.xml trend-osce_rules.xml
attack_rules.xml local_rules.xml openbsd-dhcpd_rules.xml roundcube_rules.xml unbound_rules.xml
cimserver_rules.xml mailscanner_rules.xml openbsd_rules.xml rules_config.xml vmpop3d_rules.xml
cisco-ios_rules.xml mcafee_av_rules.xml opensmtpd_rules.xml sendmail_rules.xml vmware_rules.xml
clam_av_rules.xml ms1016_usbdetect_rules.xml ossec_rules.xml smbd_rules.xml _concentrator_rules.xml
courier_rules.xml msauth_rules.xml owncloud_rules.xml solaris_bsm_rules.xml vpopmail_rules.xml
dnsmasq_rules.xml ms_dhcp_rules.xml pam_rules.xml sonicwall_rules.xml vsftpd_rules.xml
dovecot_rules.xml ms-exchange_rules.xml php_rules.xml spamd_rules.xml web_appsec_rules.xml
dropbear_rules.xml ms_firewall_rules.xml pix_rules.xml squid_rules.xml web_rules.xml
exim_rules.xml ms_ftpd_rules.xml policy_rules.xml sshd_rules.xml wordpress_rules.xml
firewalld_rules.xml ms_ipsec_rules.xml postfix_rules.xml symantec-av_rules.xml zeus_rules.xml
firewall_rules.xml ms-se_rules.xml postgresql_rules.xml symantec-ws_rules.xml
ftpd_rules.xml mysql_rules.xml proftpd_rules.xml syslog_rules.xml
本章节系统介绍了OSSEC目录结构与实用工具,下一个章节会重点讲解主配置文件ossec.conf以及内部可选参数配置文件internal_options.conf的细节内容