如何建立一个本地OSSEC安装Debian 8

介绍

OSSEC是一个开源的基于主机的入侵检测系统(HIDS),可以执行日志分析,完整性检查,Windows注册表监控,rootkit检测,基于时间的警报和主动响应。这是应用程序安装在您的服务器上,如果你想看看里面发生了什么。 OSSEC可以安装监控只是它的安装在服务器上,这是OSSEC的说法 本地安装,或者安装为一个 服务器来监视一个或多个 代理 。 在本教程中,您将学习如何安装OSSEC监视它被安装在Debian 8服务器,也就是 当地的OSSEC安装。

先决条件

要遵循本教程,您需要:
  • 一个Debian 8Droplet用sudo的非root用户和SSH密钥,您可以通过以下设置本教程

第1步 - 安装必需的软件包

在这一步中,我们将安装OSSEC所需的软件包。首先,更新包数据库。
sudo apt-get update
然后安装可用的更新。
sudo apt-get -y upgrade
最后,安装OSSEC的依赖关系( build-essentialinotify-toops )和 ntp ,这是一个网络时间协议服务。
sudo apt-get install build-essential inotify-tools ntp
最后,启用NTP服务。这有助于服务器自动保持准确的时间。
sudo systemctl start ntp

第2步 - 启用防火墙

全新安装的Debian 8服务器没有活动的防火墙应用程序。在此步骤中,我们将学习如何启用IPTables防火墙应用程序,并确保运行时规则在重新启动后保留。 实现这个目的的最简单的方法是安装 iptables-persistent使用包:
sudo apt-get install -y iptables-persistent
验证后,系统将提示您将IPv4和IPv6防火墙规则保存为单独的文件。按在两个提示 ENTER键接受默认的位置,这是 /etc/iptables/rules.v4/etc/iptables/rules.v6 。 默认情况下,这些文件中没有规则,因此我们必须创建它们以保持服务器受保护并打开SSH连接。我们只在IPv4的规则感兴趣,所以我们只修改 rules.v4规则文件。 打开 rules.v4使用规则文件 nano或您喜爱的文本编辑器。
sudo nano /etc/iptables/rules.v4
该文件的完整内容如下所示:
原始/etc/iptables/rules.v4
# Generated by iptables-save v1.4.21 on Sat May  9 01:27:00 2015
*filter
:INPUT ACCEPT [5722:416593]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4372:503060]
COMMIT
# Completed on Sat May  9 01:27:00 2015
下面的默认规则集将足以保持保护服务器和SSH连接,所以它复制并之间只贴上 :OUTPUT ACCEPT [4372:503060]COMMIT线。 这些规则是取自 Debian官方文件 ;你可以看到每个规则通过内联注释做什么。
#  Allow all loopback traffic. Drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic
-A OUTPUT -j ACCEPT

#  Uncomment the next two lines to allow HTTP and HTTPS connections
#-A INPUT -p tcp --dport 80 -j ACCEPT
#-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections. If you changed your SSH port, do same here.
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP
保存并关闭文件。然后,以应用新的规则集,重新启动 iptables-persistent
sudo systemctl restart netfilter-persistent
现在可以使用此命令验证规则是否就位。
sudo iptables -L
您的输出将如下所示:
iptables -L输出
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere     
REJECT     all  --  anywhere             loopback/8           reject-with icmp-port-unreachable

. . .         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere    

第3步 - 下载和验证OSSEC

OSSEC作为压缩压缩包提供。在此步骤中,您将下载它及其校验和文件,用于验证tarball是否已被篡改。您可以检查项目的网站获取最新版本。在撰写本文时,OSSEC 2.8.1是最新的稳定版本。 要下载tarball,请键入:
wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz
然后使用下载校验和文件
wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1-checksum.txt
下载这两个文件后,验证压缩tarball的md5sum。
md5sum -c ossec-hids-2.8.1-checksum.txt
输出应为:
md5sum输出
ossec-hids-2.8.1.tar.gz: OK
md5sum: WARNING: 1 line is improperly formatted
通过验证SHA1校验和。
sha1sum -c ossec-hids-2.8.1-checksum.txt
其输出应为:
sha1sum输出
ossec-hids-2.8.1.tar.gz: OK
sha1sum: WARNING: 1 line is improperly formatted
在每一种情况下,忽略了 警戒线确定线就是确认该文件是好的。

第4步 - 安装OSSEC

