不多說,直接上干貨!
前言
寫在前面的話,網上能夠找到一些關於ossec方面的資料,雖然很少,但是總比沒有強,不過在實際的使用過程中還是會碰到許多稀奇古怪的問題。整理整理我的使用過程,就當做一篇筆記吧。
PS:本文填了很多坑。
OSSEC是一款開源的基於主機的入侵檢測系統,可以簡稱為HIDS。它具備日志分析,文件完整性檢查,策略監控,rootkit檢測,實時報警以及聯動響應等功能。它支持多種操作系統:Linux、Windows、MacOS、Solaris、HP-UX、AIX。屬於企業安全之利器。
詳細的介紹和文檔可以參考官網網站:
環境
本文中的環境極其簡單,兩台CentOS 6.5虛擬機。
關於CentOS6.5的安裝,這里不多贅述。
CentOS 6.5的安裝詳解
服務端:
計算機名:ossec-server
IP地址:192.168.80.31
客戶端:
計算機名:ossec-agent
IP地址:192.168.80.32
第一步 : 前提環境准備(在ossec-server端)
首先我們安裝需要用到的關聯庫和軟件,由於我們最終是需要把日志導入到MySQL中進行分析,以及需要通過web程序對報警結果進行展示,同時需要把本機當做SMTP,所以需要在本機安裝MySQL、Apache和sendmail服務。在當前的終端中執行如下命令:
[root@ossec-server ~] yum install wget gcc make mysql mysql-server mysql-devel httpd php php-mysql sendmail
啟動httpd、mysql、sendmail服務
[root@ossec-server ~] /etc/init.d/httpd start
[root@ossec-server ~] /etc/init.d/mysqld start
[root@ossec-server ~] /etc/init.d/sendmail start
或者如下這樣來啟動,也是可以的:
[root@ossec-server ~] for i in {httpd,mysqld,sendmail}; do service $i restart; done
下面創建數據庫以方便我們下面的安裝配置,連接到本機的MySQL,然后執行如下命令:
[root@ossec-server ~] mysql -uroot -p mysql> create database ossec; 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
大概的環境已經准備的差不多了。
上述語句的意思是新增一個用戶ossec密碼為空,讓他只可以在localhost上登錄,並可以對數據庫ossec的所有表進行插入、查詢、修改、插入、刪除的操作
第二步 : 服務器ossec-server安裝
首先通過官網的鏈接下載當前的最新穩定版本ossec-hids-2.8.1.tar.gz 的服務端包,同時解壓。
[root@ossec-server ~] # wget http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz [root@ossec-server ~] # tar zxf ossec-hids-2.8.1.tar.gz [root@ossec-server ~] # cd ossec-hids-2.8.1
為了使OSSEC支持MySQL,需要在安裝前執行make setdb命令,如下
[root@ossec-server ~] # cd src; make setdb; cd ..
看到如下的信息說明可以正常支持MySQL:
Info: Compiled with MySQL support.
下面進入安裝步驟,執行install.sh腳本,同時按照下面的信息進行填寫,紅色部分是我們需要輸入的,其余部分按回車繼續即可:
[root@ossec-server ossec-hids-2.8.1]# ./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 編譯器.
如果您有任何疑問或建議,請給發郵件.
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
這里,我是輸入我自己的163郵箱。大家自行去選擇
- 我們找到您的 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 時被啟動
-
聯動功能默認的白名單是:
- 8.8.8.8
-
您希望添加更多的IP到白名單嗎? (y/n)? [n]: y
-
請輸入IP (用空格進行分隔): 192.168.80.31
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 以繼續 ---
5- 正在安裝系統
- 正在運行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配置
上面只是安裝好了OSSEC服務端,下面則是為了配置服務端,使其工作正常。執行下面命令啟用數據庫支持:
[root@ossec-server ossec-hids-2.8.1]# /var/ossec/bin/ossec-control enable database
然后導入MySQL表結構到MySQL中:
[root@ossec-server ossec-hids-2.8.1]# mysql -uossec -p ossec < ./src/os_dbd/mysql.schema
修改部分配置文件的權限,否則會啟動服務失敗:
[root@ossec-server 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.80.31</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@ossec-server logs]# 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.
在服務器上添加客戶端,執行如下命令,按照提示進行輸入,紅色部分是我們輸入的:
[[root@ossec-server logs]# /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
- The IP Address of the new agent: 192.168.80.32
- An ID for the new agent[001]: 001
Agent information:
ID:001
Name:ossec-agent
IP Address:192.168.80.32
Confirm adding it?(y/n): y
Agent added.
注意、需要將key記錄到文本中,后面需要用到。
然后程序會重新進入到第一次的界面,如下,我們導出剛才添加的那個agent的key,用於后面的客戶端連接到服務端:
**************************************** * 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:
MDAxIG9zc2VjLWFnZW50IDE5Mi4xNjguODAuMzIgN2MyZTMyMzYwZTBhNTVmNDVhNTJlMTE5MjRjNjRiNjZjOTdhYjlmN2Q2MjVmYzY4MGFiZjNmZGJmOGIwY2JlMw
** Press ENTER to return to the main menu.
到現在就可以啟動我們的ossec服務端了。
[root@ossec-server ~] # /var/ossec/bin/ossec-control start
或者執行
[root@ossec-server ~] # /etc/init.d/ossec start
第四步 : 客戶端ossec-agent安裝
由於我們本身客戶端也是Linux服務器,而ossec的服務端和客戶端是同一個安裝包,所以在客戶端上下載安裝包,並且解壓安裝,如下。
[root@ossec-agent ~]# wget http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz [root@ossec-agent ~]# tar zxf ossec-hids-2.8.1.tar.gz [root@ossec-agent ~]# cd ossec-hids-2.8.1 [root@ossec-agent ~]# ./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 編譯器.
如果您有任何疑問或建議,請給發郵件.
1- 您希望哪一種安裝 (server, agent, local or help)? agent
- 選擇了 Agent(client) 類型的安裝.
2- 正在初始化安裝環境.
-
請選擇 OSSEC HIDS 的安裝路徑 [/var/ossec]: /var/ossec
- OSSEC HIDS 將安裝在 /opt/ossec .
3- 正在配置 OSSEC HIDS.
3.1- 請輸入 OSSEC HIDS 服務器的IP地址或主機名: 192.168.80.31
-
添加服務器IP 192.168.100.103
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/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 以繼續 ---
5- 正在安裝系統
- 正在運行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-agent配置
其實配置ossec客戶端就是把剛才由服務端生成的key,在客戶端中導入,執行如下命令
[root@ossec-agent ossec-hids-2.8.1]# /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): MDAxIG9zc2VjLWFnZW50IDE5Mi4xNjguODAuMzIgN2MyZTMyMzYwZTBhNTVmNDVhNTJlMTE5MjRjNjRiNjZjOTdhYjlmN2Q2MjVmYzY4MGFiZjNmZGJmOGIwY2JlMw
Agent information:
ID:001
Name:ossec-agent
IP Address: 192.168.80.32
Confirm adding it?(y/n): y
Added.
** Press ENTER to return to the main menu.
最后啟動ossec-agent客戶端
[root@ossec-agent ossec-hids-2.8.1]# /var/ossec/bin/ossec-control start
或者執行
[root@ossec-agent ossec-hids-2.8.1]# /etc/init.d/ossec start
第六步 : 為ossec-server安裝第三方的web界面(ossec-wui 或 analogi)
上面我們安裝了ossec的服務端,並且為ossec添加了一個客戶端,非常簡單的一個環境,環境是搭建好了,可是目前這個環境如果我們要分析ossec的報警信息就太麻煩了,當然大家可以去用官方推薦的ossec-wui。
我這里,所以我們安裝第三方的 web界面用來顯示報警信息。
[root@ossec-server ~]# wget https://github.com/ECSC/analogi/archive/master.zip [root@ossec-server ~]# unzip master [root@ossec-server ~]# mv analogi-master/ /var/www/html/analogi [root@ossec-server ~]# cd /var/www/html/ [root@ossec-serverhtml]# chown -R apache.apache analogi/ [root@ossec-server html]# cd analogi/ [root@ossec-server analogi]# cp db_ossec.php.new db_ossec.php
編輯db_ossec.php文件,修改MySQL的配置信息:
define ('DB_USER_O', 'ossec'); define ('DB_PASSWORD_O', 'ossec'); define ('DB_HOST_O', '127.0.0.1'); define ('DB_NAME_O', 'ossec');
修改 apache 配置,增加虛擬目錄,
[root@ossec-server ~]# vim /etc/httpd/conf.d/analogi.conf
添加如下內容
Alias /analogi /var/www/html/analogi <Directory /var/www/html/analogi> Order deny,allow Deny from all Allow from 192.168.0.0/16 </Directory>
然后重新啟動Apache
[root@ossec-server ~]# /etc/init.d/httpd restart
[root@ossec-server html]# service httpd status Redirecting to /bin/systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2018-03-06 05:47:09 CST; 23s ago Docs: man:httpd(8) man:apachectl(8) Process: 3873 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 3878 (httpd) Status: "Total requests: 21; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─3878 /usr/sbin/httpd -DFOREGROUND ├─3880 /usr/sbin/httpd -DFOREGROUND ├─3881 /usr/sbin/httpd -DFOREGROUND ├─3882 /usr/sbin/httpd -DFOREGROUND ├─3883 /usr/sbin/httpd -DFOREGROUND ├─3884 /usr/sbin/httpd -DFOREGROUND └─3889 /usr/sbin/httpd -DFOREGROUND Mar 06 05:47:08 ossec-server systemd[1]: Starting The Apache HTTP Server... Mar 06 05:47:09 ossec-server httpd[3878]: AH00558: httpd: Could not reliably determin...ge Mar 06 05:47:09 ossec-server systemd[1]: Started The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full. [root@ossec-server html]#
如果,你這里起不來,則就要把apche的問題解決就好了,很簡單的。
注意事項:如果訪問http://192.168.80.31/analogi/時總是拋錯403請嘗試以下兩種方法調試:
[root@localhost conf.d]# systemctl stop firewalld.service [root@localhost httpd]# setenforce 0
至此,OSSEC的安裝與調試已全部結束。
然后訪問就可以了。
第七步 : 為ossec-server安裝第三方的web界面(ossec-wui )
https://github.com/ossec/ossec-wui/releases
[root@ossec-server html]# pwd /var/www/html [root@ossec-server html]# ls analogi ossec-wui-0.9.zip [root@ossec-server html]# unzip ossec-wui-master.zip unzip: cannot find or open ossec-wui-master.zip, ossec-wui-master.zip.zip or ossec-wui-master.zip.ZIP. [root@ossec-server html]# ll total 184 drwxr-xr-x 5 apache apache 4096 Mar 6 05:48 analogi -rw-r--r-- 1 root root 182791 Mar 6 10:40 ossec-wui-0.9.zip [root@ossec-server html]# yum -y install unzip [root@ossec-server html]# unzip ossec-wui-master.zip
如果你這里,也是這樣的情況,則
linux下解壓unzip報錯“cannot find zipfile directory……”
http://www.vuln.cn/8532
當然,你這里,也可以是tar.gz
[root@ossec-server html]# pwd /var/www/html [root@ossec-server html]# ls analogi ossec-wui-0.9.tar.gz [root@ossec-server html]# tar -zxvf ossec-wui-0.9.tar.gz
[root@ossec-server html]# pwd /var/www/html [root@ossec-server html]# ls analogi ossec-wui-0.9 ossec-wui-0.9.tar.gz [root@ossec-server html]# rm ossec-wui-0.9.tar.gz rm: remove regular file ‘ossec-wui-0.9.tar.gz’? y [root@ossec-server html]# mv ossec-wui-0.9/ ossec [root@ossec-server html]# ls analogi ossec [root@ossec-server html]# cd ossec/ [root@ossec-server ossec]# ls CONTRIB htaccess_def.txt index.php lib ossec_conf.php README.search site css img js LICENSE README setup.sh [root@ossec-server ossec]# ./setup.sh Setting up ossec ui... Username: ossec New password: Re-type new password: Adding password for user ossec Enter your web server user name (e.g. apache, www, nobody, www-data, ...) apache You must restart your web server after this setup is done. Setup completed successfully. [root@ossec-server ossec]#
再
[root@ossec-server ossec]# vim /etc/httpd/conf.d/ossec.conf
保存退出。 chown apache:apache *
service httpd restart
最后
上面是整個安裝和配置步驟,要想讓ossec發揮更大的作用,還需要針對實際的環境進行配置修改和規則的調整和編寫。在以后的我們會更多關注OSSEC在實際應用中的經驗。
后續將進一步剖析Ossec入侵檢測系統的規則、數據日志.....
同時,大家可以關注我的個人博客:
http://www.cnblogs.com/zlslch/ 和 http://www.cnblogs.com/lchzls/ http://www.cnblogs.com/sunnyDream/
詳情請見:http://www.cnblogs.com/zlslch/p/7473861.html
人生苦短,我願分享。本公眾號將秉持活到老學到老學習無休止的交流分享開源精神,匯聚於互聯網和個人學習工作的精華干貨知識,一切來於互聯網,反饋回互聯網。
目前研究領域:大數據、機器學習、深度學習、人工智能、數據挖掘、數據分析。 語言涉及:Java、Scala、Python、Shell、Linux等 。同時還涉及平常所使用的手機、電腦和互聯網上的使用技巧、問題和實用軟件。 只要你一直關注和呆在群里,每天必須有收獲
對應本平台的討論和答疑QQ群:大數據和人工智能躺過的坑(總群)(161156071)
ossec@localhost;