文章摘要:
LIDS全称Linux 入侵检测系统,作者是Xie Huagang和Phil。LIDS 是增强 Linux 核心的安全的的补丁程序. 它主要应用了一种安全参考模型和强制访问控制模型。
使用了 LIDS 后, 系统能够保护重要的系统文件,重要的系统进程, 并能阻止对系统配制信息的改变和对裸设备的读写操作。
正文:
LIDS功能及其安装和配置
随着因特网中LINUX操作系统知名度的提升,目前在GNU/Linux系统中也发现了越来越多的安全漏洞。许多漏洞是由于程序员不懂安全编程引起的,例如缓冲区溢出、格式化字符串攻击。当系统出现了这种漏洞,黑客就会取得root权限,整个系统也就在黑客的控制之下可以做任何事情了。
我们知道,虽然LINUX的源代码是开放的,系统管理员可以尽可能多得发现系统的漏洞并打上补丁,但是,很多管理员却往往懒得去做,黑客要攻入他们的系统、取得ROOT SHELL真是太容易了。LIDS就是针对这种情况提出的解决方案。
一、 LIDS的功能
先让我们对目前系统存在的漏洞略作浏览:
文件系统没有在保护之下
事实上,很多重要的文件比如/bin/login就是这样,当黑客进入系统时,它可以用自己的程序来替换这个文件,再次登录就可以不用任何密码了。这是一个特洛伊木马的例子。但是除非要升级整个系统,频繁地改变这些文件并不现实,因此迫切需要一个安全内核来两全其美。
进程也没有在保护之下
系统中的进程是为系统的某一功能服务的,例如HTTPD进程就是为了远程客户机上的浏览器内容服务的。对WEB服务器来说,保护它的进程免于非法终止是很重要的,但是假如入侵者获取了ROOT权限,管理员将对此束手无策。
系统管理也没有在保护之下
很多系统管理功能,像转载/卸载模块,路由安装模块,防火墙控制模块等都可能被ID=0的进程修改。
另外,目前系统中ROOT权限往往过大,做为ROOT,他可以轻而易举地改变现存系统本来就具有的功能。
以上我们看出,LINUX系统不仅需要系统的访问控制,还需要一些新的模块来处理以上问题。这就是LIDS所作的工作。
LIDS在LINUX内核中负责进行监视和强制接入控制,它首先限制ROOT的权限,原来的选择文件权限、系统/网络的管理、设备、内存及输入输出的操作权限ROOT可能不再具有,LIDS利用并扩展绑定到系统上的权限来控制整个系统,增加网络和文件系统的安全性能。你可以联机调整安全性能,隐藏敏感的进程,并可通过网络收到安全警告。
LIDS的特性总起来说有三点:
1.入侵防护
它能保护重要的文件,进程和设备(例如内存、硬盘包括引导区)不被非授权的人改动,包括非授权的 root。
利用系统提供的性能来对整个系统做更多的防护。
2.入侵监测
它还提供对端口扫描的监测.
3.入侵响应
在发现系统受到攻击后, 它能及时的将必要的信息记到日志文件中, 还可以将其发送到管理员的信箱中.
二、 下面,我们来介绍LIDS系统的安装
下载LIDS补丁和相关LINUX内核
你可以在LIDS主页和LIDS FTP站点或者其它LIDS镜像站点下载,下载包的名称一般是lids-x.xx-y.y.y.tar.gz的形式,x.xx表示LIDS的版本,y.y.y代表LINUX内核的版本。比如,lids-0.9.9-2.2.17.tar.gz的意思是lids的版本为0.9.9,而相应内核版本是2.2.17。下载时这两者的版本应相互对应。下载后再把它们分别解压。
1. 解压LINUX内核源代码
# cd linux_install_path/
# bzip2 -cd linux-2.2.17.tar.bz2 | tar -xvf -
2. 解压LIDS源代码并安装LIDSADM工具
# cd lids_install_path
# tar -zxvf lids-0.9.8-2.2.17.tar.gz
3.安装lids补丁到Linux内核源代码
# cd linux_install_path/linux
# patch -p1
/* 链接缺省源代码路径到lids补丁版本*/
# rm -rf /usr/src/linux
# ln -s linux_install_patch/linux /usr/src/linux
4.配置Linux内核
# cd linux
# make menuconfig or make xconfig
现在,就可以配置内核了。
把下面的选项打开:
[*] Prompt for development and/or incomplete code/drivers
[*] Sysctl support
接下来,在配置菜单底部出现新的一项:'Linux Intrusion Detction System',进入这一项,把下面的选项打开:
[*] Linux Intrusion Detection System support (EXPERIMENTAL) (NEW).
在配置LIDS内核选项之后,关闭配置界面,编译内核。
# make dep
# make clean
# make bzImage
# make modules
# make modules_install
5.安装LIDS和管理工具。拷贝bzImage到/boot/,编辑/etc/lilo.conf文件。
--------------------------------------------------------------------------------
# cp arch/i386/boot/bzImage /boot/bzImage-lids-0.9.9-2.2.17
/* build admin tools */
# cd lids-0.9.8-2.2.17/lidsadm-0.9.8/
# make
# make install
# less /etc/lilo.conf
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux
image=/boot/vmlinuz-2.2.16-3
label=linux
read-only
root=/dev/hda2
image=/boot/bzImage-lids-0.9.9-2.2.17
label=dev
read-only
root=/dev/hda2
--------------------------------------------------------------------------------
6.运行lilo,加载新内核
# /sbin/lilo
7.配置LIDS系统
重启之前,应该配置LIDS系统使他符合你的要求。你可以定义受保护的文件、进程、设备等。缺省情况下,lidsadm将安装/etc/lids/下面的缺省配置文件。你必须重新配置它使其符合你的要求。具体的配置方法后面再作介绍。
# /sbin/lidsadm -U
8.重启系统
当你配置好Linux系统时,重启你的系统。当lilo出现时,选择lids加载内核。这时候,你就进入了精彩的LIDS世界了。
9.封闭内核
当系统重启后,别忘了用lidsadm为内核打封,把下面这条命令加到/etc/rc.local的最后一行中。
你可以查阅lids howto文档理解lidsadm每一个选项的含义。
---------------------------------------------
# /sbin/lidsadm -I
---------------------------------------------
10.联机管理。
封闭内核之后,系统就处于LIDS的保护之下了。你可以在上面做些测试。若你想改变一些配置,比如改变选项的性能,就可以输入密码联机改变lids的安全级别。
----------------------------------------------
# /sbin/lidsadm -S -- -LIDS
----------------------------------------------
当你改变了lids的配置值(例如lids.conf,lids.cap)之后,可以用下面的命令重新把配置文件装入内核。
-----------------------------------------------
# /sbin/lidsadm -S -- +RELOAD_CONF
-----------------------------------------------
三、配置LIDS系统
LIDS的配置目录是:'/etc/lids/',安装了lidsadm之后,你会发现它在/etc/lids/下生成了一个lids配置目录。当内核启动时,配置信息就把相关信息读入内核来初始化LIDS系统。
下面,我们来看几个配置文件的作用:
lids.conf
这个文件用来存储LIDS ACLs信息。它包括定义对象访问类型的ACLs。
lids.cap
这个文件包括系统的所有性能,你可以编辑这个文件来配置这些性能。仅仅通过在性能前面加上+或者-来增加或减少相关性能。安装系统的时候,lids.cap文件是被缺省设置。
lids.net
这个文件用来配置发给管理员信箱的警告信息。你可以定义SMTP服务器、端口、消息头等。当你配置内核时,选择了[*] Send security alerts through network (NEW)就必须有这个文件。
lids.pw
这个文件存储由'lidsadm -P'命令生成的密码文件。如果你配置内核时选择了[*] Allow switching LIDS protections (NEW),就必须有这个文件。
注意:如果要变换你的lids保护等级,不要忘了运行"lidsadm -P"来重启内核。
1.配置LIDS保护文件和目录
首先,确定你要保护哪些文件。一般情况下,保护系统二进制文件和系统配置文件,比如: /usr/,/etc/,/var/log/。
其次,你必须决定以什么方式来保护文件。LIDS提供四种保护类型。
a.拒绝任何人访问
带有DENY标志的文件和目录没有人能够看见,也不能修改。那些非常敏感的文件应该加上DENY标志。例如,/etc/shadow文件。
--------------------------------------------------------------------------------
用法:
lidsadm -A -o file_to_protected -j DENY
# lidsadm -A -o /etc/shadow -j DENY
重启或重新加载配置文件后,你会看到:
# ls /etc/shad