ossec安装
安装
安装要求
对于Unix系统来说,OSSEC只需要GNU的make、gcc和libc。推荐使用OpenSSL,但仅属于一个可选项。而且,通常您只需在一个系统上做编译操作,然后将二进制程序复制到其他机器即可。
Ubantu
在Ubantu系统上,你在编译安装OSSEC之前,需要安装build-essential包。
通过如下命令安装程序包:
# apt-get install build-essential
如果需要支持数据库选项的话,需要安装mysql-dev或者postgresql-dev。运行如下命令安装这些程序包:
# apt-get install mysql-dev postgresql-dev
RedHat
RedHat系统默认拥有编译程序必须的所有程序包。但如果需要支持数据库选项的话,需安装mysql-devel和/或者postgresql-devel。
# yum install mysql-devel postgresql-devel
Debian
Debian系统需要先将bash变更为dash,但仍可能在安装过程中出现问题。Dash还没有支持其他shell中的全部功能。因此,代理端在设置服务器IP时可能报错。错误可以忽略,但服务器ip需要手工设置完成。
配置方法如下,在代理端的ossec.conf文件中增加如下内容:
<ossec_config>
<client>
<server-ip>SERVER'S IP</server-ip>
</client>
还有另一个办法避免错误的出现,即使用bash运行install.h
# bash ./install.sh
管理端/代理端安装
OSSEC HIDS安装起来非常简单。Install.sh脚本可自动化完成大部分工作。安装时,需要根据提示,回答一些简单的问题即可。其中最重要的是需要选择安装哪种类型的程序。必须正确选择安装类型:server\agent\local\hybrid。
提示:下面安装中以#开头的为安装命令,其他的全部是注释输出。
1、 下载最新版本并验证它的哈希值。
提示:在一些系统中,计算哈希的命令为md5、sha1,或wget命令不存在。可以尝试使用md5sum、sha1sum或者lynx命令做替代。
警告:wget可能无法从OSSEC网站下载文件。使用-U选项添加一个UserAgent,或者从其他管理端获取checksum文件。
# wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz
# wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1-checksum.txt
# cat ossec-hids-2.8.1-checksum.txt
MD5(ossec-hids-2.8.1.tar.gz)= c2ffd25180f760e366ab16eeb82ae382
SHA1(ossec-hids-2.8.1.tar.gz)= 0ecf1df09558dc8bb4b6f65e1fb2ca7a7df9817c
# md5sum ossec-hids-2.8.1.tar.gz
MD5(ossec-hids-2.8.1.tar.gz)= c2ffd25180f760e366ab16eeb82ae382
# sha1sum ossec-hids-2.8.1.tar.gz
SHA1(ossec-hids-2.8.1.tar.gz)= 0ecf1df09558dc8bb4b6f65e1fb2ca7a7df9817c
2、 解压压缩包,然后运行install.sh脚本。按照提示完成安装操作。
# tar -zxvf ossec-hids-*.tar.gz (or gunzip -d; tar -xvf)
# cd ossec-hids-*
# ./install.sh
3、 OSSEC管理端将监听1514UDP端口,需放开管理端和代理端之间的防火墙策略,允许流量通行。
4、 Server、agent、Hybrid的安装需要额外的配置项。可参照代理端的管理章节。
5、 通过如下命令运行OSSEC HIDS:
# /var/ossec/bin/ossec-control start
Windows代理端的安装
提示:Windows系统仅能安装OSSEC的代理端,并且需要配套的OSSEC服务端才可正常运行。
二进制安装
OSSEC通常在每一个需要安装的系统上做编译,但这种做法效率很低。对于这种场景可以采用二进制安装的形式进行。OSSEC可以再一个系统上编译,然后复制到分发系统上。也可以采用RPM或Debian包的形式开展。
提示:OSSEC对跨平台编译支持一般。仅Windows程序可以在Linux系统上做编译,其他的系统必须在相同的操作系统和CPU平台上做编译。
编译OSSEC,并安装到第二个服务器上。
首先,下载OSSEC包到你想安装的系统版本上,然后解压缩(系统需有编译器)。
# wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz
# tar -zxvf ossec-hids-latest.tar.gz
进入程序源码目录,配置OSSEC,编译agent版本。使用Make命令编译二进制文件。
# cd ossec-*/src
# make setagent
# make all
# make build
修改ossec-hids-*/etc/preloaded-vars.conf来设置BIANARY_INSTALL为yes。
# echo "USER_BINARYINSTALL=\"y\"" >> ossec-hids*/etc/preloaded-vars.conf
最后,创建OSSEC包
# tar -cvf ossec-binary.tar ossec-hids*
安装二进制OSSEC包
在目标系统上(无C编译器),下载前面制作的OSSEC-binary.tar包。解压二进制包并运行install.sh脚本来完成安装。
# tar xfv ossec-binary.tar
# cd ossec-*
# ./install.sh
根据提示完成安装配置后,安装工作完成。
服务器虚拟程序安装
概览:
OSSEC虚拟程序以OVF(Open Virtualized Format)形式提供的虚拟系统。它包括一个OSSEC2.7版本的服务器安装和WebUI(0.8 beta)版本的安装。
账号和密码
系统上所有账号的密码为_0ssec_。WebUI的用户名为user,PhpMyAdmin的账号为root。
OVF到VMWare 镜像的转化
一些VMWare桌面环境还不支持OVF镜像文件,对于这些系统,VMWare提供了ovftool转换工具。从VMWare官网下载ovftool,利用如下方法进行转换:
# tar zxvf ossec_virtual_apliance.tar.gz
# cd ossec_virtual_appliance
# ovftool ossec.ovf ossec.vmx
免交互源码安装
OSSEC支持install.sh的免交互编译安装操作。安装脚本可以从etc/preloaded-vars.conf配置文件读取默认配置。
大部分配置项都记录在了配置文件里,并且均有默认值。去除注释符号脚本即能读取设置项。任何对默认值的变更均需写入配置文件。
提示:如果USER_NO_STOP=”y”没有设置,install.sh脚本将会弹出并请求人工确认。
Preload-vars.conf配置示例:
# preloaded-vars.conf, Daniel B. Cid (dcid @ ossec.net).
#
# Use this file to customize your installations.
# It will make the install.sh script pre-load some
# specific options to make it run automatically
# or with less questions.
# PLEASE NOTE:
# When we use "n" or "y" in here, it should be changed
# to "n" or "y" in the language your are doing the
# installation. For example, in portuguese it would
# be "s" or "n".
# USER_LANGUAGE defines to language to be used.
# It can be "en", "br", "tr", "it", "de" or "pl".
# In case of an invalid language, it will default
# to English "en"
#USER_LANGUAGE="en" # For english
#USER_LANGUAGE="br" # For portuguese
# If USER_NO_STOP is set to anything, the confirmation
# messages are not going to be asked.
#USER_NO_STOP="y"
# USER_INSTALL_TYPE defines the installation type to
# be used during install. It can only be "local",
# "agent" or "server".
#USER_INSTALL_TYPE="local"
#USER_INSTALL_TYPE="agent"
#USER_INSTALL_TYPE="server"
# USER_DIR defines the location to install ossec
#USER_DIR="/var/ossec"
# If USER_DELETE_DIR is set to "y", the directory
# to install OSSEC will be removed if present.
#USER_DELETE_DIR="y"
# If USER_ENABLE_ACTIVE_RESPONSE is set to "n",
# active response will be disabled.
#USER_ENABLE_ACTIVE_RESPONSE="y"
# If USER_ENABLE_SYSCHECK is set to "y",
# syscheck will be enabled. Set to "n" to
# disable it.
#USER_ENABLE_SYSCHECK="y"
# If USER_ENABLE_ROOTCHECK is set to "y",
# rootcheck will be enabled. Set to "n" to
# disable it.
#USER_ENABLE_ROOTCHECK="y"
# If USER_UPDATE is set to anything, the update
# installation will be done.
#USER_UPDATE="y"
# If USER_UPDATE_RULES is set to anything, the
# rules will also be updated.
#USER_UPDATE_RULES="y"
# If USER_BINARYINSTALL is set, the installation
# is not going to compile the code, but use the
# binaries from ./bin/
#USER_BINARYINSTALL="x"
### Agent Installation variables. ###
# Specifies the IP address or hostname of the
# ossec server. Only used on agent installations.
# Choose only one, not both.
# USER_AGENT_SERVER_IP="1.2.3.4"
# USER_AGENT_SERVER_NAME
# USER_AGENT_CONFIG_PROFILE specifies the agent's config profile
# name. This is used to create agent.conf configuration profiles
# for this particular profile name. Only used on agent installations.
# Can be any string. E.g. LinuxDBServer or WindowsDomainController
#USER_AGENT_CONFIG_PROFILE="generic"
### Server/Local Installation variables. ###
# USER_ENABLE_EMAIL enables or disables email alerting.
#USER_ENABLE_EMAIL="y"
# USER_EMAIL_ADDRESS defines the destination e-mail of the alerts.
#USER_EMAIL_ADDRESS="dcid@test.ossec.net"
# USER_EMAIL_SMTP defines the SMTP server to send the e-mails.
#USER_EMAIL_SMTP="test.ossec.net"
# USER_ENABLE_SYSLOG enables or disables remote syslog.
#USER_ENABLE_SYSLOG="y"
# USER_ENABLE_FIREWALL_RESPONSE enables or disables
# the firewall response.
#USER_ENABLE_FIREWALL_RESPONSE="y"
# Enable PF firewall (OpenBSD and FreeBSD only)
#USER_ENABLE_PF="y"
# PF table to use (OpenBSD and FreeBSD only).
#USER_PF_TABLE="ossec_fwtable"
# USER_WHITE_LIST is a list of IPs or networks
# that are going to be set to never be blocked.
#USER_WHITE_LIST="192.168.2.1 192.168.1.0/24"
#### exit ? ###
在Windows环境下编译OSSEC Windows 代理端
警告:对于2.9版本来说此项功能不再支持。Windows客户端可以在Linux系统下编译。我们对更新支持Windows编译的补丁表示欢迎。
大多数人使用OSSEC Windows 代理端都是从OSSEC网站下载的编译好的。但对于一些存在特殊需求的企业环境,这样就有些不适用了。这时,用户可通过定制代理端并维护一个内部版本来满足使用需求。
在《如何在Linux环境下编译Windows 代理端》章节已经提供了编译方法,但是在Windows上这样的流程不大好用了。为此,我分享如下流程给大家。
安装要求:
l The Nullsoft Scriptable Install System (NSIS)
l The Minimalist GNU for Windows (MinGW) 编译器
l batch file. 简单将 gen_win.txt重命名为gen_win.cmd.
l The public domain Unix2DOS utility
l 最新版本的OSSEC for Unix/Linux (含Windows环境代码)
下面是操作步骤:
1、 下载并安装必要的程序。注意按《正确安装和配置MinGW》章节操作,特别是配置PATH环境的操作。
2、 之后,通过7-zip解压缩OSSEC程序。右键文件并选择7-zip,解压到文件名.tar。这样,文件夹名称就是包的名称。解压文件后,浏览文件夹,并重复上面步骤来解压所有归档文件,直到可以看到包中所有文件为止。
3、 将gen_win.txt放置到src\win32文件夹下并重命名为.cmd。
4、 下载Unix2Dos并放置在src\win32文件夹下。
5、 打开命令行窗口,进入src\win32目录,按需做个性化修改,执行gen_win.cmd。这可以收集必要的文件并放置在src/win-pkg目录下。
6、 接下来,在src\win-pkg目录下编译Windows代理端并执行make.bat(我假设你知道如何变更目录)。
7、 现在我们有了所有必要对文件,但还没法安装他们。通过执行NSIS编译命令即可创建安装器,例如"c:\ProgramFiles\NSIS\makensis.exe" ossec-installer.nsi。
如果没有错误提示,并且ossec-win32-agent.exe的二进制文件已经生成,则说明操作成功。恭喜你,现在可以使用自己定制的OSSEC!
利用MinGW编译OSSEC
利用MinGW可以编译OSSEC的windows代理端。
做一个windows快照是一件很痛苦的事情,这需要我打开我的WindowsVM(慢),倒入代码,编译等等。现在好了,我发现了MinGW这个交叉编译工具,可以很方便的在Linux环境编译Windows代理端。
怎么做的呢?首先,需要安装MinGW和nsis(用于创建安装文件)。如需支持OpenSSL的话,则需安装OpenSSL MinGW安装包。
这之后,则可以下载源代码并生成Windows包目录了。
注意:在一些系统上,md5、sha1或wget命令可能不存在,可以尝试替代命令md5sum、sha1sum或lynx。
警告:如果不能从ossec网站下载这些文件。可以尝试-U项增加客户端信息,或者从其他途径下载checksum文件。
# wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz
# wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1-checksum.txt
# cat ossec-hids-2.8.1-checksum.txt
MD5(ossec-hids-2.8.1.tar.gz)= c2ffd25180f760e366ab16eeb82ae382
SHA1(ossec-hids-2.8.1.tar.gz)= 0ecf1df09558dc8bb4b6f65e1fb2ca7a7df9817c
# md5sum ossec-hids-2.8.1.tar.gz
MD5(ossec-hids-2.8.1.tar.gz)= c2ffd25180f760e366ab16eeb82ae382
# sha1sum ossec-hids-2.8.1.tar.gz
SHA1(ossec-hids-2.8.1.tar.gz)= 0ecf1df09558dc8bb4b6f65e1fb2ca7a7df9817c
并生成Windows包路径
# cd ossec-hids-2.8.1/src/win32
# ./gen-win.sh
现在,在src目录下面创建了win-pkg目录。进入目录并运行make.sh。几分钟之后Windows代理端就创建成功了。
注意:make.sh文件需要根据Linux版本情况进行一定的修改。
# cd ../win-pkg
# sh ./make.sh
可以看到屏幕出现如下显示:
Making windows agent
rootcheck/win-common.c: In function "__os_winreg_querykey":
rootcheck/win-common.c:279: warning: pointer targets in passing argument 7 of "RegEnumValueA" differ in signedness
win-registry.c: In function "os_winreg_querykey":
...
Output: "ossec-win32-agent.exe"
Install: 7 pages (448 bytes), 3 sections (3144 bytes), 379 instructions (10612 bytes), 247 strings (42580 bytes), 1 language table (346 bytes).
Uninstall: 5 pages (320 bytes),
1 section (1048 bytes), 301 instructions (8428 bytes), 166 strings (2646 bytes), 1 language table (290 bytes).
Datablock optimizer saved 8371 bytes (~0.7%).
这意味着可执行的代理端ossec-win32-agent.exe创建成功了。
利用cfengine进行集成和部署
最近我有个需求,需要在较少人工介入的情况下安装OSSEC-HIDS。几乎所有的OSSSEC-HIDS教程告诉我可以这样做,但却找不到具体方法。因此,基于开源精神,我贡献一种方法。
安装条件:
为满足必要的条件,我创建了一个相关信息的文件并将它复制到我的cfmster服务器。接下来我将介绍如何操作。
配置cfengine客户端:
我添加了一个ossec server分组到我的cfagent.conf中:hg_ossec_server(主机分组)。之后我创建了ossec-hids.cfwendang 包含如下信息。
- control
我在control段创建了接下来要用到的变量:
control:
any::
ossec_key_dir = (/usr/local/cfkeys/ossec)
ossec_req_dir = ( $(util_updir)/ossec )
- package
我使用本地rpm源通过yum命令自动化安装OSSEC-HIDS。
packages:
!hg_ossec_server::
ossec-hids action=install
ossec-hids-client action=install
- links
链接段将客户端的ossec-aent.conf链接到服务器端的ossec.conf。
links:
!hg_ossec_server::
/var/ossec/etc/ossec.conf -> /var/ossec/etc/ossec-agent.conf
- copy
由于我的cfengine配置均存储在子版本目录,我只需在cfengine上编辑ossec-agent即可。之后,第一个stanza版本会将最近的版本分发到我的整个网络。
copy:
!hg_ossec_server::
$(distribute)/ossec-agent.conf dest=/var/ossec/etc/ossec-agent.conf
server=$(policyhost)
mode=640
group=ossec
type=sum
define=dc_restart_ossec
copy段的第二个stanza会将我们的ossec key目录复制为客户端的client.keys文件。如果两个文件版本不同时,客户端的版本将被更新。如果复制发生,则dc_restart_ossec参数将被设置。
$(ossec_key_dir)/$(host).ossec dest=/var/ossec/etc/client.keys
server=$(policyhost)
mode=640
group=ossec
type=sum
define=dc_restart_ossec
- processes
我的处理过程段用来检查ossec-hids进程被成功启用。
processes:
!hg_ossec_server::
"ossec-agentd" elsedefine=dc_restart_ossec
``hg_ossec_server``::
"ossec-remoted" elsedefine=dc_restart_ossec
- shellcommands
这一部分我巧妙地设计为获取证书的操作。我希望除我之外,大家也喜欢这样做。首先,它运行了一个echo命令将eth0的ipv4地址写入到host.ossec文件中。Hg_ossec_server类将使用它来生成cert并放置在前面的copy段。
shellcommands:
!hg_ossec_server::
"/usr/bin/ssh util@$(policyhost) -i $(util_privkey) 'echo $(global.ipv4[eth0]) > $(ossec_req_dir)/$(host).ossec'"
最后的语句用来检测是否有人设置了dc_restart_ossec。如果设置了,则重启ossec-hids。
dc_restart_ossec::
"/sbin/service ossec-hids restart"
好的,可使谁又关心呢。
好,现在我们的客户端被配置成可以安装、配置、启动OSSEC-HIDS并且主动获取给证书。但是,服务器端的认证目录仍然为空,所有对步骤都没有实际运行。这才是问题。
使用cfengine配置ossec server
这个cfengine很简单,它只是调用了我的打包shell并设置好类。我在control段完成这个操作。
control:
hg_ossec_server::
AddClasses = ( ExecResult(/root/security/ossec-scan.sh) )
两个脚本相结合,cfengine配置中的这行代码完成了创建、移除、导出keys,还有配置dc_restart_ossec类的变更操作。
OSSEC 更新
更新OSSEC非常简单。下载最新的包,按安装步骤操作即可。它将提示你已经安装了OSSEC并询问:
- You already have OSSEC installed. Do you want to update it? (y/n): y
回复yes,脚本将本心OSSEC二进制文件。过程中Local_rules.xml和local_decoder.xml不会被更改。脚本也将弹出并询问是否更新规则。
- Do you want to update the rules? (y/n): y
回复yes,ossec.conf中的<rules>部分也
ossec安装的更多相关文章
- OSSEC 安装执行./install.sh详细信息
下载好ossec安装文件后解压得到如下目录 [root@localhost ~]# cd ossec-hids-/ [root@localhost ossec-hids-]# ll total drw ...
- ossec安装配置
测试机 172.16.53.191 服务端(server) 测试机 172.16.53.253 客户端(agent) [server端配置] yum install mysql mysql-serve ...
- Ossec 安装并配置邮件通知
Ossec 安装并配置邮件通知 目录 Ossec 安装并配置邮件通知 1. 介绍 2. 软硬件环境 3. 安装步骤 3.1 Server 3.2 Agent 3.3 配置邮件通知 4. 参考资料 1. ...
- 开源入侵检测系统OSSEC搭建之一:服务端安装
OSSEC是一款开源的多平台的入侵检测系统,可以运行于Windows, Linux, OpenBSD/FreeBSD, 以及 MacOS等操作系统中.主要功能有日志分析.完整性检查.rootkit检测 ...
- centos7下安装ossec
一.前言 OSSEC是一款开源的基于主机的入侵检测系统,可以简称为HIDS.它具备日志分析,文件完整性检查,策略监控,rootkit检测,实时报警以及联动响应等功能.它支持多种操作系统:Linux ...
- Splunk作为日志分析平台与Ossec进行联动
背景: Ossec安装后用了一段时间的analogi作为ossec的报警信息显示平台,但是查看报警分类信息. 以及相关图标展示等方面总有那么一点点的差强人意,难以分析.因此使用逼格高一点的splunk ...
- Centos 6 下安装 OSSEC-2.8.1 (一)
ossec -2.8.1 安装: ## 1 ) 安装依赖包: RedHat / Centos / Fedora / Amazon Linux yum install -y pcre mysql mys ...
- PHP Warning: date(): It is not safe to rely on the system's timezone settings.
OSSEC安装结束后运行,运行以下命令却抛错 cat /opt/ossec/logs/alerts/alerts.log 具体抛错内容: ** Alert 1468897672.2164786: ma ...
- 开源入侵检测系统OSSEC搭建之三:Web界面安装
注意:以下操作需在OSSEC服务端进行设置 一.下载analogi,存放于/var/www/html/下并赋予权限 [root@localhost ~]# wget https://github.co ...
随机推荐
- kong安装
1 哪些企业在用KONG: Mashapoe Marketplace Buzzlogix Gengo IBM Intel OpenDNS 饿了么 Kong可与两种不同的组件协同工作: Nginx:Ko ...
- js中使用trim
function trim(s) { return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s) { if (s == null) ...
- Python自动化之traceback
import traceback try: 11/a except Exception: b = traceback.format_exc() traceback.format_exc()会存储详细的 ...
- css中位置计算
一.position属性 1. position的属性: ①absolute :绝对定位:脱离文档流的布局,遗留下来的空间由后面的元素填充.定位的起始位置为最近的已定位(设定了position)父元素 ...
- iOS 多线程:『RunLoop』详尽总结
1. RunLoop 简介 1.1 什么是 RunLoop? 可以理解为字面意思:Run 表示运行,Loop 表示循环.结合在一起就是运行的循环的意思.哈哈,我更愿意翻译为『跑圈』.直观理解就像是不停 ...
- C到C++的快速教程
1.头文件: C++头文件不是以.h结尾,C语言中的标准库文件如math,h,stdio.h在C++中被命名为cmath,cstdio 2.命名空间: 为防止名字冲突(出现同名),C++引入名字空间( ...
- Python2.7在Windows下CMD编码为65001/utf-8时print报错[Errno 0]/[Errno 2]
使用python2.7处理unicode的字符串,环境变量已设置PYTHONIOENCODING为utf-8,cmd编码为utf-8时print unicode字符串会报错[Errno 0]或[Err ...
- Kali渗透测试1-Netcat
What is Netcat? Netcat is a featured networking utility which reads and writes data across network c ...
- 重学Verilog(3)——参数化模块
1.parameter方法 首先有这样一个模块 module half_adder(co,sum,a,b); output co,sum; input a,b; ; ; and #and_delay ...
- JavaWeb基础—JDBC(二)事务与批处理
一.批处理 这里给出PrepareStatement的示例,优点是可以发送预编译的SQL,缺点是SQL语句无法更换,但参数可以更换 批处理:多条语句的处理 mysql默认是关闭的,要打开需要在url后 ...