規則 html
Syscheck是OSSEC內部完整性檢測進程的名稱。它週期性檢查是否有任何配置文件(或者windows註冊表)發生改變。linux
配置文件地址爲web
[root@logserver etc]# pwd 正則表達式
/var/ossec/etc sql
[root@logserver etc]# vim ossec.conf apache
它的工做方法是:「代理每幾個小時掃描一次系統,併發送全部的校驗和到server端。Server端存儲這些校驗和文件並查找他們的不一樣。若是發現任何改變將會發送報警。vim
基本概況windows
多長時間運行一次服務器
默認每6小時運行一次,可是這個頻率能夠本身設定併發
數據存放位置
在server端的/var/ossec/queue/syscheck
CPU使用狀況
慢慢地進行掃描,以免使用過多的CPU /內存。
如何處理誤報
文件可以經過手工指定配置文件或使用規則到忽略不記,默認一個文件修改超過3次會自動忽略。
配置選項
下面的配置選項能夠指定在每個代理的ossec.conf文件,除了應用到manager和本地安裝類型的auto_ignore 和 alert_new_file. 若是ignore選項指定在manage,全部代理都會使用相同的設置。
目錄
使用這個選項增長或者移除被監控的目錄(目錄這間用逗號分開)全部的文件和子目錄也會被監控。沒有目錄的驅動器字母是無效的。至少「。」應包括(D:\.)。
默認:/etc,/sur/bin,/usr/sbin,/bin,/sbin
Attributes: 屬性
realtime: Value=yes
This will enable realtime/continuous monitoring on Linux (using the inotify system calls) and Windows systems. (啓用實時、連續的監控)
report_changes: Value=yes
Report diffs of file changes. This is limited to text files at this time. (文件改變比較報告,只能用文本文件)
check_all: Value=yes
All the following check_* options are used together. (全部下面的check_*選項共同起做用)
check_sum: Value=yes
Check the md5 and sha1 hashes of the of the files will be checked.
This is the same as using both check_sha1sum=」yes」 and check_md5sum=」yes」
check_sha1sum: Value=yes
When used only the sha1 hash of the files will be checked.
check_md5sum: Value=yes
The md5 hash of the files will be checked.
check_size: Value=yes
The size of the files will be checked. (檢查文件大小)
check_owner: Value=yes
Check the owner of the files selected. (文件全部者檢查)
check_group: Value=yes
Check the group owner of the files/directories selected. (文件和目錄所屬的用戶組檢查)
check_perm: Value=yes
Check the UNIX permission of the files/directories selected. On windows this will only check the POSIX permissions. 文件和目錄權限檢查
restrict: Value=string
A string that will limit checks to files containing that string in the file name. (文件內容中包含文件名的字符串將限制檢查。
Allowed: Any directory or file name
ignore
List of files or directories to be ignored (one entry per element).列出的文件和目錄將不被檢查Default: /etc/mtab
Attributes:
type: Value=sregex
This is a simple regex pattern to filter out files so alerts are not generated. 這個簡單的表達式過慮掉輸出文件,因此報警不會生成。
Allowed: Any directory or file name
frequency
Frequency that the syscheck is going to be executed (in seconds).(syscheck多長時間執行一次,默認是21600秒,也就是6個小時)
The default is 6 hours or 21600 seconds
Default: 21600
Allowed: Time in seconds
scan_time
Time to run the scans (can be in the formats of 21pm, 8:30, 12am, etc) 掃描系統的時間格式(21pm晚上9點),8:30,(12am上午12點)。
Allowed: Time to run scan
scan_day
Day of the week to run the scans (can be in the format of sunday, saturday, monday, etc)
在每週的那一天執行掃描
Allowed: Day of the week
auto_ignore
Specifies if syscheck will ignore files that change too often (after the third change)指定忽略頻繁改變的文件
Default: no
Allowed: yes/no
alert_new_files
Specifies if syscheck should alert on new files created.指定新文件被建立時是否報警
Default: no
Allowed: yes/no
scan_on_start
Specifies if syscheck should do the first scan as soon as it is started.(syscheck啓動後是否當即作第一次掃描。
Default: yes
Allowed: yes/no
windows_registry
Use this option to add Windows registry entries to be monitored (Windows-only).增長windows註冊表監控
Default: HKEY_LOCAL_MACHINESoftware
Allowed: Any registry entry (one per element)
registry_ignore
List of registry entries to be ignored.(不監控列出的註冊表條目)
Default: ..CryptographyRNG
Allowed: Any registry entry (one per element)
配置例子
配置 syscheck,提供一個要被監控的目錄和文件列表,check_all 選項會檢查文件的md5, sha1,owner,和權限。例如:
<syscheck>
<directories check_all=yes>/etc,/usr/bin,/usr/sbin</directories>
<directories check_all=yes>/root/users.txt,/bsd,/root/db.html</directories>
</syscheck>
若是不想監控某些文件和目錄,能夠用ignore選項(或者registry_ignore 爲windows註冊表輸入)
<syscheck>
<ignore>/etc/random-seed</ignore>
<ignore>/root/dir</ignore>
<ignore type=sregex>.log$|.tmp</ignore>
</syscheck>
??在ignore選項,這個類型屬性能夠設置sregex指定一個正則表達式語法。
<syscheck>
<ignore type=sregex>^/opt/application/log</ignore>
</syscheck>
一個本地規則能夠更嚴格的修改你想要更改的指定文件和目錄。
<rule id=100345 level=12>
<if_matched_group>syscheck</if_matched_group>
<match>/var/www/htdocs</match>
</rule>
在上邊的例子中,當htdocs directory目錄中的文件有改變時將會產生一個高嚴重級別的報警。
實時監控
在linux 和windows中OSSEC支持實時監控文件完整性檢查(linux內核2.6.13以上板本支持)
配置很簡單,在directories選項那裏你能夠指定要監控那些文件和目錄,增長realtime=」yes」到啓用。
<syscheck>
<directories realtime=yes check_all=yes>/etc,/usr/bin,/usr/sbin</directories>
<directories check_all=yes>/bin,/sbin</directories>
</syscheck>
在這個例子中,目錄/etc, /usr/bin and /usr/sbin會被實時監控,一樣的方法也實用與windows.
提示:實時監控並不會當即開始。首先ossec-syscheckd須要掃描文件系統並添加每個了目錄到實時隊列。要完成這些工做須要30分鐘時間。(等待log文件出現以下信息:「ossec-syscheckd: INFO: Starting real time file monitoring」)
註解:實時監控僅對目錄有效,因此你能夠監控 /etc 或者c:\program files 目錄,但不能是個別的文件,像/etc/file.txt。
比較不一樣並生成報告
在linux 和unix系統比較所後的改變生成一個文本文件,OSSEC支持發送比較報告,
配置syscheck顯示文件比較的不一樣很簡單,添加report_changes=」yse」到directories選項。
<syscheck>
<directories report_changes=yes check_all=yes>/etc</directories>
<directories check_all=yes>/bin,/sbin</directories>
</syscheck>
2、F&Q
Question 1.當按照上一篇安裝以後web端後訪問出現:
Unable to retrieve alerts.
請查看/var/ossec/logs/alerts/alerts.log 權限是否有web服務器能訪問的權限
Question 2
我smtp server設置正確,但爲什麼我收不到ossec主機所發的郵件,在郵件日誌中老顯示鏈接超時。
A: ossec原則上不要求在本地架設mta服務器,但咱們知道,爲了防止垃圾,基本上全部郵件服務器都關閉了open relay,然咱們的ossec並無爲smtp認證提供username與password設置選項,這就使咱們在選擇其它smtp 服務器時沒法指定用戶名與密碼,所以個人作法是設置ossec發信給root@localhost,而後在本地郵件服務器別名列表中,將全部轉發給 root的信件再轉發給我所但願的email地址。
Question 3
如何設置ossec同時去監檢多個日誌文件
A:有時,咱們同時有多個日誌文件但願被監測,但又不想一個個輸入ossec.conf配置文中。其實我能夠利用ossec的posix規則表達示來達到你的目的。如假如你有以下幾個日誌文件:
/var/log/host1/xx.log,yy.log,zz.log
/var/log/host2/xx.log,aa.log
/var/log/host3/zz.log,abc.log
/var/log/hostn/bb.log,xyz.log
咱們能夠這樣設置
<localfile>
<log_format>syslog</log_format>
<localtion>/var/log/host*/*.log</location>
</localfile>
Question 4
我採用的是S/C安裝方式,而且巳按正確方法在服務器上註冊的客戶機,但ossec服務器與客戶沒法仍是沒法通訊
A:針對這個問題,a.首先咱們要肯定安裝順序是否正確,通常咱們是先安裝server,而後是agent,而且在服務器給agent生成密匙,再在agent上導入密匙,注意在server上生成密匙時agent的ip地址千萬不能寫錯,不然沒法通訊。
b.使用netstat -ntlup查看本機是否開啓了514,1514端口接受agent鏈接,若是端口尚未打開,先/etc/init.d/syslog restart再查看。請隨時查閱/var/ossec/logs/ossec.conf日誌文件中的是志。
c.若是你啓了防火牆,請必定要將514,1514的數據放行,不然agent沒法與server正常通訊。
以上是咱們我的使用ossec來一點實際經驗,歡迎你們繼續加精
Question 5
如何檢測apache日誌
咱們能夠這樣設置
<localfile>
<log_format>apache</log_format>
<localtion>你的apache日誌目錄</location>
</localfile>
Question 6 代理和服務器見的鏈接不順暢通,怎麼辦
日誌出現
2012/10/16 16:40:56 ossec-agentd(1218): ERROR: Unable to send message to server.
2012/10/16 16:41:08 ossec-agentd(1218): ERROR: Unable to send message to server.
請查看agent 和server是否有防火牆,以及是否方形了1514 和514端口
以及查看服務器端是否開啓了1514端口
查看ossec-remoted是否啓動,查看日誌可否看到ossec-remoted相關信息.
可能須要開啓debug模式
- ./ossec-control enable debug
- ./ossec-control restart
看日誌
很明顯是由於514端口被rsyslog 佔用,因此須要修改端口.
- [root@logserver logs]# tail -f ossec.log |grep remo
- 2012/10/18 16:36:15 ossec-remoted: DEBUG: Starting ...
- 2012/10/18 16:36:15 ossec-remoted: INFO: Started (pid: 9246).
- 2012/10/18 16:36:15 ossec-remoted: DEBUG: Forking remoted: '0'.
- 2012/10/18 16:36:15 ossec-remoted: Remote syslog allowed from: '10.10.10.0/24'
- 2012/10/18 16:36:15 ossec-remoted: Remote syslog allowed from: '10.10.10.0/24'
- 2012/10/18 16:36:15 ossec-remoted: DEBUG: Forking remoted: '1'.
- 2012/10/18 16:36:15 ossec-remoted(1206): ERROR: Unable to Bind port '514'
查看ossec.conf是否是添加了一下內容
- <remote>
- <connection>secure</connection>
- <allowed-ips>10.10.10.0/24</allowed-ips>
- <port>1514</port>
- <local_ip>10.10.10.137</local_ip>
- </remote>
有以下日誌
- 2012/10/17 13:51:11 ossec-remoted: INFO: Started (pid: 4477).
- 2012/10/17 13:51:11 ossec-remoted: Remote syslog allowed from: '10.10.10.0/24'
- 2012/10/17 13:51:11 ossec-remoted(1206): ERROR: Unable to Bind port '514'
由於514被rsyslog佔用,先停掉rsyslog再啓動ossec-control restart
agent的消息不能發送到server
1.檢查$OSSEC_HOME/queue/agent-info/下面是否有文件
2.檢查ossec的服務器日誌cat /$OSSEC_HOME/logg/ossec.log | grep remote
- [root@logserver etc]# cat /var/ossec/logs/ossec.log |grep remote
- 2012/10/17 14:46:21 ossec-remoted: INFO: Started (pid: 7850).
- 2012/10/17 14:46:21 ossec-remoted(1501): ERROR: No IP or network allowed in the access list for syslog. No reason for running it. Exiting.
- 2012/10/17 14:46:21 ossec-remoted: INFO: Started (pid: 7853).
- 2012/10/17 14:46:22 ossec-remoted(4111): INFO: Maximum number of agents allowed: '256'.
- 2012/10/17 14:46:22 ossec-remoted(1410): INFO: Reading authentication keys \
- file.
能夠看到出了ossec-remoted的進程日誌 沒有客戶端的日誌,so
繼續往下走.