ossec代理
代理端
OSSEC有两种代理端:可安装的代理端和哑代理端(免安装)。可安装的代理端被安装在主机上,通过OSSEC的加密协议将主机的信息发送到OSSEC服务器。亚代理端则不需在远端主机进行安装。他作为OSSEC管理端的进程存在,通过RPC(ssh或rdp、wmi)的方式收集远端系统的信息。
代理端的管理
通过manage_agents命令可增加一个新的代理端。步骤如下:
1、在OSSEC服务器上运行manage_agents
2、增加一个代理端
3、提取代理端的key值
4、复制key到代理端;
5、在代理端运行manage_agent
6、从服务器导入key值;
7、重启管理端ossec进程;
8、启动代理端
OSSEC服务器上的manage_agents
服务器上的manage_agents提供以下功能:
l 添加一个OSSEC代理端到服务器;
l 提取已添加的代理端的key
l 从服务器移除一个代理端
l 列出服务器上已添加的全部代理端
运行Manage_agents交互界面
Manage_agent需要使用必要的权限运行(如root)
运行Manage_agents:
# /var/ossec/bin/manage_agents
Manage_agents菜单:
****************************************
* OSSEC HIDS v2.5-SNP-100809 Agent manager. *
* The following options are available: *
****************************************
(A)dd an agent (A).
(E)xtract key for an agent (E).
(L)ist already added agents (L).
(R)emove an agent (R).
(Q)uit.
Choose your action: A,E,L,R or Q:
输入字母,然后敲击回车即可触发对应的功能。
添加一个代理端
在选择时,输入a来增加一个代理端。
Choose your action: A,E,L,R or Q: a
这时,需要为新添加的代理端起一个名字。可以用 主机名或者其他的字符串来区分系统。在这里,我们使用agent1.
- Adding a new agent (use '\q' to return to the main menu).
Please provide the following:
* A name for the new agent: agent1
然后,需要输入agent的IP地址。可以是单一的ip地址(如192.168.1.25),或者是一个ip范围(192.168.2.0/24),或是其他。当ip会不断变化(DHCP)或很多系统使用同一ip(NAT)时,输入ip范围是个不错的选择。
* The IP Address of the new agent: 192.168.2.0/24
警告:当使用单一ip时,必须是唯一的。重复的ip将导致问题。但多系统使用同一ip范围。
最后一个配置项是为代理端设置一个ID。Manage_agents将提供一个ID的建议值。这个值是当前系统中可用的ID最小值。ID000被分配给了OSSEC server。如果接受建议,简单敲击回车即可。如果选择其他值,输入后敲击回车即可。
* An ID for the new agent[001]:
最后,你还需要对输入的信息做最终的确认。
Agent information:
ID:002
Name:agent1
IP Address:192.168.2.0/24
Confirm adding it?(y/n): y
Agent added.
然后,Manage_agents将代理端的信息存入/var/ossec/etc/client.keys,然后退出安装界面。
警告:如果这是添加的第一个代理端,需重启OSSEC服务器进程。
/var/ossec/bin/ossec-control restart.
提取代理端key值
添加代理端后,会生成一个key值。需要将它复制到代理端。提取key值,可以通过Manage_agents命令获得。在服务器提供的代理端列表中,输入需要提取的代理端ID即可。需要注意的是ID的数字必须输入全才行。
Choose your action: A,E,L,R or Q: e
Available agents:
ID: 001, Name: agent1, IP: 192.168.2.0/24
Provide the ID of the agent to extract the key (or '\q' to quit): 001
Agent key information for '001' is:
MDAyIGFnZW50MSAxOTIuMTY4LjIuMC8yNCBlNmY3N2RiMTdmMTJjZGRmZjg5YzA4ZDk5m
** Press ENTER to return to the main menu.
Key以字符串的形式进行编码。本例中为MDAyIGFnZW50MSAxOTIuMTY4LjIuMC8yNCBlNmY3N2RiMTdmMTJjZGRmZjg5YzA4ZDk5Mm,字符串中含有客户端的信息。Key值可通过代理端的manage_agents命令添加入代理端。
移除代理端
如果想从服务器移除一个代理端,使用Manage_agents的r选项。然后从列表中选择需要移除的代理端ID,输入,然后回车即可。注意ID需要输入全部数字。
Choose your action: A,E,L,R or Q: r
Available agents:
ID: 001, Name: agent1, IP: 192.168.2.0/24
Provide the ID of the agent to be removed (or '\q' to quit): 001
Confirm deleting it?(y/n): y
Agent '001' removed.
Manage_agents将核实 /var/ossec/etc/client.keys中的代理端信息。文件中存有ID和验证信息,从而避免添加代理端时产生冲突。删除的代理端将不再与OSSEC服务器产生交互。
OSSEC代理端上的Manage_agents
代理端上的Manage_agents提供倒入认证key值的功能:
****************************************
* OSSEC HIDS v2.5-SNP-100809 Agent manager. *
* The following options are available: *
****************************************
(I)mport key from the server (I).
(Q)uit.
Choose your action: I or Q: i
* Provide the Key generated by the server.
* The best approach is to cut and paste it.
*** OBS: Do not include spaces or new lines.
Paste it here (or '\q' to quit): [key extracted via manage_agents on the server]
Agent information:
ID:001
Name:agent1
IP Address:192.168.2.0/24
Confirm adding it?(y/n): y
Added.
** Press ENTER to return to the main menu.
为使配置起作用,需要重启服务端,然后启动代理端。
代理端绑定NAT或使用动态IP(DHCP)
如果代理端IP不断变化或在NAT设备后面,那么需要通过CIDR地址或者使用any IP地址来配置代理端。
DHCP例子
为接收代理端的IP在192.168.2.0/24范围内的变化,只需在设置代理端ip时,使用地址范围 192.168.2.0/24节课。例如:
Please provide the following:
* A name for the new agent: test
* The IP Address of the new agent: 192.168.2.0/24
NAT例子
对于NAT后面的设备,方法同样适用。对于OSSEC服务器来说,NAT后面的代理IP地址是相同对。
例如,你的系统192.168.1.2, 192.168.1.3 还有192.168.1.4在一个NAT服务器的后面,需要连接10.1.1.0/24网络的OSSEC服务器。
这时,你需要配置代理端为10.1.1.0/24端的任意ip(而不是它原始ip)。也可适用any来替代ip或ip范围,允许代理端从任意ip发起连接。
在Manage_agents工具上,使用如下方法添加代理端。
Please provide the following:
* A name for the new agent: agent-1
* The IP Address of the new agent: 10.1.1.0/24
Please provide the following:
* A name for the new agent: agent-2
* The IP Address of the new agent: any
注意:每个代理端必须使用不同的key值。
通过ossec-authd添加代理端
Ossec-authd
Ossec-authd在服务器上安装用于添加代理端以及分发认证key
警告:由于当前暂无认证机制,任何主机都可以连接ossec-authd的监听端口来获取一个OSSEC代理端key。因此,推荐使用ossec管理端防火墙来限制连接请求。
运行ossec-authd,监听1515端口。
/var/ossec/bin/ossec-authd -p 1515
Agent-auth
Agent-auth用于连接ossec-authd实例以获取并安装一个代理端key。
运行agent-auth连接192.168.1.12管理端的1515端口
/var/ossec/bin/agent-auth -m 192.168.1.12 -p 1515
集中化代理端配置
如果你打算远程配置你的代理端,恭喜你从2.1版本之后ossec开始支撑此项功能。集中配置包括完整性检测(syscheckd)、rootkit检测(rootcheck)、日志分析三项功能。
下面说一下怎样使用。
创建代理端配置
首先,创建文件/var/ossec/etc/shared/agent.conf。
在文件中,你可以像在ossec.conf中一样对代理端进行配置。
<agent_config>
<localfile>
<location>/var/log/my.log</location>
<log_format>syslog</log_format>
</localfile>
</agent_config>
但是除此之外需要做一些额外的配置,可以通过代理名称、操作系统、配置文件等限定配置适用范围。
<agent_config name="agent1">
<localfile>
<location>/var/log/my.log</location>
<log_format>syslog</log_format>
</localfile>
</agent_config>
<agent_config os="Linux">
<localfile>
<location>/var/log/my.log2</location>
<log_format>syslog</log_format>
</localfile>
</agent_config>
<agent_config os="Windows">
<localfile>
<location>C:\myapp\my.log</location>
<log_format>syslog</log_format>
</localfile>
</agent_config>
并且只有匹配上的代理端可以读取该配置。这给了我们细粒度配置代理端提供了可能。
配置保存后,管理端将推送配置文件到代理端。但这需要一点时间(因为管理端需要将共享文件读入缓存,并每隔一段时间才会重读一次)。如果重启管理端,推送配置文件的速度将加快。
重启代理端
推送配置文件后,可以通过运行agent_control来查看代理接收配置的情况并远程重启代理端。
# md5sum /var/ossec/etc/shared/agent.conf
MD5 (/var/ossec/etc/shared/agent.conf) = ee1882236893df851bd9e4842007e7e7
# /var/ossec/bin/agent_control -i 200
OSSEC HIDS agent_control. Agent information:
Agent ID: 200
Agent Name: ourhome
IP address: 192.168.0.0/16
Status: Active
Operating system: Linux ourhome 2.6.24-23-generic #1 SMP Mon Jan 26 00..
Client version: OSSEC HIDS v2.1 / ee1882236893df851bd9e4842007e7e7
Last keep alive: Tue Jun 30 08:29:17 2009
Syscheck last started at: Tue Jun 30 04:29:32 2009
Rootcheck last started at: Tue Jun 30 06:03:08 2009
当代理端接收到配置后,Client Version部分会看到agent.conf文件的md5sum值。
注意:Linux系统通常使用md5sum,但其他系统会使用md5来计算文件的哈希。
重启代理端:
# /var/ossec/bin/agent_control -R 200 (where 200 is the agent id)
OSSEC HIDS agent_control: Restarting agent: 200
哑代理
哑代理监控
哑代理监控可以在没有安装代理的情况下为你提供系统的完整性检测(包括路由、防火墙、交换机、Linux\BSD系统)。他可以像我们正常的文件完整性检测一样工作(对checksum的变化做告警)或者做差异对比,明确列出哪里有不同。
哑终端配置项
Agentless用以配置哑终端相关配置项
Frequency表示运行的时间间隔
Host定义用户名和哑终端主机
示例:
<host>root@linux.server.example.com</host>
State定义检查是取周期值还是周期差值
Periodic:由OSSEC进程运行产生周期数值;
Periodic_diff:由脚本输出值与前期运行值比较产生。
Arguments:定义传递给script的参数值
开始使用哑终端:
安装OSSEC之后,需要设置哑终端监控模式:
# /var/ossec/bin/ossec-control enable agentless
然后在需要在接入的主机上配置ssh认证信息。对于思科设备(PIX、路由等)来说,你需要添加额外的参数增加密码。当需要支撑su时,也需要这样做。举例来说,我想增加一个Linux主机(example.net)和一个PIX防火墙(pix.fw.local):
# /var/ossec/agentless/register_host.sh add root@example.net mypass1
*Host root@example.netl added.
# /var/ossec/agentless/register_host.sh add pix@pix.fw.local pixpass enablepass
*Host pix@pix.fw.local added.
# /var/ossec/agentless/register_host.sh list
*Available hosts:
pix@pix.fw.local
root@example.net
注意:register_host.sh是一个shell脚本,shell脚本无法识别的特殊字符需要提前注释掉。
如果想用公钥而不用密码来认证,需要提供NOPASS作为密码,并创建公钥:
产生的公钥会放在/var/ossec/.ssh目录下。之后,使用scp命令复制公钥到远端主机,这样,你得无密码连接操作就完成了。
配置哑终端
全部添加完你的系统后,需要配置OSSEC来监控他们了。默认情况下,有四种哑终端供选用(稍后我们会增加其他类型):
l ssh_integrity_check_bsd
l ssh_integrity_check_linux
l ssh_generic_diff
l ssh_pixconfig_diff
对于前两个来说,需要在配置文件中给出路径清单,OSSEC则在远端设备上完成完整性检测工作。对于ssh_generic_diff来说,还需要在远端设备上配置一些命令才行,OSSEC将在输出结果变化时,进行告警。Ssh_pixconfig_diff则在思科PIX/路由配置变化时产生告警。
对于我们第一个系统(root@example.net),我将每10个小时/bin,/etc,/sbin目录(如果我使用ssh_integrity_check_bsd,也需要提供目录参数):
<agentless>
<type>ssh_integrity_check_linux</type>
<frequency>36000</frequency>
<host>root@example.net</host>
<state>periodic</state>
<arguments>/bin /etc/ /sbin</arguments>
</agentless>
对于PIX系统,配置是这样的:
<agentless>
<type>ssh_pixconfig_diff</type>
<frequency>36000</frequency>
<host>pix@pix.fw.local</host>
<state>periodic_diff</state>
</agentless>
为了举一个ssh_generic_diff的例子,我在root@example.net上增加了ls –la /etc;cat /etc/passwd的监控项;如果需要监控任何网络防火墙或交换机,需要使用ssh_generic_diff选项,并在参数部分列明指令即可。需要使用su命令时,需要在hostname(<host>root@example.net</host>)前面设置use_su参数即可。
<agentless>
<type>ssh_generic_diff</type>
<frequency>36000</frequency>
<host>root@example.net</host>
<state>periodic_diff</state>
<arguments>ls -la /etc; cat /etc/passwd</arguments>
</agentless>
运行完整的安装进程
配置完成后,需要重启OSSEC进程。这时会在看到“Started ossec-agentlessd”的输出。在每个哑终端启动前,OSSEC会检测一下配置清单,以确保所有配置项没有错误。通过/var/ossec/logs/ossec.log文件可以查看所有的错误。如果看到:
2008/12/12 15:20:06 ossec-agentlessd: ERROR: Expect command not found (or bad arguments) for 'ssh_integrity_check_bsd'.
2008/12/12 15:20:06 ossec-agentlessd: ERROR: Test failed for 'ssh_integrity_check_bsd' (127). Ignoring.'
意味着服务器上缺少一个expect库文件(在哑代理端无需安装任何文件)。在Ubuntu上,需要按下述步骤安装
# apt-get install expect
安装expect之后,需要重启OSSEC进程。这时可以看到,
2008/12/12 15:25:19 ossec-agentlessd: INFO: ssh_integrity_check_bsd: root@example.net: Starting.
2008/12/12 15:25:46 ossec-agentlessd: INFO: ssh_integrity_check_bsd: root@example.net: Finished.
告警
你可能看到的一些告警:
对于ssh_generic_diff来说:
OSSEC HIDS Notification.
2008 Dec 12 01:58:30
Received From: (ssh_generic_diff) root@example.net->agentless
Rule: 555 fired (level 7) -> "Integrity checksum for agentless device changed."
Portion of the log(s):
ossec: agentless: Change detected:
35c35
< -rw-r-r- 1 root wheel 34 Dec 10 03:55 hosts.deny
--
> -rw-r-r- 1 root wheel 34 Dec 11 18:23 hosts.deny
-END OF NOTIFICATION
对于PIX来说:
OSSEC HIDS Notification.
2008 Dec 01 15:48:03
Received From: (ssh_pixconfig_diff) pix@pix.fw.local->agentless
Rule: 555 fired (level 7) -> "Integrity checksum for agentless device changed."
Portion of the log(s):
ossec: agentless: Change detected:
48c48
< fixup protocol ftp 21
--
> no fixup protocol ftp 21
100c100
< ssh timeout 30
--
> ssh timeout 50
More changes..
-END OF NOTIFICATION
ossec代理的更多相关文章
- ossec兼容的操作系统
OSSEC兼容以下操作系统和日志格式 操作系统 以下操作系统可安装OSSEC代理 l GNU/Linux (all distributions, including RHEL, Ubuntu, Sl ...
- wazhu之agent功能详解
一.日志数据收集 日志数据收集是从服务器或设备生成的记录中收集的实时过程.此组件可以通过文本文件或Windows事件日志接收日志.它还可以通过远程syslog直接接收日志,这对防火墙和其他此类设备 ...
- 全网最详细的最新稳定OSSEC搭建部署(ossec-server(CentOS7.X)和ossec-agent(CentOS7.X))(图文详解)
不多说,直接上干货! 前言 写在前面的话,网上能够找到一些关于ossec方面的资料,虽然很少,但是总比没有强,不过在实际的使用过程中还是会碰到许多稀奇古怪的问题.整理整理我的使用过程,就当做一篇笔记吧 ...
- 全网最详细的最新稳定OSSEC搭建部署(ossec-server(CentOS6.X)和ossec-agent(CentOS6.X))(图文详解)
不多说,直接上干货! 前言 写在前面的话,网上能够找到一些关于ossec方面的资料,虽然很少,但是总比没有强,不过在实际的使用过程中还是会碰到许多稀奇古怪的问题.整理整理我的使用过程,就当做一篇笔记吧 ...
- 初次接触OSSEC
OSSEC是一款开源的系统监控平台.它集成了HIDS(主机入侵检测).日志监控.安全事件管理(SIM).安全信息和事件管理(SIEM)于一身,结构简单.功能强大的开源解决方案. 主要优点 满足合规性 ...
- Ossec添加Agent端流程总结
(1) 服务器上添加客户端 在服务器上添加客户端,执行如下命令,按照提示进行输入,红色部分是我们输入的: [root@ossec-server logs]# /var/ossec/bin/manage ...
- ossec安装
安装 安装要求 对于Unix系统来说,OSSEC只需要GNU的make.gcc和libc.推荐使用OpenSSL,但仅属于一个可选项.而且,通常您只需在一个系统上做编译操作,然后将二进制程序复制到其他 ...
- OSSEC 架构
OSSEC由很多部分组成,它有一个集中的管理端,用于监控.并接收来自代理.syslog.数据库或无代理设备的日志. 管理端(服务器) 管理端属于OSSEC部署中的中心部分.它存储了文件完整性检测数据库 ...
- centos7下安装ossec
一.前言 OSSEC是一款开源的基于主机的入侵检测系统,可以简称为HIDS.它具备日志分析,文件完整性检查,策略监控,rootkit检测,实时报警以及联动响应等功能.它支持多种操作系统:Linux ...
随机推荐
- jQuery全选反选插件
(function($){ $.fn.check = function(options){ var options = $.extend({ element : "input[name='n ...
- springmvc IDEA
回顾Java平台上Web开发历程来看,从Servlet出现开始,到JSP繁盛一时,然后是Servlet+JSP时代,最后演化为现在Web开发框架盛行的时代.一般接触到一个新的Web框架,都会想问这个框 ...
- openstack常用的一些命令
查看rabbitmq 队列 rabbitmqctl list_queues 复制代码 查看keystone的用户 keystone user-list 复制代码 查看keystone endpoint ...
- Kafka设计解析(四)Kafka Consumer设计解析
转载自 技术世界,原文链接 Kafka设计解析(四)- Kafka Consumer设计解析 目录 一.High Level Consumer 1. Consumer Group 2. High Le ...
- Splay普及版
辣么,我要介绍我自学的\(Splay\)了,虽然跟大佬们讲得会有些重复,但是自认为把一些玄妙的东西点出来了\(qwq\) \(0x01\) 引言 首先,我并没觉得\(Splay\)有多难--代码长的原 ...
- 51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)
1107 斜率小于0的连线数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线 ...
- nmap 扫描端口 + iftop 实时监控流量
sleep 1|telnet 127.0.0.1 223 nmap 127.0.0.1 -p 223 -PN (对禁ping IP) iftop -P -n -B -B 按字节显示 -N 切换 端 ...
- oracle什么时候须要commit
今天在oracle的SQL plus 中运行了删除和查询操作,然后在PL/SQL中也运行查询操作,语句一样,结果却不一样,让我大感郁闷,后来才突然想到可能是两边数据不一致造成的,可是为什么不一致呢,就 ...
- iOS 计算源码行数
如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 1.列出每个文件的行数 find . -name "*.m" -or -name "*.h&qu ...
- 使用canvas通过js制作一个小型英雄抓怪兽的2D小游戏
首先,这是一个HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...