在Ubuntu和Debian上使用Tripwire进行Linux服务器入侵检测(二)

之前讨论过在运行Debian或Ubuntu Linux发行版的系统上安装Tripwire,作为检测系统入侵的一种方法,这一次Hostease美国服务器商将继续介绍设置和运行它。

初始化数据库

当停止工作时,将Tripwire配置为一个基本配置,稍后根据需要对其进行调整。首先,初始化数据库,这也将标记在配置中也需要调整的问题,这可以通过以下命令来完成:

sudo Tripwire –init

系统将提示输入本地密码才能继续,然后会有大量消息在屏幕上滚动,要获得问题列表,可以使用–check标志运行Tripwire,这将创建大量输出,因此最好将其传输到较少的命令:

sudo sh -c ‘Tripwire –check | less’

问题列在输出的末尾,经过多次滚动之后,这将主要由Tripwire试图监控的文件组成,这些文件在系统上并不存在,获取文件列表的一种简单方法是使用grep输入“文件名”,然后将输出写入文件:

sudo sh -c ‘Tripwire –check | grep Filename 》 Tripwire_file_errors’

然后,该文件将成为Tripwire试图监控的导致错误的文件列表。然后,可以使用较少的或使用文本编辑器查看此文件:

less Tripwire_file_errors

管理员需要记录所有这些文件,因为需要编辑Tripwire策略配置文件来注释匹配行。这将阻止Tripwire尝试检查这些文件:

sudo nano /etc/Tripwire/twpol.txt

文件夹

此配置文件首先根据文件的使用方式定义可应用于系统上文件的严重性级别。然后是一组规则,每个规则集被分成两部分。规则括号“()”中的第一节提供规则的名称和分配给此规则检测到的更改的严重性。之后,在大括号“{}”中,会出现作为该规则一部分监控的文件和目录的列表,以及该文件中允许更改的设置。作为测试中的一个例子,文件/etc/rc.boot丢失并导致错误,在twpol.txt文件中,可以在“启动脚本”部分找到它,该行如下所示:

/etc/rc.boot -》 $(SEC_BIN) ;

要对其进行注释,只需在行的开头添加一个哈希符号“#”,如下所示:

# /etc/rc.boot -》 $(SEC_BIN) ;

对于错误列表中可以找到匹配的所有文件,需要执行此操作。

浏览完列表后,可能会发现/proc中有许多文件会导致错误,例如测试示例:

Filename: /proc/1414/task/1414/fd/3

这将引用正在运行的进程的文件描述符。当进程访问各种文件时,它们一直在变化;每次运行新的应用程序时,它都会启动一个新的进程,因此监控这些进程会标记出大量错误的肯定响应。这里的解决方案是在引用要检查的 /proc中的位置时要精确得多。在配置文件中,它在“设备和内核信息”下被引用,在我的文件中简单地引用了 /dev和/proc。这又带来了另一个错误:在Debian和Ubuntu系统上/dev/pts与/dev在不同的文件系统上,因此,Tripwire只会在特别要求时检查它。因此,解决方案是将此部分改为:

{

/dev -> $(Device) ;

/dev/pts -> $(Device) ;

#/proc -> $(Device) ;

/proc/cpuinfo -> $(Device) ;

/proc/devices -> $(Device) ;

/proc/dma -> $(Device) ;

/proc/filesystems -> $(Device) ;

/proc/interrupts -> $(Device) ;

/proc/ioports -> $(Device) ;

/proc/kcore -> $(Device) ;

/proc/kmsg -> $(Device) ;

/proc/loadavg -> $(Device) ;

/proc/locks -> $(Device) ;

/proc/meminfo -> $(Device) ;

/proc/misc -> $(Device) ;

/proc/modules -> $(Device) ;

/proc/mounts -> $(Device) ;

/proc/net -> $(Device) ;

/proc/scsi -> $(Device) ;

/proc/self -> $(Device) ;

/proc/stat -> $(Device) ;

/proc/sys -> $(Device) ;

/proc/tty -> $(Device) ;

/proc/uptime -》 $(Device) ;

}

最后一步是注释目录“/var/lock”和“/var/run”的行,因为这些行将在正常系统操作过程中更改,并且除非特别想知道进程何时更改ID等,否则不必监控这些信息。通过对配置文件所做的更改,可以再次保存更改,然后重新加密配置。

sudo twadmin -m P /etc/Tripwire/twpol.txt

同样,还需要那个网站的密码。对策略进行加密以供使用后,可以重新初始化数据库:

sudo Tripwire –init

现在,如果通过检查运行Tripwire,那么输出应该更小,错误应该消失。此时,已经为Tripwire配置了系统所需的基础知识。管理员应该能够从配置文件中看到如何着手创建用于监控系统上其他文件的新区段,例如检查网站的文件,以确保它们没有被意外地更改。虽然配置好了Tripwire,但是还有工作没有完成。下一次的内容Hostease美国服务器商将研究如何让Tripwire自动检查系统是否有入侵,并通过电子邮件向管理员发送任何报告。