1.Wazuh开发环境搭建
之前安装Wazuh直接从deb包里安装,都是编译过的软件,无法进行修改。为了对Wazuh进行二次开发,因此需要搭建Wazuh的编译环境。以下为Ubuntu18.04下编译环境搭建过程:
1.安装必要的编译软件
apt-get install gcc-mingw-w64 apt-get install nsis apt-get install make
2.安装cmake
sudo apt install build-essential libssl-dev
wget https://github.com/Kitware/CMake/releases/download/v3.16.5/cmake-3.16.5.tar.gz
tar -zxvf cmake-3.16.5.tar.gz
cd cmake-3.16.5
./bootstrap
make
sudo make install
3.下载源码
git clone https://github.com/wazuh/wazuh.git
4.编译测试
cd wazuh/src make deps TARGET=agent #下载依赖包,比较缓慢,建议不要轻易执行make clean make TARGET=agent
5.编译完成后,将libwazuhext.so添加到lib目录即可运行程序
cp libwazuhext.so /usr/lib/
2.wazuh项目结构
wazuh项目的整体结构如下:
├── add_localfiles.sh #更新的时候用到的一个脚本 ├── api #api目录 ├── BUGS #告诉你如何提交BUG ├── CHANGELOG.md #项目版本迭代的修改记录 ├── CONFIG #没啥用,就告诉你根据install.sh来配置项目 ├── CONTRIBUTORS #项目参与人名单 ├── etc #wazuh的配置文件 ├── extensions #用到的其它软件(elasticsearch、filebeat等)的配置文件 ├── framework #这里面保存着Wazuh集群相关的代码,具体可以参考https://documentation.wazuh.com/current/development/wazuh-cluster.html?highlight=framework#code-structure ├── gen_ossec.sh #一个可以生成配置文件的脚本 ├── INSTALL #wauzh从源码安装的简易说明 ├── install.sh #安装脚本,可以从源码安装server和client ├── integrations #主要是wazuh调用外部API的脚本,比如调用virustotal判断新增文件是否是病毒。可以参考https://documentation.wazuh.com/current/user-manual/capabilities/virustotal-scan/integration.html来配置 ├── LICENSE ├── README.md ├── ruleset #rules和decoders ├── src #agent和server的源码 ├── tools #一些不知道干啥的小脚本 ├── upgrade.sh #wauzh更新脚本 └── wodles #对于集群、容器的相关监控py脚本,例如docker容器的监控可以参考https://documentation.wazuh.com/current/docker-monitor/monitoring_containers_activity.html?highlight=docker%20wodle
其中,src
目录下保存着wazuh的agent和server端的源代码。该项目使用makefile来管理编译信息,该Makefile长度达到了2000多行,内容较多。
3.制作安装包
3.1 deb包制作
wazuh项目给提供了非常方便的安装包制作脚本。脚本保存于wazuh-packages
项目中,使用也比较简单,这个项目中使用的是docker进行编译,需要提前在系统中安装docker环境。但是这个项目似乎对于本地的源码编译有BUG,经过测试无法编译使用。但是可以参考Dockerfile中的编译方法来进行打包。
1.克隆wazuh-packages
cd /home/ubuntu
git clone https://github.com/wazuh/wazuh-packages
2.安装依赖
apt-get install devscripts equivs
3.拷贝所需文件
cp -r /home/ubuntu/wazuh-packages/debs/SPECS/4.2.0/wazuh-agent/debian/ /home/ubuntu/wazuh/ cp /home/ubuntu/wazuh-packages/debs/gen_permissions.sh /home/ubuntu/wazuh/
4.修改rules文件
sed -i s:RELEASE:1:g ./debian/changelog sed -i 's:export JOBS=.*:export JOBS=2:g' ./debian/rules sed -i 's:export DEBUG_ENABLED=.*:export DEBUG_ENABLED=no:g' ./debian/rules sed -i 's#export PATH=.*#export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin#g' ./debian/rules sed -i 's:export INSTALLATION_DIR=.*:export INSTALLATION_DIR=/var/ossec:g' ./debian/rules sed -i 's:DIR="/var/ossec":DIR="/var/ossec":g' ./debian/preinst ./debian/postinst ./debian/prerm ./debian/postrm sed -i 's#export LD_LIBRARY_PATH=.*#export LD_LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7.5.0:#g' ./debian/rules
5.构建环境并编译
mk-build-deps -ir -t 'apt-get -o Debug::pkgProblemResolver=yes -y' debuild --rootcmd=sudo -b -uc -us
完成后在/home/ubuntu目录下就会生成一个deb包。