前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Debian 7上安装和配置OSSEC

在Debian 7上安装和配置OSSEC

作者头像
沈唁
发布2018-09-20 10:46:45
1.5K0
发布2018-09-20 10:46:45
举报
文章被收录于专栏:沈唁志

OSSEC是一个开源的,基于主机的入侵检测系统(HIDS),可执行日志分析,完整性检查,rootkit检测,基于时间的警报和主动响应,使其成为服务器监控的理想选择。

安装和配置后,OSSEC将以服务器/代理模式提供服务器或服务器中发生的事件的实时视图。

本指南介绍了如何在运行Debian 7的单个Linode上安装和配置OSSEC,如果文件被修改,添加或删除,OSSEC将通过电子邮件实时通知您。OSSEC还可以为其他活动提供通知。

注意本指南是为非root用户编写的。需要提升权限的命令带有前缀sudo。如果您不熟悉该sudo命令,可以查看我们的“ 用户和组”指南。

先决条件

  1. 完成入门指南。
  2. 按照“ 保护您的服务器”指南操作 创建和启用防火墙尤为重要。在Linux上,OSSEC需要一个活动的iptables防火墙才能使其主动响应功能正常工作。
  3. 安装inotify-toolsbuild-essential。OSSEC需要第一个用于实时警报和文件删除警报,而后者用于编译OSSEC。您可以使用以下方法安装两个包 sudo apt-get install inotify-tools build-essential

下载并验证OSSEC

Debian 7在其存储库中没有OSSEC的安装候选者,因此需要从项目的下载页面下载

  1. 下载最新的OSSEC tarball(本指南发布时为2.8.3): wget -U https://bintray.com/artifact/download/ossec/ossec-hids/ossec-hids-2.8.3.tar.gz
  2. 下载校验和文件: wget -U http://ossec.wazuh.com/vm/ossec-vm-2.8.3-checksum.txt
  3. 验证下载的tarball是否未使用MD5校验和进行篡改: md5sum -c ossec-vm-2.8.3-checksum.txt 预期的输出是: ossec-hids-2.8.3.tar.gz: OK md5sum: WARNING: 1 line is improperly formatted
  4. 验证SHA1校验和: sha1sum -c ossec-hids-2.8.3-checksum.txt 预期的输出是: ossec-hids-2.8.3.tar.gz: OK sha1sum: WARNING: 1 line is improperly formatted 注意在两个输出中,忽略WARNING行。只要第一行读取OK,文件就可以了。

