摘要:LIDS(
Linux入侵侦察系统)是
Linux内核补丁和系统管理员工具(lidsadm),它加强了Linus内核。 它在内核中实现了一种
安全模式 -- 参考模式以及内核中的Mandatory Access Control(命令进入控制)模式。本文将阐述LIDS的功能和如何使用它来建立一个
安全的
Linux系统。
LIDS(
Linux入侵侦察系统)是
Linux内核补丁和系统管理员工具(lidsadm),它加强了Linus内核。 它在内核中实现了一种
安全模式 -- 参考模式以及内核中的Mandatory Access Control(命令进入控制)模式。本文将阐述LIDS的功能和如何使用它来建立一个
安全的
Linux系统。
1. 为什么选择LIDS
随着互连网上
Linux越来越受欢迎 ,越来越多现有GNU/LINUX系统上的应用软件中的
安全漏洞被发现。很多程序利用了程序员的粗心,例如缓存溢出、格式化代码攻击。当系统
安全受到程序的危及,黑客获得ROOT权限以后,整个系统将被入侵者控制。
网管u家u.bitsCN.com
由于代码的开放性,我们可以获得很多所希望
Linux应用程序的原代码,并且根据我们的需要来修改。所以bug能很容易地被找到,并很快修补。但是当漏洞被揭示后,而系统管理员疏于给漏洞打补丁,从而造成很容易地就被入侵,更糟的是黑客能获得ROOT SHELL。利用现有的GNU/
Linux系统,他为所欲为。这正是LIDS想要解决的问题。
首先看看现有的GNU/
Linux系统存在哪些问题。
文件系统未受到保护
系统中的很多重要的文件,例如 /bin/login,一旦黑客入侵后,他可以上传修改过的login文件来代替/bin/login ,然后他就可以不需要任何登陆名和密码就登陆系统。这常被称为Trojan house。
进程未受到保护
系统上运行的进程是为某些系统功能所服务的,例如HTTPD是一个web服务器来满足远程客户端对于web的需求。作为web服务器系统,保护其进程不被非法终止是很重要的。但是当入侵者获得了ROOT权限后,我们却无能为力。
系统管理未受保护
中国网管论坛bbs.bitsCN.com
很多系统管理,例如,模块的装载/卸载,路由的设置,防火墙的规则,能很容易就被修改,如果用户的ID是0。所以当入侵者获得ROOT权限后,就变得很不
安全。
超级用户(root)作为ROOT可能滥用权限
他可以为所欲为。作为ROOT他甚至可以对现有的权限进行修改。
综上所述,我们发现在现有的
Linux系统中的进入控制模式是不足以建立一个
安全的
Linux系统。我们必须在系统中添加新的模式来解决这些问题。这就是LIDS所要做的。
2. LIDS的特色
Linux入侵侦察系统是
Linux内核补丁和系统管理员工具,它加强了内核的
安全性。它在内核中实现了参考监听模式以及Mandatory Access Control(命令进入控制)模式。当它起作用后,选择文件进入,每一个系统/网络的管理操作,任何使用权限, raw device, mem 和 I/O 进入将可以禁止甚至对于ROOT也一样。它使用和扩展了系统的功能,在整个系统上绑定控制设置,在内核中添加网络和文件系统的
安全特性,从而加强了
安全性。你可以在线调整
安全保护,隐藏敏感进程,通过网络接受
安全警告等等。
网管联盟bitsCN_com
简而言之,LIDS提供了保护、侦察、响应的功能,从而是LINUX系统内核中的
安全模式得以实现。
2.1 保护
LIDS提供以下的保护 :
保护硬盘上任何类型的重要文件和目录,任何人包括ROOT都无法改变。
能保护重要进程不被终止
能防止非法程序的RAW IO 操作。保护硬盘,包括MBR保护,等等。
能保护系统中的敏感文件,防止未被授权者(包括ROOT)和未被授权的程序进入。
2.2 侦察
当有人扫描你的主机, LIDS能侦察到并报告系统管理员。 LIDS也可以检测到系统上任何违法规则的进程。
2.3 响应
当有人违反规则, LIDS会将非法的运作细节记录到受LIDS保护的系统log文件中。 LIDS还可以将log信息传到你的信箱中。LIDS也可以马上关闭与用户的对话。
3. 建立
安全的
Linux系统
看完了LIDS特性,让我们来看看怎么样一步步地用LIDS建立
安全的系统。
网管u家u.bitsCN.com 3.1 下载LIDS补丁和相关正式的
Linux内核
可以从LIDS Home,LIDS Ftp Home或最近的LIDS Mirror获得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.。
必须下载相关的内核版本。例如,你下载了lids-0.9.9-2.2.17.tar.gz,那你就应该下载
Linux内核2.2.17的原代码。可以从Kernel FTP Site或其他镜象获得内核原码。
然后,将内核原码和LIDS tar解压.例如,从 www.lids.org得到lids-0.9.9-2.2.17.tar.gz,从ftp.us.kernel.org得到linux-2.2.17.tar.bz2后:
1. uncompress the
Linux kernel source code tree.
# cd linux_install_path/
# bzip2 -cd linux-2.2.17.tar.bz2 | tar -xvf -
2. uncompress the lids source code and install the lidsadm tool.
网管联盟bitsCN_com # cd lids_install_path
# tar -zxvf lids-0.9.8-2.2.17.tar.gz
3.2 在正式的linux内核上打LIDS补丁
Linux内核原码打LIDS补丁
# cd linux_install_path/linux
# patch -p1
/* link the default source path to lids patched version
# rm -rf /usr/src/linux
# ln -s linux_install_patch/linux /usr/src/linux
3.3 配置
Linux内核
configure the
Linux kernel
# cd linux
# make menuconfig or make xconfig
现在,配置
Linux内核,按照以下步骤实施:
[*] Prompt for development and/or incomplete code/drivers
[*] Sysctl support
After that, you will find that a new item appear in the bottom
of the configuration menu name \\"
Linux Intrusion Detection System\\".
网管bitscn_com
Entering this menu, turn the
[*]
Linux Intrusion Detection System support (EXPERIMENTAL) (NEW).
配置LIDS内核以后.退出配置界面,编译内核。
# make dep
# make clean
# make bzImage
# make modules
# make modules_install
3.4 在
Linux系统上安装LIDS和系统管理工具
复制 bzImage 到 /boot/ ,编辑 /etc/lilo.conf
# cp arch/i386/boot/bzImage /boot/bzImagelids0.9.92.2.17
/* build admin tools */
# cd lids0.9.82.2.17/lidsadm0.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/vmlinuz2.2.163
label=linux
readonly
root=/dev/hda2
image=/boot/bzImagelids0.9.92.2.17
中国网管论坛bbs.bitsCN.com label=dev
readonly
root=/dev/hda2
运行/sbin/lilo 来安装新内核
# /sbin/lilo
3.5 配置LIDS系统
在重新启动以前,必须配置lids系统,使其符合你的
安全需要.你可以定义受保护的文件,受保护的进程等等。
缺省情况下,lidsadm将把缺省配置文件安装到 /etc/lids/。你必须根据自己的需要重新配置。首先,可以更新缺省lids.conf的inode/dev值。
# /sbin/lidsadm U
3.6 重新启动系统
配置完
Linux系统后,重新启动.当lilo出现时,选择装载the lids enable kernel。然后,你就将进入美妙的LIDS世界。
3.7 封装内核
系统启动后,不要忘记用lidsadm封装内核,在最后/etc/rc.local加入以下命令
# /sbin/lidsadm I
3.8 在线管理
封装完内核后,你的系统就处于LIDS的保护下。可以做一些测试来验证,如果想改变某些配置,例如修改权限,可以通过输入密码方式在线改变lids的
安全等级。
网管网www.bitscn.com # /sbin/lidsadm S LIDS
改变lids配置属性后,例如lids.conf,lids.cap,你可以通过以下命令在内核中重新装载配置文件
# /sbin/lidsadm S +RELOAD_CONF
4. 配置LIDS系统
4.1 LIDS配置目录 “/etc/lids/”
安装 lidsadm以后,在/etc/lids/下会产生一个 lids配置目录,当内核启动时,配置信息将被读入内核中来初始化 LIDS系统。
lids.conf 这是用来储存 LIDS ACLs信息的文件。它包括定义事件进入类型的ACLs.其项目可以用lidsadm来添加或删除。
lids.cap 这个文件包括了系统中所有的权限,可以通过编辑它来配置系统中启动或禁止的权限。在想要启动的名称前设置 \\"+\\"或设置 \\"\\"来禁止。安装系统时, lids.cap 以缺省值存在,应该按照自己的需要改变它。
<