OSSEC是一个开源的,基于主机的入侵检测系统(HIDS),可执行日志分析,完整性检查,rootkit检测,基于时间的警报和主动响应,使其成为服务器监控的理想选择。
安装和配置后,OSSEC将以服务器/代理模式提供服务器或服务器中发生的事件的实时视图。
本指南介绍了如何在运行Debian 7的单个Linode上安装和配置OSSEC,如果文件被修改,添加或删除,OSSEC将通过电子邮件实时通知您。OSSEC还可以为其他活动提供通知。
注意本指南是为非root用户编写的。需要提升权限的命令带有前缀
sudo
。如果您不熟悉该sudo
命令,可以查看我们的“ 用户和组”指南。
inotify-tools
和build-essential
。OSSEC需要第一个用于实时警报和文件删除警报,而后者用于编译OSSEC。您可以使用以下方法安装两个包
sudo apt-get install inotify-tools build-essentialDebian 7在其存储库中没有OSSEC的安装候选者,因此需要从项目的下载页面下载。
Return
; 否则,从支持的语言列表中键入您的语言的双字母代码:
OSSEC HIDS v2.8 Installation Script - http://ossec.github.io/ You are about to start the installation process of the OSSEC HIDS. You must have a C compiler pre-installed in your system. If you have any questions or comments, please send an e-mail to dcid@ossec.net (or daniel.cid@gmail.com). - System: Linux deft 3.18.3-x86_64-linode51 - User: root - Host: deft -- Press ENTER to continue or Ctrl-C to abort. --OSSEC被chroot到/var/ossec
目录,其配置文件ossec.conf
在/var/ossec/etc
目录中。您需要进行一些修改ossec.conf
,包括:
使用该sudo su
命令获取对目录的root访问权限:
sudo su
切换到/var/ossec/etc
目录。
虽然您指定了一封电子邮件,并且OSSEC自动发现了SMTP服务器,但可以对电子邮件设置进行一些更改。
ossec.conf
。电子邮件设置位于文件顶部:
ossec.conf1 2 3 4 5 6
<global> <email_notification>yes</email_notification> <email_to>loginName@example.com</email_to> <smtp_server>mail.example.com.</smtp_server> <email_from>ossecm@hostname</email_from> </global>该< email_to >
条目是安装期间指定的电子邮件。这是OSSEC发送警报的地址,可以随时更改。该< email_from >
条目是OSSEC的警报似乎从中发送的地方。如果不更改默认值,某些SMTP服务器会将电子邮件警报标记为垃圾邮件。< email_from >
行:
ossec.conf1 2 3 4 5 6
<global> <email_notification>yes</email_notification> <email_to>loginName@example.com</email_to> <smtp_server>mail.example.com.</smtp_server> <email_from>loginName@example.com</email_from> </global>注意该< email_to >
和< email_from >
值可以是相同的。如果您正在运行自己的邮件服务器并且它位于安装OSSEC的同一服务器上,则可以将< smtp_server >
值更改为localhost
。
更改电子邮件设置后,保存并关闭该文件。/var/ossec/etc
,您可以使用:
../bin/ossec-control start默认情况下,当新文件添加到系统时,OSSEC不会发出警报。
ossec.conf
并向下滚动到以下部分:
ossec.conf1 2 3
<syscheck> <!-- Frequency that syscheck is executed - default to every 22 hours --> <frequency>79200</frequency>< frequency >
是OSSEC执行系统检查的时间间隔。在测试期间,您可以将该设置减少到较低的数字,例如900.之后,可以将其更改回默认值。ossec.conf
。< frequency >
设置下方是OSSEC已配置为监视的系统目录列表:
ossec.conf1 2 3
<!-- Directories to check (perform all possible verifications) --> <directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories> <directories check_all="yes">/bin,/sbin</directories>/var/ossec
OSSEC的另一个目录是OSSEC的安装目录。但是,如果受到监视,则必须将OSSEC 配置为忽略其中的某些目录/var/ossec
,否则可能会耗尽磁盘空间。对于Linux系统,要忽略的文件和目录的默认列表是:
ossec.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!-- Files/directories to ignore --> <ignore>/etc/mtab</ignore> <ignore>/etc/mnttab</ignore> <ignore>/etc/hosts.deny</ignore> <ignore>/etc/mail/statistics</ignore> <ignore>/etc/random-seed</ignore> <ignore>/etc/adjtime</ignore> <ignore>/etc/httpd/logs</ignore> <ignore>/etc/utmpx</ignore> <ignore>/etc/wtmpx</ignore> <ignore>/etc/cups/certs</ignore> <ignore>/etc/dumpdates</ignore> <ignore>/etc/svc/volatile</ignore> |
---|
如果OSSEC配置为监视/var/ossec
,则包括其他行:
ossec.conf
1 2 3 4 5 | <ignore>/var/ossec/logs</ignore> <ignore>/var/ossec/queue</ignore> <ignore>/var/ossec/var</ignore> <ignore>/var/ossec/tmp</ignore> <ignore>/var/ossec/stats</ignore> |
---|
OSSEC使用tcpwrappers(host.deny
)和iptables来禁止触发警报的任何IP地址。默认情况下,此类IP地址被阻止600秒或10分钟。这可以更改为更长的时间范围。
要更改禁令的时间范围,请更改 < timeout >
设置以适应。请注意,它必须在几秒钟内:
ossec.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!-- Active Response Config --> <active-response> <command>host-deny</command> <location>local</location> <level>6</level> <timeout>600</timeout> </active-response> <active-response> <command>firewall-drop</command> <location>local</location> <level>6</level> <timeout>600</timeout> </active-response> |
---|
进行更改后,保存并关闭文件。
/var/ossec/rules
目录:
cd /var/ossec/rules
规则位于一系列XML文件中,所有规则定义都在ossec_rules.xml
其中,不应修改。必须进行所有规则修改local_rules.xml
。ossec_rules.xml
是:
ossec_rules.xml1 2 3 4 5 6
<rule id="554" level="0"> <category>ossec</category> <decoded_as>syscheck_new_entry</decoded_as> <description>File added to the system.</description> <group>syscheck,</group> </rule>local_rules.xml
因此必须修改该规则,以便在将新文件添加到系统时OSSEC可以触发。规则修改应位于< group > ... < /group >
标记之间:
local_rules.xml 1 2 3 4 5 6 7 8 9 10 11
<rule id="554" level="7" overwrite="yes"> <category>ossec</category> <decoded_as>syscheck_new_entry</decoded_as> <description>File added to the system.</description> <group>syscheck,</group> </rule> </group> <!-- SYSLOG,LOCAL --> <!-- EOF -->对OSSEC进行任何修改后,必须重新启动:
/var/ossec/bin/ossec-control restart
如果它重新启动而没有错误,它将输出以下内容:
Killing ossec-monitord ..
Killing ossec-logcollector ..
Killing ossec-syscheckd ..
Killing ossec-analysisd ..
Killing ossec-maild ..
Killing ossec-execd ..
OSSEC HIDS v2.8 Stopped
Starting OSSEC HIDS v2.8 (by Trend Micro Inc.)...
Started ossec-maild...
Started ossec-execd...
Started ossec-analysisd...
Started ossec-logcollector...
Started ossec-syscheckd...
Started ossec-monitord...
Completed.
否则,您将收到配置错误:
Starting OSSEC HIDS v2.8 (by Trend Micro Inc.)...
ossec-analysisd: Configuration error. Exiting.
如果发生这种情况,请检查OSSEC的错误日志。建议即使OSSEC成功重启也要检查错误日志,因为可能包含其他错误,这些错误不会阻止OSSEC重新启动,但可能需要您注意。错误日志文件是ossec.log
下/var/ossec/logs
目录。
在进行任何最终修改并重新启动OSSEC之后,您应该收到另一个警告,说OSSEC已经启动。如果之后触发了任何规则,您还会在收件箱中收到类似的提醒:
OSSEC HIDS Notification.
2015 Jan 30 09:57:06
Received From: deft->syscheck
Rule: 550 fired (level 7) -> "Integrity checksum changed."
Portion of the log(s):
Integrity checksum changed for: '/home/finid/sidebar.php'
Size changed from '0' to '19'
What changed:
0a1
this is a php file
Old md5sum was: 'd41d8cd98f00b204e9800998ecf8427e'
New md5sum is : 'df4f22f84b5ceb2c31cbb391883f2c83'
Old sha1sum was: 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
New sha1sum is : '297b920c943134074690344a3da83f19483a93ef'
--END OF NOTIFICATION
OSSEC HIDS Notification.
2015 Jan 30 09:26:02
Received From: deft->netstat -tan |grep LISTEN |grep -v 127.0.0.1 | sort
Rule: 533 fired (level 7) -> "Listened ports status (netstat) changed (new port opened or closed)."
Portion of the log(s):
ossec: output: 'netstat -tan |grep LISTEN |grep -v 127.0.0.1 | sort':
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:43157 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::53262 :::* LISTEN
Previous output:
ossec: output: 'netstat -tan |grep LISTEN |grep -v 127.0.0.1 | sort':
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:43157 0.0.0.0:* LISTEN
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::53262 :::* LISTEN
--END OF NOTIFICATION
OSSEC HIDS Notification.
2015 Jan 30 09:57:54
Received From: deft->syscheck
Rule: 553 fired (level 7) -> "File deleted. Unable to retrieve checksum."
Portion of the log(s):
File '/home/user5/footer.php' was deleted. Unable to retrieve checksum.
--END OF NOTIFICATION
OSSEC HIDS Notification.
2015 Jan 30 09:19:16
Received From: deft->/var/log/dpkg.log
Rule: 2902 fired (level 7) -> "New dpkg (Debian Package) installed."
Portion of the log(s):
2015-01-30 09:19:14 status installed nginx-common:all 1.2.1-2.2+wheezy3
--END OF NOTIFICATION
有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。