OSSEC(一)
OSSEC(一)
0.前言
这篇文章主要是进行OSSEC的了解以及相关安装和搭建,这里分为了一个主机win和一个centos7的agent安装,以及centos7的server安装,参考链接为
1 | |
虽然是参考,但是自己对整体步骤进行了更加详细的描述;也对过程进行了更加精致的阐述,也对会出现的问题进行了解决,希望能够给到一定的帮助
1.OSSEC兴起
在谈起Ossec前首先清楚EDR(端点威胁检测与响应)是一种安全技术,旨在监控和保护计算机终端设备免受恶意活动的影响。该技术被广泛应用于威胁检测、攻击溯源以及响应处理努力、终端控制等多种安全场景,帮助组织及时发现和应对恶意活动,并提供有关安全事件的详细信息和分析报告。
而Ossec是一款开源的跨平台的准EDR入侵检测响应系统,能够很好的实商业版本EDR的大部分功能
2.OSSEC产品定位
OSSEC 可以监控各种系统和应用程序生成的日志,并实时分析这些日志以检测潜在的安全事件。它可以帮助组织及时发现异常活动、潜在的入侵行为或其他安全威胁
OSSEC 可以监控关键系统文件和目录的完整性,通过比较文件的哈希值来检测是否有未经授权的更改。这有助于发现潜在的恶意软件、未经授权的访问或其他对系统完整性的威胁
OSSEC 提供了入侵检测系统的功能,可以识别和报告可能的入侵行为。它使用规则和模式匹配技术来检测已知的攻击模式或异常行为,并生成警报以通知安全团队
OSSEC 可以生成实时警报,通知安全团队有关潜在的安全事件。它还提供了响应机制,可以触发自动化响应或通知相关人员进行进一步的调查和处理
OSSEC 是一个开源项目,具有高度可扩展性和定制化能力。用户可以根据自己的需求添加自定义规则、插件和报警方式,以适应不同的环境和安全要求
3.Ossec_server安装
首先我们需要进行数据库的基本环境搭建,由于之前已经在该环境上搭建了mysql类型数据库,这里直接进行相关的初始化和有关库的安装即可
1 | |
剩下那我们在github中抓取相应的压缩包,进行解压与重命名操作:
1 | |
执行启动安装脚本
1 | |
启动脚本后,会进行相关问题的安装配置询问,安装是需求进行安装即可
选项说明:
1 | |
配置完安装脚本之后,按回车键就开始进行编译安装,如果需要改变OSSEC的配置,可以等安装完成后,编辑ossec.conf配置文件进行修改,并重启ossec进程使其生效
这里遇到了一个问题,由于系统中安装了两个版本的openssl(老毛病了,之前就因为这个导致自己的zabbix一直存在问题,这里也是冲突导致了ossec安装一直不成功
1 | |
由于多个版本拿到openssl库,导致了编译过程中的冲突,猜测这里执行删除报的命令进行解决,使得ossec能够正确地链接到合适的OpenSSL库
1 | |
直接删除开发包,确实是行得通的,最后也是成功的进行了编译安装
4.Ossec_agent安装
初始化环境安装,安装编译库
1 | |
1 | |
执行启动安装脚本
1 | |
启动脚本后,会进行相关问题的安装配置询问,安装是需求进行安装即可
选项说明:
1 | |
首先下载win_agent版本安装程序
1 | |
输入OSSEC-Server IP地址和通信密钥
密钥的生成会在下一个小节进行阐述
5.Server与Agent通信
通过以上步骤,我们完成了对Ossec客户端和服务端的相关安装,接下来就是进行两者的通信连接,server与agent之间的建立通信需要通过认证,server需要为agent端生成腾讯密钥并导入agent后才能完成信任关系,并且server需要开放udp 1514腾讯端口,用以接收agent上报的信息
首先需要配置agent配置文件内容指向server IP,由于前面在安装的时候,我们就直接输入了server的ip地址,这里就不用修改
1 | |
1 | |
1 | |
选项说明:
1 | |
1 | |
选项说明:
1 | |
1 | |
检查Agent是否可以通信
1 | |
明显是出了问题,这里一开始我以为是我再配置的过程中有问题,所以重新配置了一个006给agent,取名为centos7_1
很明显,客户端这边是能收到信息的,因此排除是在设置通信的过程问题,所以进行排错处理,参考链接:
1 | |
该链接包含了OSSEC Agent和Server无法连接的常用检查流程,有比较大的参考性,按照检查流程,首先确保网络联通
1 | |
网络连接没问题,接下来重启server和agent
1 | |
agent:
server:
最后再次执行list_agents –c的相关指令
成功导入,window则按照前面的流程再走一遍即可
首先点击save进行保存
保存成功后会显示我们在server上所注册的内容,这与刚才的实例centos7_1的反馈一致,接下来点击右上角的manage标题,点击start ossec按钮,进行开启操作
最后查看server执行list_agents –c进行查看
6.Server MySQL存储事件
在server的配置当中,其所支持的数据库目前有三种,Mysql、Postgresql以及Sqllite,我们可以选择吧日志告警等相关信息都存入到我们所选择的数据库中,这里进行数据库的安装内容
首先我们登录Mysql后首先创建数据库对应的ossec用户,密码设置为了ossec
1 | |
之后建立ossec数据库。配置权限用户为ossec,并且设置相应的权限
1 | |
导入OSSEC数据库表结构 schema 文件保存在源码目录,首先查看是否有相关的mysql.schema文件
1 | |
接下来进行导入并查看是否导入成功
1 | |
1 | |
到这里就编译并激活了Mysql存储了,这里需要注意,由于mysql的一些版本问题,存在编译安装后,启动存在报错的情况,比如:
这就导致我们无法启动ossec服务,会告诉我们配置有问题,因此这里我是重新新建一个新的虚拟机环境进行了新的数据库mysql的安装,才最终达到成功的效果:
1 | |
最后重新搭建mysql环境后达到成功的效果,果然是之前mysql编译安装的问题
在完成了需更换编译后,我们就需要在主配置文件ossec.conf的最后增加Mysql数据库的配置即可,也就是添加ip地址、数据库名称、数据用户名称以及密码等内容:
1 | |
1 | |
最后成功运行,但是这并不代表是完全成功,我们需要查看日志内容
1 | |
查看到两个问题:
第一个问题是自己的问题,ossec的数据用户密码设置的时候打错了,重新修改了回来,这里也是立马就完善了
查看到ossec-dbd: Connected to database ‘ossec’ at ‘127.0.0.1’.则代表我们连接成功,接下来我们查看第二个问题:
这个显示是ossec-remoted组件遇到了一个关于syslog访问列表的问题。错误消息指出在syslog的访问列表中没有允许的IP地址或网络,为来解决这个问题,我们需要修改配置文件,找到syslog区域,添加allowed-ips标签即可
1 | |
最后修改效果:
排除所有错误,接下来就是进行启动:
1 | |
最后查看数据库的报警信息:
1 | |