OSSEC是一款由Trend Micro(趨勢科技)開發的開源的基於主機的入侵檢測系統,能夠簡稱爲HIDS。它具有日誌分析,文件完整性檢查,策略監控,rootkit檢測,實時報警以及聯動響應等功能。它支持多種操做系統:Linux、Windows、MacOS、Solaris、HP-UX、AIX。屬於企業安全之利器。php
詳細的介紹和文檔能夠參考官網網站:html
計算機名:ossec-server.com IP地址:10.10.16.1
首先咱們安裝須要用到的關聯庫和軟件,因爲咱們最終是須要把日誌導入到MySQL中進行分析,以及須要經過web程序對報警結果進行展現,同時須要把本機當作SMTP,因此須要在本機安裝MySQL、Apache和sendmail服務。在當前的終端中執行以下命令:linux
[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
下面建立數據庫以方便咱們下面的安裝配置,鏈接到本機的MySQL,而後執行以下命令:git
[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
首先經過官網的連接下載當前的最新穩定版本 2.7 的服務端包,同時解壓。github
[root@ossec-server ~]# wget http://www.ossec.net/files/ossec-hids-2.7.1.tar.gz [root@ossec-server ~]# tar zxf ossec-hids-2.7.1.tar.gz [root@ossec-server ~]# cd ossec-hids-2.7.1
爲了使OSSEC支持MySQL,須要在安裝前執行make setdb命令,以下web
[root@ossec-server ossec-hids-2.7.1]# cd src; make setdb; cd ..
看到以下的信息說明能夠正常支持MySQL:sql
Info: Compiled with MySQL support.
下面進入安裝步驟,執行install.sh腳本,同時按照下面的信息進行填寫:數據庫
[root@ossec-server ossec-hids-2.7.1]# sh install.sh which: no host in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin:/usr/local/jdk1.7.0_09//bin:/root/bin) ** 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 which: no host in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin:/usr/local/jdk1.7.0_09//bin:/root/bin) OSSEC HIDS v2.7.1 安裝腳本 - http://www.ossec.net 您將開始 OSSEC HIDS 的安裝. 請確認在您的機器上已經正確安裝了 C 編譯器. 若是您有任何疑問或建議,請給 dcid@ossec.net (或 daniel.cid@gmail.com) 發郵件. - 系統類型: Linux ossec-server.com 2.6.32-431.el6.x86_64 - 用戶: root - 主機: ossec-server.com -- 按 ENTER 繼續或 Ctrl-C 退出. -- 1- 您但願哪種安裝 (server, agent, local or help)? server - 選擇了 Server 類型的安裝. 2- 正在初始化安裝環境. - 請選擇 OSSEC HIDS 的安裝路徑 [/usr/local/ossec]: /usr/local/ossec - OSSEC HIDS 將安裝在 /usr/local/ossec . 3- 正在配置 OSSEC HIDS. 3.1- 您但願收到e-mail告警嗎? (y/n) [y]: y - 請輸入您的 e-mail 地址? koy1619@linux.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 時被啓動 - 聯動功能默認的白名單是: - 10.10.16.1 - 您但願添加更多的IP到白名單嗎? (y/n)? [n]: n 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 以繼續 ---
最後敲回車便可安裝到/usr/local/ossec
,注意上面的email
地址和白名單
後面能夠在配置文件中修改。apache
上面只是安裝好了OSSEC服務端,下面則是爲了配置服務端,使其工做正常。執行下面命令啓用數據庫支持:
[root@ossec-server ossec-hids-2.7.1]# /usr/local/ossec/bin/ossec-control enable database
而後導入MySQL表結構到MySQL中:
[root@ossec-server ossec-hids-2.7.1]# mysql -uossec -p ossec < src/os_dbd/mysql.schema
修改配置文件的權限,不然會啓動服務失敗:
[root@ossec-server ossec-hids-2.7.1]# chmod u+w /usr/local/ossec/etc/ossec.conf
而後編輯ossec.conf文件,在ossec_config中添加MySQL配置:
<database_output> <hostname>localhost</hostname> <username>ossec</username> <password>ossec</password> <database>ossec</database> <type>mysql</type> </database_output>
因爲咱們在前面的安裝過程當中支持接受遠程機器的syslog,因此咱們還須要對ossec.conf文件中的syslog部分進行配置,修改ossec.conf文件,按照下面的內容進行修改,把咱們網段能夠全添加進去:
<remote> <connection>syslog</connection> <allowed-ips>10.10.16.0/24</allowed-ips> </remote>
而後添加咱們須要監控的客戶機的白名單IP地址
<global> <white_list>127.0.0.1</white_list> <white_list>^localhost.localdomain$</white_list> <white_list>10.10.16.2</white_list> <white_list>10.10.16.3</white_list> <white_list>10.10.16.4</white_list> ... </global>
若是有多個郵件的收件人須要添加
<global> <email_notification>yes</email_notification> <email_to>koy@linux.com</email_to> <email_to>koy2@linux.com</email_to> <email_to>koy3@linux.com</email_to> <smtp_server>127.0.0.1</smtp_server> <email_from>ossecm@ossec-server.com</email_from> </global>
在服務器上添加客戶端,執行以下命令,按照提示進行輸:
[root@ossec-server ossec-hids-2.7.1]# /usr/local/ossec/bin/manage_agents **************************************** * OSSEC HIDS v2.7.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: client1 * The IP Address of the new agent: 10.10.16.2 * An ID for the new agent[001]: 001 Agent information: ID:001 Name:client1 IP Address:10.10.16.2 Confirm adding it?(y/n): y Agent added. **************************************** * OSSEC HIDS v2.7.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選項
**************************************** * OSSEC HIDS v2.7.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: client1, IP: 10.10.16.2 Provide the ID of the agent to extract the key (or '\q' to quit): 001 Agent key information for '001' is: MDAyIGNsaWVudDEgMTAuMTAuMTYuMiA2MDQ3NTc4NDBmZWE4ZTkyZDcxYjk3ZGY4NmNmMzIyY2Y0OGIwNjRlMTE2NDM5Yzk2Y2JkMGEyMDllNTVmMGQ4 ** Press ENTER to return to the main menu.
到如今就能夠啓動咱們的ossec服務端了。
[root@ossec-server ossec-hids-2.7.1]# /usr/local/ossec/bin/ossec-control start
查看監聽端口
[root@ossec-server analogi-master]# netstat -antup|grep ossec tcp 0 0 127.0.0.1:43425 127.0.0.1:3306 ESTABLISHED 1841/ossec-dbd udp 0 0 0.0.0.0:514 0.0.0.0:* 1865/ossec-remoted udp 0 0 0.0.0.0:1514 0.0.0.0:* 1866/ossec-remoted [root@ossec-server analogi-master]#
若是開啓iptables,則須要開放這2個UDP端口到client
計算機名:client1.com IP地址:10.10.16.2
客戶端也須要安裝gcc編譯器
[root@client1 ~]# yum -y install gcc
安裝ossec客戶端程序
[root@client1 ossec-hids-2.7.1]# sh 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 v2.7.1 安裝腳本 - http://www.ossec.net 您將開始 OSSEC HIDS 的安裝. 請確認在您的機器上已經正確安裝了 C 編譯器. 若是您有任何疑問或建議,請給 dcid@ossec.net (或 daniel.cid@gmail.com) 發郵件. - 系統類型: Linux client1.com 2.6.32-279.el6.x86_64 - 用戶: root - 主機: client1.com -- 按 ENTER 繼續或 Ctrl-C 退出. -- 1- 您但願哪種安裝 (server, agent, local or help)? agent - 選擇了 Agent(client) 類型的安裝. 2- 正在初始化安裝環境. - 請選擇 OSSEC HIDS 的安裝路徑 [/usr/local/ossec]: /usr/local/ossec - OSSEC HIDS 將安裝在 /usr/local/ossec . 3- 正在配置 OSSEC HIDS. 3.1- 請輸入 OSSEC HIDS 服務器的IP地址或主機名: 10.10.16.1 - 添加服務器IP 10.10.16.1 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 -若是你但願監控其餘文件, 只須要在配置文件ossec.conf中 添加新的一項. 任何關於配置的疑問您均可以在 http://www.ossec.net 找到答案. --- 按 ENTER 以繼續 ---
敲玩回車便可完成安裝,而後須要添加一下密鑰,把剛纔在server端生成的密鑰複製下來
[root@client1 ossec-hids-2.7.1]# /usr/local/ossec/bin/manage_agents **************************************** * OSSEC HIDS v2.7.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): MDAyIGNsaWVudDEgMTAuMTAuMTYuMiA2MDQ3NTc4NDBmZWE4ZTkyZDcxYjk3ZGY4NmNmMzIyY2Y0OGIwNjRlMTE2NDM5Yzk2Y2JkMGEyMDllNTVmMGQ4 Agent information: ID:001 Name:client1 IP Address:10.10.16.2 Confirm adding it?(y/n): y Added. ** Press ENTER to return to the main menu. **************************************** * OSSEC HIDS v2.7.1 Agent manager. * * The following options are available: * **************************************** (I)mport key from the server (I). (Q)uit. Choose your action: I or Q:
這樣便可完成client端安裝,啓動ossec服務
[root@client1 ossec-hids-2.7.1]# /usr/local/ossec/bin/ossec-control start
以後就能夠收到服務器log更新的郵件了,可是這樣子還不夠,咱們須要經過更加直觀的方式統一集中式的查看服務器的log狀況,這就須要安裝web-gui
ossec官方提供的ossec-wui https://github.com/ossec/ossec-wui
github開源analogi-master https://github.com/ECSC/analogi/archive/master.zip
下載解壓以後放到apache的web目錄,並加apache用戶權限
[root@ossec-server ossec-wui-master]# chown -R apache.apache /usr/local/httpd/htdocs/ossec-wui-master/
執行安裝腳本
[root@ossec-server ossec-wui-master]# sh setup.sh Setting up ossec ui... Username: root New password: Re-type new password: Adding password for user root Enter your web server user name (e.g. apache, www, nobody, www-data, ...) apache sed:-e 表達式 #1,字符 22:未終止的「s」命令 Enter your OSSEC install directory path (e.g. /var/ossec) /usr/local/ossec You must restart your web server after this setup is done. Setup completed successfuly.
修改配置文件中的ossec_dir路徑
[root@ossec-server ossec-wui-master]# vim /usr/local/httpd/htdocs/ossec-wui-master/ossec_conf.php <?php /* OSSEC Configuration for the UI. Make sure to set * right ossec_dir in here. If your server does not * have much memory available, reduce the max_alerts * variable to something smaller. */ /* Ossec directory */ $ossec_dir="/usr/local/ossec"; /* Maximum alerts per page */ $ossec_max_alerts_per_page = 1000; /* Default search values */ $ossec_search_level = 7; $ossec_search_time = 14400; /* Default refreshing time */ $ossec_refresh_time = 90; ?>
修改php.ini
max_execution_time = 180 max_input_time = 180 memory_limit = 30M
重啓web服務便可查看web界面
下載並解壓放到web目錄,只須要修改一下mysql的鏈接池就ok
[root@ossec-server analogi-master]# mv db_ossec.php.new db_ossec.php [root@ossec-server analogi-master]# vim db_ossec.php <?php /* * Copyright (c) 2012 Andy 'Rimmer' Shepherd <andrew.shepherd@ecsc.co.uk> (ECSC Ltd). * This program is free software; Distributed under the terms of the GNU GPL v3. */ define ('DB_USER_O', 'ossec'); define ('DB_PASSWORD_O', 'ossec'); define ('DB_HOST_O', 'localhost'); define ('DB_NAME_O', 'ossec'); $db_ossec = mysql_connect (DB_HOST_O, DB_USER_O, DB_PASSWORD_O) OR die ('Could not connect to SQL : ' . mysql_error() . "<br/>Click <a href='' onclick='document.cookie=\"ossecdbjs=;expires=Thu, 01 Jan 1970 00:00:00 GMT\"' >HERE</a> to s elect your main OSSEC DB"); mysql_select_db (DB_NAME_O, $db_ossec) OR die ('Could not select the database : ' . mysql_error() . "<br/>Click <a href='' onclick='document.cookie=\"ossecdbjs=;expires=Thu, 01 Jan 1970 00:00:00 GMT\"' >HERE</a> to select your main OSSE C DB"); ?>
web預覽
發現無數據或者是看不到客戶端,請查看iptables
是否開放udp
的514
和1514
端口並查看是否監聽
web查看顯示的時間不正確,可修改php.ini
的date.timezone = Asia/Shanghai便可
sendmail郵件發不出,可修改查看主機名是否規範,須要檢查如下地方,修改完畢重啓sendmail便可
[root@ossec-server analogi-master]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 127.0.0.1 ossec-server.com 10.10.16.1 ossec-server.com [root@ossec-server analogi-master]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=ossec-server.com [root@ossec-server analogi-master]# hostname ossec-server.com