LIDS全称为Linux Intrusion Detection System,是一种基于Linux内核补丁模式的入侵检测系统,它也是一种基于主机的入侵检测系统。它集成在Linux内核中,来进一步加强Linux内核的安全性,为Linux内核提供实现一种安全模式、参考模式和强制存取控制模式。
虽然,网络防火墙能够阻止大部份的网络攻击,但这种攻击穿透了防火墙,系统上的重要数据就会有完全控制的危险。因此,在Linux系统上布置LIDS是很有必要的。它能够保证Linux系统上的重要目录及文件不被复制、删除,重要的服务不被删除或停止,不能修改系统登录方式等等,为Linux系统数据安全提供一种全方位的保护。
1. LIDS的主要功能
1).保护硬盘上任何类型的重要文件和目录
如/bin、/sbin、/usr/bin、/usr/sbin、/etc/rc.d等目录和其下的文件,以及系统中的敏感文件,如passwd和shadow文件,防止未被授权者(包括ROOT)和未被授权的程序进入,任何人包括ROOT都无法改变,文件可以隐藏。保护重要进程不被终止,任何人包括root也不能杀死进程,而且可以隐藏特定的进程。
2).检测内核中的端口扫描器,LIDS能检测到扫描并报告系统管理员。
3).当有人违反规则时, LIDS会在控制台显示警告信息,将非法的活动细节记录到受LIDS保护的系统log文件中。
2 配置LIDS
本节涉及到内核编译的知识,请初学者参考:
http://linux.chinaunix.net/techdoc/desktop/2006/05/11/932179.shtml
本次试验以Fedora 14为平台:
①.首先准备内核:
http://www.kernel.org/ 在这里下载kernel 2.6.34.14 源码,将源码包释放到/usr/src目录。
②.下载patch
http://www.lids.jp/develop/lids-2.2.3rc11-2.6.34.patch
管理工具
http://www.lids.jp/wiki/index.php?Development
③.下载lidstools-2.2.7.10
④.Linux内核打LIDS补丁
#patch -p1 ./lids-2.2.3rc11-2.6.34.patch
⑤.编译linux内核
#make menuconfig
执行完上面的命令会打开如图1所示界面,启用LIDS在在内核Security Options选项中,其界面如图2所示。
图 1 在Linux内核中选中Security options选项
图 2 在内核中启用LIDS
设置完毕保存退出
#make ;make install
这样就会将Lidsadm和Lidsconf这两个工具安装到/sbin/目录中,同时会创建一个/etc/lids的目录,并会在此目录下生成一个默认的配置文件.
3.使用Lidsadm工具
4.使用LIDS来保护系统
#lidsadm -S -- -LIDS
#lidsadm -S -- +LIDS
(1)保护某个文件为只读
#lidsconf -A -o /sbin/ps -j READONLY
此命令保证一旦LIDS被启用,任何人都不能修改或删除此文件。
(2)保护一个目录为只读
#lidsconf -A -o /usr/bin -j READONLY
此命令用来保证一旦LIDS被启用,任何人都不能列出或删除此目录及其中的内容。
# lidsconf -A -o /etc -j READONLY
(3)隐藏任何用户都看不到的目录或文件
#lidsconf -A -o /home/userdir -j DENY
此设置将使任何系统用户甚至root用户都不能访问它。如果设置的是一个目录,那么此目录下的文件、目录都将被隐藏。
(4)指定某些特定的程序以只读方式访问一些非常敏感的文件
比如在系统登录时要访问/etc/shadow文件,我们可以指定某些程序能在系统认证时使用它,这些程序包括login、ssh、su等。例如,我们可以只允许login以只读方式访问/etc/shadow文件:
#lidsconf -A -s /bin/login -o /etc/shadow -j READONLY
(5)以根用户身份指定一个服务在指定的端口上运行
要想指定服务在1024及以下端口上运行需要LIDS的CAP_NET_BIND_SERVICE功能。如果我们在/etc/lids/lids.cap文件中没有启用此功能,那么就不能以根用户身份启动任何一个服务运行在指定的端口上。我们可以通过下列命令来授权某个程序有此功能:
#lidsconf -A -s /usr/local/bin/apache -o CAP_NET_BIND_SERVICE 80 -J GRANT
(6)为ssh和scp的远程连接指定端口
要为ssh和scp的远程连接指定端口,就需要LIDS的CAP_NET_BIND_SERVICE功能。我们可以通过下列命令将CAP_NET_BIN_SERVICE功能指定的端口授权给ssh:
#lidsconf -A -s /usr/bin/ssh -o CAP_NET_BIN_SERVICE 22 -J GRANT
最后,对LIDS技术感兴趣的读者可以参考《LIDS精通与进阶》的文档,文中写的非常详细。
参考文献:
LIDS精通与进阶 http://www.yesky.com/346/191346_1.shtml
领取专属 10元无门槛券
私享最新 技术干货