在这一步,我们将安装OSSEC。首先,首先解开它。
tar xf ossec-hids-2.8.1.tar.gz
它将被解压到一个名为 ossec-hids-2.8.1 。切换到该目录。
cd ossec-hids-2.8.1
注意:在版本2.8.1中引入的OSSEC中有一个错误。 该bug将导致它覆盖的内容/etc/hosts.deny文件。 2.9版本已经有永久修复,应该很快发布。 要解决这个 /etc/hosts.deny的bug,打开 host-deny.sh在文件 /var/ossec/active-response从下载的文件解压后,OSSEC目录。
nano active-response/host-deny.sh
在接近文件的末尾,查找两条线为低于开头的代码 TMP_FILE =时,下面 # Deleting from hosts.deny注释。 编辑两条线,以消除对两侧的空间 =标志,使代码块看起来是这样的。
修改了host-deny.sh代码块
# Deleting from hosts.deny
elif [ "x${ACTION}" = "xdelete" ]; then
   lock;
   TMP_FILE=`mktemp /var/ossec/ossec-hosts.XXXXXXXXXX`
   if [ "X${TMP_FILE}" = "X" ]; then
     # Cheap fake tmpfile, but should be harder then no random data
     TMP_FILE="/var/ossec/ossec-hosts.`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -1 `"
   fi
保存并关闭文件。这就是错误修复的结束。 接下来,开始安装。
sudo ./install.sh
在整个安装过程中,系统将提示您提供一些输入。系统会首先提示您选择安装语言,默认情况下为英语(zh-cn)。按 ENTER键 ,如果这是你的首选语言。 否则,首先从支持的语言列表中键入2个字母。 然后,再次按 Enter键开始安装。 问题1会问 你想要什么样的安装(服务器,代理地方,混合动力或帮助?)。 类型的 本地 ,然后按 Enter。 对于所有的下列问题,按 ENTER键接受默认值,但要注意的问题3.1将提示你输入你的电子邮件地址。输入它,安装程序将使用它来自动找到相应的SMTP服务器。 如果安装成功,安装后输出的最后几行应为:
OSSEC安装输出成功
- 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

. . .

第4步 - 自定义OSSEC的电子邮件设置

