摘要:
详细的介绍和文档可以参考官网网站:http://www.ossec.net/
一 、前提环境准备
服务端计算机名: | ossec-server |
IP地址 | 192.168.232.100 |
客户端计算机名: | ossec-agent |
IP地址 | 192.168.232.101 |
####需要关闭selinux 和firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config ##将selinux
sestatus -v ##如果SELinux status参数为enabled即为开启状态,若为disabled则为关闭状态。
1、临时关闭(不用重启机器):
setenforce命令:
##setenforce 0 设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
systemctl disable --now firewalld 关闭firewalld
systemctl status firewalld.service ###查看firewalld 状态
二、 MySQL服务安装以及配置
2.1 安装mysql 并配置
####安装mysql
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum install -y mysql-server mysql-devel
##启动mysql,并设置mysql 开机自启动
systemctl start mysqld&&systemctl enable mysqld
#####查看到初始密码是 iK&fMcasN5)s
grep "password" /var/log/mysqld.log
2021-08-30T02:00:33.127281Z 1 [Note] A temporary password is generated for root@localhost: iK&fMcasN5)s
#####使用root登录mysql
[root@ossce-server ~]# mysql -uroot -p
2.11 修改mysql root密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
Query OK, 0 rows affected (0.00 sec)
2.12 配置mysql ossec 用户
mysql -uroot -p
mysql> create database ossec character set utf8;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant all on ossec.* to ossec@'localhost' identified by 'Ossec@123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
mysql> quit
首先我们安装需要用到的关联库和软件,由于我们最终是需要把日志导入到MySQL中进行分析,以及需要通过web程序对报警结果进行展示,同时需要把本机当做SMTP,所以需要在本机安装MySQL、Apache和sendmail服务。
2.2 安装php Apache和sendmail服务
yum install httpd php php-mysql sendmail
systemctl enable --now httpd
systemctl enable --now sendmail
三、安装ossec-server 服务并配置
3.2 ossec-server安装
首先通过官网的链接下载当前的最新稳定版本ossec-hids-3.6.0.tar.gz 的服务端包,同时解压。
wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz
安装 依赖包
yum install zlib-devel pcre2-devel libevent-devel make gcc
根据官方提示需要安装 Centos 系统需要安装
tar -zxf 3.6.0.tar.gz
cd ossec-hids-3.6.0
注意根据官网提示再2.9版本前安装需要提前编译 src make setdb使其支持MySQL,我们当前版是最新得3.6.0,每个版本安装都有细微得区别
wget https://github.com/ossec/ossec-hids/archive/refs/tags/2.8.1.tar.gz
[root@ossec-server ~]# tar -zxf 2.8.1.tar.gz
[root@ossec-server ~]# cd ossec-hids-2.8.1/
[root@ossec-server ossec-hids-2.8.1]#
[root@ossec-server ossec-hids-3.6.0]# env DATABASE=mysql ./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 v3.6.0 安装脚本 - http://www.ossec.net
您将开始 OSSEC HIDS 的安装.
请确认在您的机器上已经正确安装了 C 编译器.
- 系统类型: Linux ossec-server 3.10.0-1160.6.1.el7.x86_64
- 用户: root
- 主机: ossec-server
-- 按 ENTER 继续或 Ctrl-C 退出. --
1- 您希望哪一种安装 (server, agent, local or help)? server
- 选择了 Server 类型的安装.
2- 正在初始化安装环境.
- 请选择 OSSEC HIDS 的安装路径 [/var/ossec]:
- OSSEC HIDS 将安装在 /var/ossec .
3- 正在配置 OSSEC HIDS.
3.1- 您希望收到e-mail告警吗? (y/n) [y]: y
- 请输入您的 e-mail 地址? jiayongli@haier.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 时被启动
-
- 210.22.70.225
- 您希望添加更多的IP到白名单吗? (y/n)? [n]: y
- 请输入IP (用空格进行分隔): 10.203.19.105
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 以继续 ---
3.3 ossec-server安装配置
上面只是安装好了OSSEC服务端,下面则是为了配置服务端,使其工作正常。执行下面命令启用数据库支持:
#####启用数据库支持:
[root@ossec-server ossec-hids-3.6.0]# /var/ossec/bin/ossec-control enable database
#####后导入表结构 ossec 的数据库里中:
[root@ossec-server ossec-hids-3.6.0]# mysql -uossec -p ossec < ./src/os_dbd/mysql.schema
Enter password:
######ossec_config中添加MySQL配置
[root@ossec-server ossec-hids-3.6.0]# vi /var/ossec/etc/ossec.conf
<database_output>
<hostname>127.0.0.1</hostname>
<username>ossec</username>
<password>Ossec@123</password>
<database>ossec</database>
<type>mysql</type>
</database_output>
###########ossec.conf文件中的syslog部分进行配置,修改ossec.conf文件
<remote>
<connection>syslog</connection>
<allowed-ips>0/0</allowed-ips>
</remote>
3.4 在服务端添加ossec客户端并导出Key
[root@ossec-server ossec-hids-3.6.0]# /var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v3.6.0 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-106
* The IP Address of the new agent: 10.203.19.106
* An ID for the new agent[001]: 001
Agent information:
ID:001
Name:ossec-agent-106
IP Address:10.203.19.106
Confirm adding it?(y/n): y
Agent added with ID 001.
****************************************
* OSSEC HIDS v3.6.0 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-106, IP: 10.203.19.106
Provide the ID of the agent to extract the key (or '\q' to quit): 001
Agent key information for '001' is:
MDAxIG9zc2VjLWFnZW50LTEwNiAxMC4yMDMuMTkuMTA2IDlhMzliYzQ4NzcyNzZjMTFlNTBiYWE5OTEwMDY1NmU0ZjkwNjUxZjQ1M2M4MTgyNGYwMzZjNGJhOGQ0ZTMxZjQ=
** Press ENTER to return to the main menu.
保存好key 需要在客户端导入:[root@ossec-server ossec-hids-3.6.0]# /var/ossec/bin/ossec-control start
四 、客户端 ossec-agent 安装以及配置
ossec的服务端和客户端是同一个安装包,我们需要客户端上下载安装包并配置
4.1 ossec-agent 安装
####在安装 ossec-agent 安装依赖包
yum install zlib-devel pcre2-devel libevent-devel systemd-devel
wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz
[root@ossec-agent ossec-hids-3.6.0]# ./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 v3.6.0 安装脚本 - http://www.ossec.net
您将开始 OSSEC HIDS 的安装.
请确认在您的机器上已经正确安装了 C 编译器.
- 系统类型: Linux ossec-agent 3.10.0-1160.6.1.el7.x86_64
- 用户: root
- 主机: ossec-agent
-- 按 ENTER 继续或 Ctrl-C 退出. --
1- 您希望哪一种安装 (server, agent, local or help)? agent
- 选择了 Agent(client) 类型的安装.
2- 正在初始化安装环境.
- 请选择 OSSEC HIDS 的安装路径 [/var/ossec]:
- OSSEC HIDS 将安装在 /var/ossec .
3- 正在配置 OSSEC HIDS.
3.1- 请输入 OSSEC HIDS 服务器的IP地址或主机名: 10.203.19.105
- 添加服务器IP 10.203.19.105
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
-- /var/log/httpd/error_log (apache log)
-- /var/log/httpd/access_log (apache log)
-如果你希望监控其他文件, 只需要在配置文件ossec.conf中
添加新的一项.
任何关于配置的疑问您都可以在 http://www.ossec.net 找到答案.
--- 按 ENTER 以继续 ---
补充说明 当时
4.2 ossec-agent配置
将服务端生成的key,在客户端中导入
为了避免安装时候报错:
manage_agents: ERROR: Cannot unlink /queue/rids/sender: No such file or directory
需要在rids下创建sender 文件
touch /var/ossec/queue/rids/sender
[root@ossec-agent ossec-hids-3.6.0]# /var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v3.6.0 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): MDAxIG9zc2VjLWFnZW50IDEwLjIwMy4xOS4xMDYgOGNiMWYzNjk4MjE3OGVlZDJkOGYzMmI4Nzk0OTYyYmQzZjUzODgyYmYzOWExYWI1ZTFjYWU2YTM1OGJhMTI2NA==
Agent information:
ID:001
Name:ossec-agent
IP Address:10.203.19.106
Confirm adding it?(y/n): y
Added.
** Press ENTER to return to the main menu.
简写方式:
/var/ossec/bin/manage_agents -i "MDAxIG9zc2VjLWFnZW50IDEwLjIwMy4xOS4xMDYgOGNiMWYzNjk4MjE3OGVlZDJkOGYzMmI4Nzk0OTYyYmQzZjUzODgyYmYzOWExYWI1ZTFjYWU2YTM1OGJhMTI2NA=="
最后启动ossec-agent客户端
[root@ossec-agent ossec-hids-3.6.0]# /var/ossec/bin/ossec-control start
五 、ossec-server安装第三方的web界面
可是目前这个环境如果我们要分析ossec的报警信息就太麻烦了,所以我们安装第三方的 web界面用来显示报警信息
analog第三方web 说明,analog 这个项目是早期做osse web警告流量展示的应有目前测试适配2.9以前的oss 版本
目前ossec 最新的版是3.6.0,有很多企业都将ossec 接入到efk 里使用kibana 来展示web 界面,由于需求问题,这边我使用的是ossec 下的wui 来做web 展示,警告信息罗列。
ossec -wui 安装
从github上搜索ossec 项目可以看到一个wui的项目,这个就ossec 的一个web工具。
现在地址为:
https://github.com/ossec/ossec-wui/archive/refs/tags/0.9.tar.gz
将下载的0.9.tar.gz 保存至httpd 的web目录下
/var/www/html/
tar -zxvf 0.9.tar.gz
mv ossec-wui-0.9 ossec-wui
./setup.sh
ossec-wui 做ossec web界面,可以很好的展示ossec 的警告信息,可以更好维护系统。
六、ossec-agent 批量安装shang
由于 ossec-agent 安装很麻烦,连接时候需要在server 上做认证。
6.1 在ossec server 批量生成客户端信息
我做的批量的安装思路是:整理一份限时主机名 和ip 的列表
cat ip_hostname.txt
ip1:servername1
ip2:servername2
# *************************************************
# Author : Erice Jia
# Email : erice_jia@163.com
# Last modified : 2021-09-03
# Filename : sendkey.sh
# Description :
# *************************************************
#!/bin/bash
for i in $(cat ./ip_hostname.txt )
do
#取出ip和hostname
ip=$(echo "${i}" |awk -F":" '{print $1}')
name=$(echo "${i}" |awk -F":" '{print $2}')
/var/ossec/bin/manage_agents -a $ip -n $name
agent_id=$(/var/ossec/bin/manage_agents -l|grep "$ip"|grep "ID:"|awk -F" " '{print $2}'|awk -F"," '{print $1}')
agent_key=$(/var/ossec/bin/manage_agents -e $agent_id -j|awk -F":" '{print $3}'|awk -F"\"" '{print $2}')
echo "$ip:$agent_key" >> ./ip_key.txt
done
我们通过上面在 ossec 主机上执行上面的脚本可以 ,得到一个ip_key.txt 的 文件
cat ip_key.txt
ip1:MDAyIHRjb3Ntby1oZGMtY2VtZ3QwMSAxMC4yMDYuMTQxLjEgYzk5NDNlNWM4ZTFmZjM3OWNiMDFhNmVlMjJjNGViMTc0NWM1MTExMmIzOTRhYzYyMTQwZjNiYjMxMzYyOGU5OA==
ip2:MDAzIHRjb3Ntby1oZGMtY2VubzAxIDEwLjIwNi4xNDIuMSA2YTVjZDVhYTdiMmU3NGRiZTkyNTU5MGZiMzc3OWVlNzNlYzA1N2UyNDRjMDU5NmEwY2QzMzZjOTIzYmY2MzJh
6.2 在ossec agent批量连接ossec agent
这使用ansible 来批量安装之前,需要10.203.19.154 安装nginx 并添加autoindex
####在nginx.conf server 里添加
location ~ ^/download/.* {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
add_header Cache-Control no-store;
}
将ip_key.txt,3.6.0.tar.gz ossec_conf.tar preloaded-vars.conf 拷贝到对应的下载目录
#####ossec_conf.tar和
#####preloaded-vars.conf 为 10.203.19.106 上/root/ossec-hids-3.6.0/etc/preloaded-vars.conf
#####ossec_conf.tar 为 10.203.19.106 上/var/ossec/etc/ossec.conf 打包后文件
# *************************************************
# Author : Erice Jia
# Email : erice_jia@163.com
# Last modified : 2021-08-03
# Filename : install_ossec.sh
# Description :
# *************************************************
yum -y install openssl-devel zlib-devel pcre2-devel libevent-devel make gcc wget
cd /root/
wget http://10.203.19.154/download/2021/ossce-agent/ip_key.txt
wget http://10.203.19.154/download/2021/ossce-agent/3.6.0.tar.gz
tar -zxf 3.6.0.tar.gz
cd ./ossec-hids-3.6.0
wget -P /root/ossec-hids-3.6.0/etc http://10.203.19.154/download/2021/ossce-agent/preloaded-vars.conf
./install.sh
mv /var/ossec/etc/ossec.conf /var/ossec/etc/ossec-agent.conf.bak2021
cd /var/ossec/etc
wget http://10.203.19.154/download/2021/ossce-agent/ossec_conf.tar
tar -xf ossec_conf.tar
#取出本机ip
touch /var/ossec/queue/rids/sender
#ip=$(/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}')
ip=$(/sbin/ifconfig eth0|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}')
echo $ip
##取本机ip对应得key
agent_key=$(grep "$ip:" /root/ip_key.txt|awk -F":" '{print $2}')
echo $agent_key
/var/ossec/bin/manage_agents -i "$agent_key" << EOF
Y
EOF
/var/ossec/bin/ossec-control start
rm -rf /root/ip_key.txt
###该脚本存在一个问题就是 某些主机没有eth0的问题,如果在了解业务的情况可以使用 if 判断对ip 如 eth0值为空是获取 eth3的(假设eth3 该主机的网卡)
Comments | NOTHING