Centos7搭建ossec

家住魔仙堡 提交于 2020-01-06 21:33:16

安装ossec-server端前提环境准备

首先我们安装需要用到的关联库和软件,由于我们最终是需要把日志导入到MySQL中进行分析,以及需要通过web程序对报警结果进行展示,同时需要把本机当做SMTP,所以需要在本机安装MySQL、Apache和sendmail服务。在当前的终端中执行如下命令:

yum install wget gcc make mysql mysql-server mysql-devel httpd php php-mysql sendmail

启动httpd、mysql、sendmail服务

for i in {httpd,mysqld,sendmail}; do service $i restart; done

创建数据库方面后面的安装配置,连接到本机的MySQL,然后执行

mysql -uroot -p
mysql> create database ossec;
mysql> CREATE USER 'ossec'@'localhost';
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

这里使用的是比较简单的密码,MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。所以需要修改密码强度的验证机制:

1) 查看mysql全局参数配置

这里与mysql的validate_password_policy的值有关

查看一下msyql密码相关的几个全局参数:

mysql> select @@validate_password_policy;
+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM                     |
+----------------------------+
1 row in set (0.00 sec)
 
 
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
6 rows in set (0.08 sec)

2)参数解释

validate_password_dictionary_file

插件用于验证密码强度的字典文件路径

 

validate_password_length

密码最小长度,参数默认为8,它有最小值的限制,最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

 

validate_password_mixed_case_count

密码至少要包含的小写字母个数和大写字母个数

 

validate_password_number_count

密码至少要包含的数字个数

 

validate_password_policy

密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。有以下取值:

Policy                 Tests Performed                                                                            

0 or LOW               Length                                                                                      

1 or MEDIUM         Length; numeric, lowercase/uppercase, and special characters

2 or STRONG        Length; numeric, lowercase/uppercase, and special characters; dictionary file  

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符

 

validate_password_special_char_count

密码至少要包含的特殊字符数

3)修改mysql参数配置

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.05 sec)
 
mysql> 
mysql> 
mysql> set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_number_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_special_char_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_length=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file    |       |
| validate_password_length             | 0     |
| validate_password_mixed_case_count   | 0     |
| validate_password_number_count       | 0     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 0     |
+--------------------------------------+-------+
6 rows in set (0.00 sec)

4)修改简单密码:

mysql> SET PASSWORD FOR 'ossec'@'localhost' = PASSWORD('ossec');
Query OK, 0 rows affected, 1 warning (0.00 sec)

ossec-server安装

在官网下载目前最稳定的版本v3.3.0(https://github.com/ossec/ossec-hids/archive/3.3.0.tar.gz)

wget https://github.com/ossec/ossec-hids/archive/2.8.1.tar.gz tar zxf 2.8.1.tar.gz cd ossec-hids-2.8.1

为了使ossec支持mysql,这里还需要在安装前执行一下命令:

cd src; make setdb; cd ..

(一开始装的是目前最稳定的3.3.0版本,但是make不支持mysql,一直报错:make: *** 没有规则可以创建目标“setdb”。 停止。查阅文档发现从3.0.0版本开始,编译方式不一样,也参考过使用make TARGET=server DATABASE=mysql install,但是还是会提示OSSEC not compiled with support for 'mysql',只能用回2.8.1的版本)

进入安装步骤,执行install.sh脚本,同时按照下面的信息进行填写,红色部分是我们需要输入的,其余部分按回车继续即可:

1- 您希望哪一种安装 (server, agent, local or help)? server 

 

  • 选择了 Server 类型的安装.

2- 正在初始化安装环境.

请选择 OSSEC HIDS 的安装路径 [/var/ossec]:  /var/ossec

  • OSSEC HIDS 将安装在 /var/ossec .

3- 正在配置 OSSEC HIDS.

3.1- 您希望收到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

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 时被启动
  • 联动功能默认的白名单是:
    • 192.168.30.1
  • 您希望添加更多的IP到白名单吗? (y/n)? [n]:  y
  • 请输入IP (用空格进行分隔): 192.168.30.130

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 以继续 ---

4- 正在安装系统

- 正在运行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 结束安装 (下面可能有更多信息). ---

直到碰到上面内容,说明安装完成。

ossec-server配置

安装好服务端之后,还需要配置,执行下面命令启用数据库支持:

[root@Centos ossec-hids-2.8.1]# /var/ossec/bin/ossec-control enable database

然后导入MySQL表结构到MySQL中:

[root@Centos ossec-hids-2.8.1]# mysql -u ossec -p ossec < ./src/os_dbd/mysql.schema

修改部分配置文件的权限,否则会启动服务失败:

[root@Centos ossec-hids-2.8.1]# chmod u+w /var/ossec/etc/ossec.conf

编辑ossec.conf文件,在ossec_config文件中添加mysql配置

<ossec_config>
  <database_output>
    <hostname>192.168.30.130</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>192.168.0.0/16</allowed-ips>
</remote>

重启ossec服务进行生效

[root@Centos ossec-hids-2.8.1]# /var/ossec/bin/ossec-control restart

添加ossec客户端并导出Key

在服务器上添加客户端,执行如下命令,按照提示进行输入,红色部分是我们输入的:

[root@Centos ossec-hids-2.8.1]# /var/ossec/bin/manage_agents

Key的作用是在客户端中导入并使得服务端与客户端达到联动的效果,这里记得把密钥复制一下保存起来。

查看ossec服务端的状态

/var/ossec/bin/agent_control -lc

ossec-agent安装

这里安装的方式跟上面server安装方式是一样的,然后执行./install.sh

稍等一会就会看到安装成功的提示

ossec-agent配置

linux

把刚刚生成的key导入到客户端中

root@Ubuntu:~/ossec-hids-2.8.1# ./bin/manage_agents

启动客户端

root@Ubuntu:~/ossec-hids-2.8.1# /var/ossec/bin/ossec-control start

 

 

windows

下载客户端exe: 

https://bintray.com/artifact/download/ossec/ossec-hids/ossec-agent-win64-2.8.1.exe 

或者

https://bintray.com/artifact/download/ossec/ossec-hids/ossec-agent-win32-2.8.1.exe 

然后默认安装 

注意:运行时要以管理员权限运行,然后粘贴你复制下来的秘钥

最后别忘了运行一下

安装第三方的web界面(ossec-wui  或  analogi)

wget -O /var/www/html/ossec-wui-0.9.tar.gz https://github.com/ossec/ossec-wui/archive/0.9.tar.gz
tar -xzf ossec-wui-0.9.tar.gz
mv ossec-wui-0.9 ossec
cd ossec
./setup.sh

对ossec.config进行配置,添加虚拟目录

vim /etc/httpd/conf.d/ossec.conf
Alias ossec/ "/var/www/html/ossec/"
<Directory "/var/www/html/ossec/">
AuthName "OSSEC AUTH"
Require valid-user
AuthType Basic
AuthUserFile /var/www/html/ossec/.htpasswd
</Directory>

重启apache

service httpd restart

重启完就可以看到web的界面了

这里一开始遇到了报错,提示ossec目录没有权限,需要对ossec授权

chmod -R 777 /var/ossec/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!