Linux下安装配置LIDS系统

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180527G0959O00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券