安装OSSEC

  1. 解压文件: tar xf ossec-hids-2.8.3.tar.gz
  2. 切换到新创建的目录,然后运行安装: cd ossec-hids-2.8.3 sudo ./install.sh
  3. 选择你的语言。如果您的语言是默认语言(英语 - [en]),请按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. --
  4. ENTER键。你现在应该看到: 1- What kind of installation do you want (server, agent, local, hybrid or help)? You have these installation options: server, agent, local, or hybrid. ... 1- What kind of installation do you want (server, agent, local, hybrid or help)? local
  5. 选择local,使OSSEC能够监控已安装的服务器。选择后续选项的默认值。请注意,您指定的电子邮件必须是有效的电子邮件,因为所有OSSEC警报都将发送给它。如果安装成功,您应该看到: - System is Debian (Ubuntu or derivative). - Init script modified to start OSSEC HIDS during boot. - Configuration finished properly. - To start OSSEC HIDS: /var/ossec/bin/ossec-control start - To stop OSSEC HIDS: /var/ossec/bin/ossec-control stop - The configuration can be viewed or modified at /var/ossec/etc/ossec.conf Thanks for using the OSSEC HIDS. If you have any question, suggestion or if you find any bug, contact us at contact@ossec.net or using our public maillist at ossec-list@ossec.net ( http://www.ossec.net/main/support/ ). More information can be found at http://www.ossec.net --- Press ENTER to finish (maybe more information below). --- 按ENTER完成。OSSEC现已安装,随时可以进行配置。

配置OSSEC

OSSEC被chroot到/var/ossec目录,其配置文件ossec.conf/var/ossec/etc目录中。您需要进行一些修改ossec.conf,包括:

  • 电邮设定
  • 配置OSSEC以警告新文件
  • 目录监控
  • 要忽略的文件和目录
  • 主动响应阻止时间
  • 新文件的规则

使用该sudo su命令获取对目录的root访问权限:

代码语言:javascript
复制
sudo su

切换到/var/ossec/etc目录。

自定义电子邮件设置

虽然您指定了一封电子邮件,并且OSSEC自动发现了SMTP服务器,但可以对电子邮件设置进行一些更改。

  1. 打开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服务器会将电子邮件警报标记为垃圾邮件。
  2. 修改< 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。 更改电子邮件设置后,保存并关闭该文件。
  3. 启动OSSEC: /var/ossec/bin/ossec-control start 如果当前工作目录是/var/ossec/etc,您可以使用: ../bin/ossec-control start
  4. OSSEC启动后,检查收件箱中是否有来自OSSEC的第一个警报: OSSEC HIDS Notification. 2015 Jan 30 08:22:52 Received From: deft->ossec-monitord Rule: 502 fired (level 3) -> "Ossec server started." Portion of the log(s): ossec: Ossec started. --END OF NOTIFICATION 如果收到电子邮件,则设置正在运行,后续警报也会收到您的收件箱。

将OSSEC配置为在新文件 上发出警报

默认情况下,当新文件添加到系统时,OSSEC不会发出警报。

  1. 打开ossec.conf并向下滚动到以下部分: ossec.conf1 2 3 <syscheck> <!-- Frequency that syscheck is executed - default to every 22 hours --> <frequency>79200</frequency>
  2. 修改文件: ossec.conf1 2 3 4 5 <syscheck> <!-- Frequency that syscheck is executed - default to every 22 hours --> <frequency>79200</frequency> <alert_new_files>yes</alert_new_files>请注意,这< frequency >是OSSEC执行系统检查的时间间隔。在测试期间,您可以将该设置减少到较低的数字,例如900.之后,可以将其更改回默认值。

修改目录以监控

  1. 打开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>
  2. OSSEC可以检查主目录,如果在服务器上托管网站,则监视网站的数据目录。对于指定的目录,可以将OSSEC配置为实时报告更改: ossec.conf1 2 3 4 <!-- Directories to check (perform all possible verifications) --> <directories report_changes="yes" realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories> <directories report_changes="yes" realtime="yes" check_all="yes">/bin,/sbin</directories> <directories report_changes="yes" realtime="yes" check_all="yes">/home/username,/var/www</directories>
  3. 您可能希望配置要监视的/var/ossecOSSEC的另一个目录是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>

进行更改后,保存并关闭文件。

修改新文件 规则

  1. 移至/var/ossec/rules目录: cd /var/ossec/rules 规则位于一系列XML文件中,所有规则定义都在ossec_rules.xml其中,不应修改。必须进行所有规则修改local_rules.xml
  2. 触发新文件的规则是规则号554。定义该规则的代码块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>
  3. 由于OSSEC不会对级别为0的规则发出警报,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 -->
  4. 保存并关闭文件。

重启OSSEC

对OSSEC进行任何修改后,必须重新启动:

代码语言:javascript
复制
/var/ossec/bin/ossec-control restart

如果它重新启动而没有错误,它将输出以下内容:

代码语言:javascript
复制
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.

否则,您将收到配置错误:

代码语言:javascript
复制
Starting OSSEC HIDS v2.8 (by Trend Micro Inc.)...
ossec-analysisd: Configuration error. Exiting.

如果发生这种情况,请检查OSSEC的错误日志。建议即使OSSEC成功重启也要检查错误日志,因为可能包含其他错误,这些错误不会阻止OSSEC重新启动,但可能需要您注意。错误日志文件是ossec.log/var/ossec/logs目录。

期待什么

在进行任何最终修改并重新启动OSSEC之后,您应该收到另一个警告,说OSSEC已经启动。如果之后触发了任何规则,您还会在收件箱中收到类似的提醒:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

更多信息

有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先决条件
  • 下载并验证OSSEC
  • 安装OSSEC
  • 配置OSSEC
    • 自定义电子邮件设置
      • 将OSSEC配置为在新文件 上发出警报
        • 修改目录以监控
          • 修改文件和目录以忽略
            • 修改活动响应块时间
              • 修改新文件 规则
              • 重启OSSEC
              • 期待什么
              • 更多信息
              相关产品与服务
              主机安全
              主机安全(Cloud Workload Protection,CWP)基于腾讯安全积累的海量威胁数据,利用机器学习为用户提供资产管理、木马文件查杀、黑客入侵防御、漏洞风险预警及安全基线等安全防护服务,帮助企业构建服务器安全防护体系。现支持用户非腾讯云服务器统一进行安全防护,轻松共享腾讯云端安全情报,让私有数据中心拥有云上同等级别的安全体验。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档