发布于 2014-12-27 09:40:26 | 505 次阅读 | 评论: 0 | 来源: PHPERZ
OSSEC 多平台入侵检测系统
OSSEC是一款开源的多平台的入侵检测系统,可以运行于Windows, Linux, OpenBSD/FreeBSD, 以及 MacOS等操作系统中。包括了日志分析,全面检测,root-kit检测。作为一款HIDS,OSSEC应该被安装在一台实施监控的系统中。另外有时候不需要安装完全版本得OSSEC,如果有多台电脑都安装了OSSEC,那么就可以采用客户端/服务器模式来运行。客户机通过客户端程序将数据发回到服务器端进行分析。在一台电脑上对多个系统进行监控对于企业或者家庭用户来说都是相当经济实用的。
本文为大家讲解的是如何在centos下安装ossec,ossec是一个开源的多平台入侵检测系统,感兴趣的同学参考下。
OSSEC是一款开源的多平台的入侵检测系统,可以运行于Windows, Linux, OpenBSD/FreeBSD, 以及 MacOS等操作系统中。包括了日志分析,全面检测,root-kit检测。作为一款HIDS,OSSEC应该被安装在一台实施监控的系统中。另外有时候不需要安装完全版本得OSSEC,如果有多台电脑都安装了OSSEC,那么就可以采用客户端/服务器模式来运行。客户机通过客户端程序将数据发回到服务器端进行分析。在一台电脑上对多个系统进行监控对于企业或者家庭用户来说都是相当经济实用的。
OSSEC是一款由Trend Micro(趋势科技)开发的开源的基于主机的入侵检测系统,可以简称为HIDS。它具备日志分析,文件完整性检查,策略监控,rootkit检测,实时 报警以及联动响应等功能。它支持多种操作系统:Linux、Windows、MacOS、Solaris、HP-UX、AIX。属于企业安全之利器。
详细的介绍和文档可以参考官网网站:http://www.ossec.net/
计算机名:ossec-server.com
IP地址:10.10.16.1
首先我们安装需要用到的关联库和软件,由于我们最终是需要把日志导入到MySQL中进行分析,以及需要通过web程序对报警结果进行展示,同时需要把本机当做SMTP,所以需要在本机安装MySQL、Apache和sendmail服务。在当前的终端中执行如下命令:
[root@ossec-server ~]# yum install wget gcc make mysql mysql-server mysql-devel httpd php php-mysql sendmail
启动httpd、mysql、sendmail服务
[root@ossec-server ~]# /etc/init.d/httpd start
[root@ossec-server ~]# /etc/init.d/mysqld start
[root@ossec-server ~]# /etc/init.d/sendmail start
下面创建数据库以方便我们下面的安装配置,连接到本机的MySQL,然后执行如下命令:
[root@ossec-server ~]# mysql -uroot -p
mysql> create database ossec;
mysql> grant INSERT,SELECT,UPDATE,CREATE,DELETE,EXECUTE on ossec.* to ossec@localhost;
mysql> set password for ossec@localhost=PASSWORD('ossec');
mysql> flush privileges;
mysql> exit
首先通过官网的链接下载当前的最新稳定版本 2.7 的服务端包,同时解压。
[root@ossec-server ~]# wget http://www.ossec.net/files/ossec-hids-2.7.1.tar.gz
[root@ossec-server ~]# tar zxf ossec-hids-2.7.1.tar.gz
[root@ossec-server ~]# cd ossec-hids-2.7.1
为了使OSSEC支持MySQL,需要在安装前执行make setdb命令,如下
[root@ossec-server ossec-hids-2.7.1]# cd src; make setdb; cd ..
看到如下的信息说明可以正常支持MySQL:
Info: Compiled with MySQL support.
下面进入安装步骤,执行install.sh脚本,同时按照下面的信息进行填写:
[root@ossec-server ossec-hids-2.7.1]# sh install.sh
which: no host in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin:/usr/local/jdk1.7.0_09//bin:/root/bin)
** Para instalação em português, escolha [br].
** 要使用中文进行安装, 请选择 [cn].
** Fur eine deutsche Installation wohlen Sie [de].
** Για εγκατάσταση στα Ελληνικά, επιλέξτε [el].
** For installation in English, choose [en].
** Para instalar en Español , eliga [es].
** Pour une installation en français, choisissez [fr]
** A Magyar nyelvű telepítéshez válassza [hu].
** Per l'installazione in Italiano, scegli [it].
** 日本語でインストールします.選択して下さい.[jp].
** Voor installatie in het Nederlands, kies [nl].
** Aby instalować w języku Polskim, wybierz [pl].
** Для инструкций по установке на русском ,введите [ru].
** Za instalaciju na srpskom, izaberi [sr].
** Türkçe kurulum için seçin [tr].
(en/br/cn/de/el/es/fr/hu/it/jp/nl/pl/ru/sr/tr) [en]: cn
which: no host in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin:/usr/local/jdk1.7.0_09//bin:/root/bin)
OSSEC HIDS v2.7.1 安装脚本 - http://www.ossec.net
您将开始 OSSEC HIDS 的安装.
请确认在您的机器上已经正确安装了 C 编译器.
如果您有任何疑问或建议,请给 dcid@ossec.net (或 daniel.cid@gmail.com) 发邮件.
- 系统类型: Linux ossec-server.com 2.6.32-431.el6.x86_64
- 用户: root
- 主机: ossec-server.com
-- 按 ENTER 继续或 Ctrl-C 退出. --
1- 您希望哪一种安装 (server, agent, local or help)? server
- 选择了 Server 类型的安装.
2- 正在初始化安装环境.
- 请选择 OSSEC HIDS 的安装路径 [/usr/local/ossec]: /usr/local/ossec
- OSSEC HIDS 将安装在 /usr/local/ossec .
3- 正在配置 OSSEC HIDS.
3.1- 您希望收到e-mail告警吗? (y/n) [y]: y
- 请输入您的 e-mail 地址? koy1619@linux.com
- 请输入您的 SMTP 服务器IP或主机名 ? 127.0.0.1
3.2- 您希望运行系统完整性检测模块吗? (y/n) [y]: y
- 系统完整性检测模块将被部署.
3.3- 您希望运行 rootkit检测吗? (y/n) [y]: y
- rootkit检测将被部署.
3.4- 关联响应允许您在分析已接收事件的基础上执行一个
已定义的命令.
例如,你可以阻止某个IP地址的访问或禁止某个用户的访问权限.
更多的信息,您可以访问:
http://www.ossec.net/en/manual.html#active-response
- 您希望开启联动(active response)功能吗? (y/n) [y]: y
- 关联响应已开启
- 默认情况下, 我们开启了主机拒绝和防火墙拒绝两种响应.
第一种情况将添加一个主机到 /etc/hosts.deny.
第二种情况将在iptables(linux)或ipfilter(Solaris,
FreeBSD 或 NetBSD)中拒绝该主机的访问.
- 该功能可以用以阻止 SSHD 暴力攻击, 端口扫描和其他
一些形式的攻击. 同样你也可以将他们添加到其他地方,
例如将他们添加为 snort 的事件.
- 您希望开启防火墙联动(firewall-drop)功能吗? (y/n) [y]: y
- 防火墙联动(firewall-drop)当事件级别 >= 6 时被启动
- 联动功能默认的白名单是:
- 10.10.16.1
- 您希望添加更多的IP到白名单吗? (y/n)? [n]: n
3.5- 您希望接收远程机器syslog吗 (port 514 udp)? (y/n) [y]: y
- 远程机器syslog将被接收.
3.6- 设置配置文件以分析一下日志:
-- /var/log/messages
-- /var/log/secure
-- /var/log/maillog
-如果你希望监控其他文件, 只需要在配置文件ossec.conf中
添加新的一项.
任何关于配置的疑问您都可以在 http://www.ossec.net 找到答案.
--- 按 ENTER 以继续 ---
最后敲回车即可安装到/usr/local/ossec
,注意上面的email
地址和白名单
后面可以在配置文件中修改。
上面只是安装好了OSSEC服务端,下面则是为了配置服务端,使其工作正常。执行下面命令启用数据库支持:
[root@ossec-server ossec-hids-2.7.1]# /usr/local/ossec/bin/ossec-control enable database
然后导入MySQL表结构到MySQL中:
[root@ossec-server ossec-hids-2.7.1]# mysql -uossec -p ossec < src/os_dbd/mysql.schema
修改配置文件的权限,否则会启动服务失败:
[root@ossec-server ossec-hids-2.7.1]# chmod u+w /usr/local/ossec/etc/ossec.conf
然后编辑ossec.conf文件,在ossec_config中添加MySQL配置:
<database_output>
<hostname>localhost</hostname>
<username>ossec</username>
<password>ossec</password>
<database>ossec</database>
<type>mysql</type>
</database_output>
由于我们在前面的安装过程中支持接受远程机器的syslog,所以我们还需要对ossec.conf文件中的syslog部分进行配置,修改ossec.conf文件,按照下面的内容进行修改,把我们网段可以全添加进去:
<remote>
<connection>syslog</connection>
<allowed-ips>10.10.16.0/24</allowed-ips>
</remote>
然后添加我们需要监控的客户机的白名单IP地址
<global>
<white_list>127.0.0.1</white_list>
<white_list>^localhost.localdomain$</white_list>
<white_list>10.10.16.2</white_list>
<white_list>10.10.16.3</white_list>
<white_list>10.10.16.4</white_list>
...
</global>
如果有多个邮件的收件人需要添加
<global>
<email_notification>yes</email_notification>
<email_to>koy@linux.com</email_to>
<email_to>koy2@linux.com</email_to>
<email_to>koy3@linux.com</email_to>
<smtp_server>127.0.0.1</smtp_server>
<email_from>ossecm@ossec-server.com</email_from>
</global>
在服务器上添加客户端,执行如下命令,按照提示进行输:
[root@ossec-server ossec-hids-2.7.1]# /usr/local/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v2.7.1 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
- Adding a new agent (use '\q' to return to the main menu).
Please provide the following:
* A name for the new agent: client1
* The IP Address of the new agent: 10.10.16.2
* An ID for the new agent[001]: 001
Agent information:
ID:001
Name:client1
IP Address:10.10.16.2
Confirm adding it?(y/n): y
Agent added.
****************************************
* OSSEC HIDS v2.7.1 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:
添加完客户端之后,还需要生成密钥,选择E选项
****************************************
* OSSEC HIDS v2.7.1 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: e
Available agents:
ID: 001, Name: client1, IP: 10.10.16.2
Provide the ID of the agent to extract the key (or '\q' to quit): 001
Agent key information for '001' is:
MDAyIGNsaWVudDEgMTAuMTAuMTYuMiA2MDQ3NTc4NDBmZWE4ZTkyZDcxYjk3ZGY4NmNmMzIyY2Y0OGIwNjRlMTE2NDM5Yzk2Y2JkMGEyMDllNTVmMGQ4
** Press ENTER to return to the main menu.
到现在就可以启动我们的ossec服务端了。
[root@ossec-server ossec-hids-2.7.1]# /usr/local/ossec/bin/ossec-control start
查看监听端口
[root@ossec-server analogi-master]# netstat -antup|grep ossec
tcp 0 0 127.0.0.1:43425 127.0.0.1:3306 ESTABLISHED 1841/ossec-dbd
udp 0 0 0.0.0.0:514 0.0.0.0:* 1865/ossec-remoted
udp 0 0 0.0.0.0:1514 0.0.0.0:* 1866/ossec-remoted
[root@ossec-server analogi-master]#
如果开启iptables,则需要开放这2个UDP端口到client
计算机名:client1.com
IP地址:10.10.16.2
客户端也需要安装gcc编译器
[root@client1 ~]# yum -y install gcc
安装ossec客户端程序
[root@client1 ossec-hids-2.7.1]# sh install.sh
** Para instalação em português, escolha [br].
** 要使用中文进行安装, 请选择 [cn].
** Fur eine deutsche Installation wohlen Sie [de].
** Για εγκατάσταση στα Ελληνικά, επιλέξτε [el].
** For installation in English, choose [en].
** Para instalar en Español , eliga [es].
** Pour une installation en français, choisissez [fr]
** A Magyar nyelvű telepítéshez válassza [hu].
** Per l'installazione in Italiano, scegli [it].
** 日本語でインストールします.選択して下さい.[jp].
** Voor installatie in het Nederlands, kies [nl].
** Aby instalować w języku Polskim, wybierz [pl].
** Для инструкций по установке на русском ,введите [ru].
** Za instalaciju na srpskom, izaberi [sr].
** Türkçe kurulum için seçin [tr].
(en/br/cn/de/el/es/fr/hu/it/jp/nl/pl/ru/sr/tr) [en]: cn
OSSEC HIDS v2.7.1 安装脚本 - http://www.ossec.net
您将开始 OSSEC HIDS 的安装.
请确认在您的机器上已经正确安装了 C 编译器.
如果您有任何疑问或建议,请给 dcid@ossec.net (或 daniel.cid@gmail.com) 发邮件.
- 系统类型: Linux client1.com 2.6.32-279.el6.x86_64
- 用户: root
- 主机: client1.com
-- 按 ENTER 继续或 Ctrl-C 退出. --
1- 您希望哪一种安装 (server, agent, local or help)? agent
- 选择了 Agent(client) 类型的安装.
2- 正在初始化安装环境.
- 请选择 OSSEC HIDS 的安装路径 [/usr/local/ossec]: /usr/local/ossec
- OSSEC HIDS 将安装在 /usr/local/ossec .
3- 正在配置 OSSEC HIDS.
3.1- 请输入 OSSEC HIDS 服务器的IP地址或主机名: 10.10.16.1
- 添加服务器IP 10.10.16.1
3.2- 您希望运行系统完整性检测模块吗? (y/n) [y]: y
- 系统完整性检测模块将被部署.
3.3- 您希望运行 rootkit检测吗? (y/n) [y]: y
- rootkit检测将被部署.
3.4 - 您希望开启联动(active response)功能吗? (y/n) [y]: y
3.5- 设置配置文件以分析一下日志:
-- /var/log/messages
-- /var/log/secure
-- /var/log/maillog
-如果你希望监控其他文件, 只需要在配置文件ossec.conf中
添加新的一项.
任何关于配置的疑问您都可以在 http://www.ossec.net 找到答案.
--- 按 ENTER 以继续 ---
敲玩回车即可完成安装,然后需要添加一下密钥,把刚才在server端生成的密钥复制下来
[root@client1 ossec-hids-2.7.1]# /usr/local/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v2.7.1 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): MDAyIGNsaWVudDEgMTAuMTAuMTYuMiA2MDQ3NTc4NDBmZWE4ZTkyZDcxYjk3ZGY4NmNmMzIyY2Y0OGIwNjRlMTE2NDM5Yzk2Y2JkMGEyMDllNTVmMGQ4
Agent information:
ID:001
Name:client1
IP Address:10.10.16.2
Confirm adding it?(y/n): y
Added.
** Press ENTER to return to the main menu.
****************************************
* OSSEC HIDS v2.7.1 Agent manager. *
* The following options are available: *
****************************************
(I)mport key from the server (I).
(Q)uit.
Choose your action: I or Q:
这样即可完成client端安装,启动ossec服务
[root@client1 ossec-hids-2.7.1]# /usr/local/ossec/bin/ossec-control start
之后就可以收到服务器log更新的邮件了,但是这样子还不够,我们需要通过更加直观的方式统一集中式的查看服务器的log情况,这就需要安装web-gui
ossec官方提供的ossec-wui https://github.com/ossec/ossec-wui
github开源analogi-master https://github.com/ECSC/analogi/archive/master.zip
下载解压之后放到apache的web目录,并加apache用户权限
[root@ossec-server ossec-wui-master]# chown -R apache.apache /usr/local/httpd/htdocs/ossec-wui-master/
执行安装脚本
[root@ossec-server ossec-wui-master]# sh setup.sh
Setting up ossec ui...
Username: root
New password:
Re-type new password:
Adding password for user root
Enter your web server user name (e.g. apache, www, nobody, www-data, ...)
apache
sed:-e 表达式 #1,字符 22:未终止的“s”命令
Enter your OSSEC install directory path (e.g. /var/ossec)
/usr/local/ossec
You must restart your web server after this setup is done.
Setup completed successfuly.
修改配置文件中的ossec_dir路径
[root@ossec-server ossec-wui-master]# vim /usr/local/httpd/htdocs/ossec-wui-master/ossec_conf.php
<?php
/* OSSEC Configuration for the UI. Make sure to set
* right ossec_dir in here. If your server does not
* have much memory available, reduce the max_alerts
* variable to something smaller.
*/
/* Ossec directory */
$ossec_dir="/usr/local/ossec";
/* Maximum alerts per page */
$ossec_max_alerts_per_page = 1000;
/* Default search values */
$ossec_search_level = 7;
$ossec_search_time = 14400;
/* Default refreshing time */
$ossec_refresh_time = 90;
?>
修改php.ini
max_execution_time = 180
max_input_time = 180
memory_limit = 30M
重启web服务即可查看web界面
下载并解压放到web目录,只需要修改一下mysql的连接池就ok
[root@ossec-server analogi-master]# mv db_ossec.php.new db_ossec.php
[root@ossec-server analogi-master]# vim db_ossec.php
<?php
/*
* Copyright (c) 2012 Andy 'Rimmer' Shepherd <andrew.shepherd@ecsc.co.uk> (ECSC Ltd).
* This program is free software; Distributed under the terms of the GNU GPL v3.
*/
define ('DB_USER_O', 'ossec');
define ('DB_PASSWORD_O', 'ossec');
define ('DB_HOST_O', 'localhost');
define ('DB_NAME_O', 'ossec');
$db_ossec = mysql_connect (DB_HOST_O, DB_USER_O, DB_PASSWORD_O) OR die ('Could not connect to SQL : ' . mysql_error() . "<br/>Click <a href='' onclick='document.cookie=\"ossecdbjs=;expires=Thu, 01 Jan 1970 00:00:00 GMT\"' >HERE</a> to s
elect your main OSSEC DB");
mysql_select_db (DB_NAME_O, $db_ossec) OR die ('Could not select the database : ' . mysql_error() . "<br/>Click <a href='' onclick='document.cookie=\"ossecdbjs=;expires=Thu, 01 Jan 1970 00:00:00 GMT\"' >HERE</a> to select your main OSSE
C DB");
?>
web预览
发现无数据或者是看不到客户端,请查看iptables
是否开放udp
的514
和1514
端口并查看是否监听
web查看显示的时间不正确,可修改php.ini
的date.timezone = Asia/Shanghai即可
sendmail邮件发不出,可修改查看主机名是否规范,需要检查以下地方,修改完毕重启sendmail即可
[root@ossec-server analogi-master]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 ossec-server.com
10.10.16.1 ossec-server.com
[root@ossec-server analogi-master]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ossec-server.com
[root@ossec-server analogi-master]# hostname
ossec-server.com