samhain部署通常采用C/S模式,各被监控机为配置为client,日志收集服务器为Server。采用C/S模式,client的配置文件和数据文件存储在Server上,client上samhain运行时自动到server上下载配置文件和数据库文件。

安装准备:
预先安装gcc编译器等开发工具用以编译samhain源码。
MySQL+Apache(Server端)
下载源码 http://www.la-samhna.de/samhain/s_download.html
 
安装步骤
------------Server安装------------
1、创建一个独立的用户
 
  
  1. useradd yule 
2、编译并安装
 
  
  1. ./configure --enable-network=server --with-database=mysql --enable-xml-log --enable-identity=yule 
  2. make 
  3. make install 
  4. make install-boot 
  5. make install-user 
3、初始化mysql数据库
 
  
  1. mysql -p < sql_init/samhain.mysql.ini 
  2. echo "grant select, insert on samhain.log to samhain@localhost IDENTIFIED BY 'samhain';" |mysql -p   
  3. echo "FlUSH PRIVILEGES;" |mysql -p 
4、添加自启动
Red Hat
 
  
  1. chkconfig --add yule 
  2. chkconfig yule on 
Debian
 
  
  1. update-rc.ld yule defaults 
5、启动yule服务
 
  
  1. /etc/init.d/yule start 
Apache配置
在apache的conf.d目录下新建yule.conf文件,内容如下:
 
  
  1. <Directory "/var/log/yule/"> 
  2.    Options ExecCGI 
  3.    AllowOverride None 
  4.    Order allow,deny 
  5.    Allow from all 
  6. </Directory> 
  7. Alias /yule.html "/var/log/yule/yule.html"
  修改yule.html文件权限
 
  
  1. chmod +r /var/log/yule/yule.html 
重启Apache
 
  
  1. /etc/init.d/apache restart 
测试访问 http://yourserver/yule.html
------------Server安装结束---------
 
------------Client 安装------------
1、编译并安装
 
  
  1. ./configure --enable-network=client --with-config-file=REQ_FROM_SERVER --with-data-file=REQ_FROM_SERVER/var/lib/samhain/samhain --enable-install-name=samhain --with-logserver=IP_OF_YOUR_SERVER  
  2.     make 
  3.     make install 
  4.     make isntall-boot 
2、设置二进制文件密码
 
  
  1. cd /usr/local/sbin 
  2. ./samhain_setpwd samhain new 1234567890123456 
  3. mv samhain.new samhain 
密码必须为16位0-9,A-F组合,可以通过在Server上运行yule -G生成随机密码。
3、添加自启动
Red Hat
 
  
  1. chkconfig --add samhain 
  2. chkconfig samhain on 
Debian
 
  
  1. update-rc.d samhain defaults 
4、返回Server上添加client授权
 
  
  1. /usr/local/sbin/yule -P 1234567890123456 |sed 's/HOSTNAME/CLIENT_HOSTNAME_HERE/' >>/etc/yulerc 
如果client的hostname无法解析可以直接使用ip地址。
 
5、返回client自定义配置文件,并上传到server上。
 
  
  1. cd TOP_LEVEL_OF_SOURCE_DIR 
  2. cp samhainrc.linux rc.`hostname` 
根据个人需求编辑rc.`hostname`
 
  
  1. scp rc.`hostname` YULE_SERVER:/var/lib/yule/ 
返回server
 
  
  1. chown yule:yule /var/lib/yule/rc.client_name 
6、初始化数据库文件
返回client
 
  
  1. /usr/local/sbin/samhain -t init -p info 
编译时指定的数据库文件为/var/lib/samhain/samhain,上传数据库文件
 
  
  1. scp /var/lib/samhain/samhain YULE_SERVER:/var/lib/yule/file.client_name 
返回server
 
  
  1. chown yule:yule /var/lib/yule/file.client_name 
注意:server上配置文件必须以rc开头,数据库文件以file开头
7、启动samhain
 
   
  1. /etc/init.d/samhain start 
  2. 或者 samhain -t check 
------------client安装结束---------
 

 问题记录

1、在安装server时--enable-database=mysql选项一直无法编译通过。提示错误:

Error: unable to find mysql headers mysql.h

解决办法: 装mysql开发包。 

 
  
  1. redhat 
  2. rpm -ivh mysql-devel-version.rpm 
  3.  
  4. debian 
  5. apt-get install libmysqlclientversion-dev