ossec是一款开源的多平台的入侵检测系统,可以运行于Windows, Linux, OpenBSD/FreeBSD, 以及
MacOS等操作系统中。包括了日志分析,全面检测,root-kit检测,政策监控,实时报警和积极响应。
下载地址:http://www.ossec.net/downloads/
原理:
ossec基本命令:
//启动ossec
# /var/ossec/bin/ossec-control start
//重启ossec
# /var/ossec/bin/ossec-control restart
//停止ossec
# /var/ossec/bin/ossec-control stop
//查看状态信息
# /var/ossec/bin/agent_control -lc //连接信息
# /var/ossec/bin/list_agents -a //是否可找到
/var/ossec/bin/ossec-control status //启动状态
1.禁止启用SElinux
# vim /etc/selinux/config
编辑/etc/selinux/config,找到SELINUX 行修改成为:SELINUX=disabled
2.关闭SElinux
# setenforce 0
3.我们需要开启80端口,CentOS 7.0默认使用的是firewall作为防火墙,这里我们把centos7的防火墙换成iptables 。关闭firewall:
//停止firewall
# systemctl stop firewalld.service
//禁止firewall开机启动
# systemctl disable firewalld.service
4.安装iptables防火墙
//安装
# yum install iptables-services
//编辑防火墙配置文件
# vi /etc/sysconfig/iptables
原文件清空,复制粘贴保存:
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 1514 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
因为ossec通信是用udp 514,1514端口(可以用命令:# netstat -unlp|grep ossec 查看)所以加了下面这两句 :
-A INPUT -m state –state NEW -m udp -p udp –dport 514 -j ACCEPT
-A INPUT -m state –state NEW -m udp -p udp –dport 1514 -j ACCEPT
5.开启iptables:
//最后重启防火墙使配置生效
# systemctl restart iptables.service
//设置防火墙开机启动
# systemctl enable iptables.service
6.安装一些必要的工具
# yum install wget gcc make
(1) 使用邮件服务安装:
# yum install sendmail
(2) 使用mysql服务安装:
# yum install mysql mysql-server mysql-devel
mysql-server安装找不到的话,手动安装如下:
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server
(3) 使用web服务安装:
# yum install httpd php php-mysql
(4)httpd、mysql、sendmail启动服务
# /etc/init.d/httpd start
# /etc/init.d/mysqld start
# /etc/init.d/sendmail start
或者
# for i in {httpd,mysqld,sendmail}; do service $i restart; done
7.服务器ossec-server安装
# wget https://bintray.com/artifact/download/ossec/ossec-hids/ossec-hids-2.8.3.tar.gz
# tar zxf ossec-hids-2.8.3.tar.gz
# cd ossec-hids-2.8.3/
#cd src/
//使其支持mysql数据库
# make setdb
//接下来提示:
Error: PostgreSQL client libraries notinstalled.
Info: Compiled with MySQL support. //ossec支持mysql数据库
# cd ../
# ./install.sh
下面是安装过程:
cn #选择语言
Enter #继续
Server #安装为server
/var/ossec #安装目录
** 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][/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.8.1 安装脚本 - http://www.ossec.ne
您将开始 OSSEC HIDS 的安装.
请确认在您的机器上已经正确安装了 C 编译器.
如果您有任何疑问或建议,请给发邮件.
您希望哪一种安装 (server, agent, local or help)? server
选择了 Server 类型的安装.
正在初始化安装环境.
请选择 OSSEC HIDS 的安装路径 [/var/ossec]: /var/ossec
OSSEC HIDS 将安装在 /var/ossec .
正在配置 OSSEC HIDS.
您希望收到e-mail告警吗? (y/n) [y]: y
请输入您的 e-mail 地址? ****@***.com
我们找到您的 SMTP 服务器为: alt1.gmail-smtp-in.l.google.com.
您希望使用它吗? (y/n) [y]: n
请输入您的 SMTP 服务器IP或主机名 ? 127.0.0.1
您希望运行系统完整性检测模块吗? (y/n) [y]: y
系统完整性检测模块将被部署.
您希望运行 rootkit检测吗? (y/n) [y]: y
rootkit检测将被部署.
关联响应允许您在分析已接收事件的基础上执行一个已定义的命令.
例如,你可以阻止某个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 时被启动
联动功能默认的白名单是:8.8.8.8
您希望添加更多的IP到白名单吗? (y/n)? [n]: y
请输入IP (用空格进行分隔): 10.10.10.96
您希望接收远程机器syslog吗 (port 514 udp)? (y/n) [y]: y
远程机器syslog将被接收.
设置配置文件以分析一下日志:
-- /var/log/messages
-- /var/log/secure
-- /var/log/maillog
-如果你希望监控其他文件, 只需要在配置文件ossec.conf中
添加新的一项.
任何关于配置的疑问您都可以在 http://www.ossec.net 找到答案.
--- 按 ENTER 以继续 ---
- 正在运行Makefile
INFO: Little endian set.
…………省略编译输出…………
系统类型是 Redhat Linux.
修改启动脚本使 OSSEC HIDS 在系统启动时自动运行
已正确完成系统配置.
要启动 OSSEC HIDS:
/var/ossec/bin/ossec-control start
要停止 OSSEC HIDS:
/var/ossec/bin/ossec-control stop
要查看或修改系统配置,请编辑 /var/ossec/etc/ossec.conf
感谢使用 OSSEC HIDS.
如果您有任何疑问,建议或您找到任何bug,
[email protected] 或邮件列表 [email protected] 联系我们.
( http://www.ossec.net/en/mailing_lists.html ).
您可以在 http://www.ossec.net 获得更多信息
--- 请按 ENTER 结束安装 (下面可能有更多信息). ---
直到碰到上面内容,说明安装完成
安装完毕,下面我们来配置
使oosec支持mysql,并建立mysql表:
//执行下面命令启用数据库支持:
# /var/ossec/bin/ossec-control enable database
//启动数据库
# service mysqld start
# /usr/bin/mysql_secure_installation
# mysql -uroot -p
mysql> create database ossec;
mysql> grant INSERT,SELECT,UPDATE,CREATE,DELETE,EXECUTE on ossec.* to ossec@localhost identified by 'ossec';
mysql> flush privileges;
mysql> \q
//导入MySQL表结构到MySQL中:
# mysql -uossec -p ossec < src/os_dbd/mysql.schema
//Enter password:*****
//修改部分配置文件的权限,否则会启动服务失败:
# chmod u+w /var/ossec/etc/ossec.conf
# vi /usr/local/ossec/etc/ossec.conf//在最后添加
#添加MySQL配置:
<ossec_config>
<database_output>
<hostname>localhost</hostname>
<username>ossec</username>
<password>ossec</password>
<database>ossec</database>
<type>mysql</type>
</database_output>
</ossec_config>
#由于我们在前面的安装过程中支持接受远程机器的syslog,
#所以我们还需要对ossec.conf文件中的syslog部分进行配置,
#修改ossec.conf文件,按照下面的内容进行修改,把我们网段可以全添加进去:
<remote>
<connection>syslog</connection>
<allowed-ips>10.10.10.0/16</allowed-ips>
</remote>
启动ossec
# /var/ossec/bin/ossec-control start
在实际的实验过程中启动ossec服务端必须先添加一个客户端,否则直接启动服务端是会失败的,通过如下命令查看日志会发现如下错误:
# cat /var/ossec/logs/ossec.log
2018/03/5 23:43:15 ossec-analysisd(1210): ERROR: Queue '/queue/alerts/ar' not accessible: 'Connection refused'.
2018/03/5 23:43:15 ossec-analysisd(1301): ERROR: Unable to connect to active response queue.
# /var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v2.8.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: ossec-agent-66
The IP Address of the new agent: 10.10.10.66
An ID for the new agent[001]: 066
Agent information:
ID:066
Name:ossec-agent-66
IP Address:10.10.10.66
Confirm adding it?(y/n): y
Agent added.
****************************************
* OSSEC HIDS v2.8.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: ossec-agent, IP: 192.168.100.104
Provide the ID of the agent to extract the key (or '\q' to quit): 001
Agent key information for '001' is: 你的key
** Press ENTER to return to the main menu.
保存一下密钥key
启动ossec
# /var/ossec/bin/ossec-control start
//或者
# /etc/init.d/ossec start
# wget https://bintray.com/artifact/download/ossec/ossec-hids/ossec-hids-2.8.3.tar.gz
# tar zxf ossec-hids-2.8.3.tar.gz
# cd ossec-hids-2.8.3/
# ./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][/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.8.1 安装脚本 - http://www.ossec.net
您将开始 OSSEC HIDS 的安装.
请确认在您的机器上已经正确安装了 C 编译器.
如果您有任何疑问或建议,请给发邮件.
您希望哪一种安装 (server, agent, local or help)? agent
选择了 Agent(client) 类型的安装.
正在初始化安装环境.
请选择 OSSEC HIDS 的安装路径 [/var/ossec]: /var/ossec
正在配置 OSSEC HIDS.
请输入 OSSEC HIDS 服务器的IP地址或主机名: 10.10.10.96
您希望运行系统完整性检测模块吗? (y/n) [y]: y
系统完整性检测模块将被部署.
您希望运行 rootkit检测吗? (y/n) [y]: y
rootkit检测将被部署.
您希望开启联动(active response)功能吗? (y/n) [y]: y
设置配置文件以分析一下日志:
-- /var/log/messages
-- /var/log/secure
-- /var/log/xferlog
-- /var/log/maillog
-- /var/log/httpd/error_log (apache log)
-- /var/log/httpd/access_log (apache log)
-如果你希望监控其他文件, 只需要在配置文件ossec.conf中
添加新的一项.
任何关于配置的疑问您都可以在 http://www.ossec.net 找到答案.
--- 按 ENTER 以继续 ---
- 正在运行Makefile
INFO: Little endian set.
…………省略编译输出…………
系统类型是 Redhat Linux.
修改启动脚本使 OSSEC HIDS 在系统启动时自动运行
已正确完成系统配置.
要启动 OSSEC HIDS:
/var/ossec/bin/ossec-control start
要停止 OSSEC HIDS:
/var/ossec/bin/ossec-control stop
要查看或修改系统配置,请编辑 /var/ossec/etc/ossec.conf
感谢使用 OSSEC HIDS.
如果您有任何疑问,建议或您找到任何bug,
[email protected] 或邮件列表 [email protected] 联系我们.
( http://www.ossec.net/en/mailing_lists.html ).
您可以在 http://www.ossec.net 获得更多信息
--- 请按 ENTER 结束安装 (下面可能有更多信息). ---
您必须首先将该代理添加到服务器端以使他们能够相互通信.
这样做了以后,您可以运行'manage_agents'工具导入
服务器端产生的认证密匙.
/opt/ossec/bin/manage_agents
详细信息请参考:
http://www.ossec.net/en/manual.html#ma
其实配置ossec客户端就是把刚才由服务端生成的key,在客户端中导入,执行如下命令:
# /var/ossec/bin/manage_agents
***************************************
* OSSEC HIDS v2.8.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):你的key
Agent information:
ID:066
Name:ossec-agent-66
IP Address: 10.10.10.66
Confirm adding it?(y/n): y
Added.
** Press ENTER to return to the main menu.
最后启动ossec-agent客户端
# /var/ossec/bin/ossec-control start
//或者
# /etc/init.d/ossec start
ossec收集的日志在 /var/ossec/logs/alerts/alerts.log
OSSEC的alerts.log日志文件分析例子
** Alert 1469594165.3684: - windows,
2016 Jul 27 12:36:05 (agent2) 192.168.1.0->WinEvtLog
Rule: 18149 (level 3) -> 'Windows User Logoff.'
User: lenovo
2016 Jul 26 21:57:29 WinEvtLog: Security:
AUDIT_SUCCESS(4647): Microsoft-Windows-Security-
Auditing: lenovo: lenovo-pc: lenovo-pc: User initiated
logoff: Subject: Security ID:
S-1-5-21-253721302-2314373899-4153707874-1001 Account
Name: lenovo Account Domain: lenovo-pc Logon ID:
0xa0522ec This event is generated when a logoff is
initiated but the token reference count is not zero
and the logon session cannot be destroyed. No further
user-initiated activity can occur. This event can be
interpreted as a logoff event.
日志格式为:
**Alert xxxxxxxxxx.xxxx: - windows(来源)
事件产生的时间 事件产生的位置
Rule(规则):xxxxx(level x)[事件等级]->事件概述
User(用户):xxx
日志记录时间 安全事件(事件ID):
事件来源:用户:计算机:事件描述
使用者:
安全ID: 账户名:
账户域: 登陆ID:
事件描述:
之后可以安装第三方的web界面,我不需要所有没试,可以找资料装一下,例如为ossec-server安装第三方的web界面(analogi)