这里我们将验证在上一步中指定的电子邮件凭证和OSSEC自动配置的电子邮件凭据是否正确。 电子邮件设置在OSSEC的主配置文件- ossec.conf ,这是在` /var/ossec/etc目录中。要访问和修改任何OSSEC文件,您首先需要切换到root用户。
sudo su
现在你是root,切换到OSSEC的配置文件所在的目录。
cd /var/ossec/etc
然后制作配置文件的备份副本。
cp ossec.conf ossec.conf.00
打开使用原始文件 nano文本编辑器或您首选的文本编辑器。
nano ossec.conf
电子邮件设置位于文件的顶部,如下所示。
/var/ossec/etc/ossec.conf
<global>
    <email_notification>yes</email_notification>
    <email_to>sammy@example.com</email_to>
    <smtp_server>mail.example.com.</smtp_server>
    <email_from>sammy@example.com</email_from>
</global>
<EMAIL_TO>是在安装过程中给了电子邮件。 警报将被发送到该电子邮件地址和 <smtp_server>是SMTP服务器的安装脚本自动发现。您不必更改这些值。 <EMAIL_FROM>是OSSEC的警报似乎可能来自的电子邮件地址。 默认情况下,它是基于OSSEC的邮件用户帐户和服务器的主机名创建的。 您应该将其更改为有效的电子邮件地址,以减少电子邮件提供商的SMTP服务器将您的电子邮件标记为垃圾邮件的几率。 需要注意的是 <EMAIL_TO><EMAIL_FROM>可以是相同的,如果接收SMTP服务器没有严格的垃圾邮件政策。 修改电子邮件设置后,保存并关闭文件。然后启动OSSEC。
/var/ossec/bin/ossec-control start
检查您的收件箱中是否有表示OSSEC已启动的电子邮件。如果您收到来自您的OSSEC安装的电子邮件,则您知道未来的警报也将到达您的收件箱。如果没有,请检查您的垃圾邮件文件夹。

第6步 - 添加警报

默认情况下,OSSEC将在服务器上发出文件修改和其他活动的警报,但它不会在新文件添加时发出警报,也不会实时发出警报 - 只有在预定的系统扫描(即79200秒(或22)小时)。在本节中,我们将修改OSSEC,以便它可以对文件添加和实时发出警报。 首先,打开 ossec.conf
nano ossec.conf
向下滚动到 <SysCheck的>部分。 刚下 <frequency>标签中,添加 < alert\_new\_files>yes< /alert\_new\_files >
<syscheck>
    <!-- Frequency that syscheck is executed - default to every 22 hours -->
    <frequency>79200</frequency>
    <alert_new_files>yes</alert_new_files>
虽然你仍然有 ossec.conf打开,看看系统目录的列表OSSEC显示器,它只是在你修改的最后一行。 添加 report_changes="yes" realtime="yes"这两个目录的标签。
<!-- 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>
除了OSSEC已配置为监视的默认目录列表外,您还可以添加任何要监视的目录。例如,您可以添加您的主目录。为此,请在其他目录行下面添加此新行,替换为您的用户名。
<!-- 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/<^sammy</directories><^>
现在,保存并关闭 ossec.conf 。 接下来的文件来修改是在 /var/ossec/rules目录,这样切换到该目录。
cd /var/ossec/rules
/var/ossec/rules目录中包含多个XML文件,包括 ossec_rules.xml ,其中包含OSSEC的默认规则定义, local_rules.xml ,这是在这里你可以添加自定义规则。 在 ossec_rules.xml ,时,将触发文件添加到受监控的目录规则554默认规则,OSSEC不会发出警报,当这条规则被触发,所以这里的任务就是改变这种行为。默认情况下,规则554是什么样子:
从/var/ossec/rules/ossec_rules.xml创建规则554
<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>
如果规则设置为0级OSSEC不会发出警报,因此我们将复制该规则的本地 rules.xml中并修改它来触发警报。 要做到这一点,打开`当地 rules.xml`。
nano local_rules.xml
在文件末尾添加以下内容,在带有</ group>标签的行之前。
<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
您现在应该在文件被添加,修改或删除时收到提醒。请注意,OSSEC不会在完全系统扫描后实时提示文件添加。

第6步(可选) - 停止IPTables已拒绝警报

在此步骤中,这是可选的,但强烈建议,我们将配置OSSEC不警告IPTables拒绝消息。 在本教程开头,我们启用了IPTables防火墙。安装OSSEC后,它将对规则1002发出警报,规则1002在IPTables拒绝攻击者并将事件记录到syslog时触发。虽然很好知道攻击者什么时候受到攻击,但是这种警报每天可能发生数百次,并堵塞您的收件箱。 要删除这些警报,我们需要自定义规则1002这条规则被发现 /var/ossec/rules/syslog_rules.xml ,看起来就像这样:
/var/ossec/rules/syslog_rules.xml中的规则1002
<rule id="1002" level="2">
    <match>$BAD_WORDS</match>
    <options>alert_by_email</options>
    <description>Unknown problem somewhere in the system.</description>
</rule>
打开 syslog_rules.xml进行编辑。
nano /var/ossec/rules/syslog_rules.xml
找到 BAD_WORDS变量,这是在该文件的顶部限定并包含了一些关键字。它看起来像这样:
BAD_WORDS定义在/var/ossec/rules/syslog_rules.xml中
<var name="BAD_WORDS">core_dumped|failure|error|attack|bad |illegal |denied|refused|unauthorized|fatal|failed|Segmentation Fault|Corrupted</var>
下面 BAD_WORDS定义,复制并粘贴此新的变量, IGNORED_WORD 。变量只包含一个关键字。
<var name="BAD_WORDS">core_dumped|failure|error|attack|bad |illegal |denied|refused|unauthorized|fatal|failed|Segmentation Fault|Corrupted</var>
<var name="IGNORED_WORD">denied</var>
然后,我们将使用新的 IGNORED_WORD在规则1002,我们称之为完整的规则如下规则100031.定制版的变量。将其复制并粘贴到文件的底部,然后在带有组标签的行之前。
<rule id="100031" level="0">
     <if_sid>1002</if_sid>
     <match>$IGNORED_WORD</match>
     <description>Ignored IPTables deny messages.</description>
</rule>

</group>


<!-- EOF -->
保存并关闭文件。使用可变和自定义规则,重新启动OSSEC。
/var/ossec/bin/ossec-control restart
这样,OSSEC应停止发送IPTables被拒绝的消息的警报。

结论

这就是在Debian 8服务器上安装和配置本地OSSEC所需要的。有很多可用的进一步定制,你可以在项目探索 的官方文件
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