📄 5.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="GENERATOR" CONTENT="《良友》v2.1, 作者:安富国,http://winking.126.com">
<TITLE>LIDS</TITLE>
</HEAD>
<BODY style="font-family: 宋体; font-size: 9pt">
<CENTER><TABLE CELLSPACING=10 CELLPADDING=10 WIDTH="60%" BGCOLOR="#FFB693" >
<TR>
<TD ALIGN=CENTER><FONT SIZE=+2><!--标题由此开始-->LIDS</TD>
</TR>
</TABLE></CENTER>
<p><h3>目 录</h3>
<!--目录由此开始--><A NAME="Content" ID="Content"></A>
<OL><LI><A HREF="#I707">LIDS</A></LI>
<OL><LI><A HREF="#I712">快速入门</A></LI>
<OL><LI><A HREF="#I708">特性</A></LI>
<LI><A HREF="#I709">安装</A></LI>
<LI><A HREF="#I710">配置</A></LI>
<LI><A HREF="#I711">实例</A></LI>
</OL><LI><A HREF="#I722">使用手册</A></LI>
<OL><LI><A HREF="#I723">介绍</A></LI>
<LI><A HREF="#I724">安装</A></LI>
<LI><A HREF="#I725">配置</A></LI>
<LI><A HREF="#I726">测试</A></LI>
<OL><LI><A HREF="#I728">功能测试</A></LI>
<LI><A HREF="#I729">漏洞测试</A></LI>
</OL><LI><A HREF="#I727">附录</A></LI>
</OL><LI><A HREF="#I713">原理分析</A></LI>
<OL><LI><A HREF="#I714">保护文件</A></LI>
<LI><A HREF="#I715">保护设备</A></LI>
<LI><A HREF="#I716">保护重要进程</A></LI>
<LI><A HREF="#I717">密封内核</A></LI>
<LI><A HREF="#I718">Capability</A></LI>
<LI><A HREF="#I719">LIDS在内核中的安全级别</A></LI>
<LI><A HREF="#I720">网络安全</A></LI>
<LI><A HREF="#I721">入侵响应系统</A></LI></OL></OL></OL>
<hr><br><A NAME="I707" ID="I707"></A><center><b><font size=+2>LIDS</font></b></center><br>
LIDS( Linux入侵侦察系统)是Linux内核补丁和系统管理员工具(lidsadm),它加强了Linus内核。 它在内核中实现了一种安全模式 -- 参考模式以及内核中的Mandatory Access Control(命令进入控制)模式。本文将阐述LIDS的功能和如何使用它来建立一个安全的Linux系统。
<center><A HREF="#Content">[目录]</A></center>
<hr><br><A NAME="I712" ID="I712"></A><center><b><font size=+2>快速入门</font></b></center><br>
<center><A HREF="#Content">[目录]</A></center>
<hr><br><A NAME="I708" ID="I708"></A><center><b><font size=+2>特性</font></b></center><br>
1. 为什么选择LIDS<p>
随着互连网上Linux越来越受欢迎 ,越来越多现有GNU/LINUX系统上的应用软件中的安全<br>
漏洞被发现。很多程序利用了程序员的粗心,例如缓存溢出、格式化代码攻击。当系统安全<br>
受到程序的危及,黑客获得ROOT权限以后,整个系统将被入侵者控制。<p>
由于代码的开放性,我们可以获得很多所希望Linux应用程序的原代码,并且根据我们的<br>
需要来修改。所以bug能很容易地被找到,并很快修补。但是当漏洞被揭示后,而系统管理员<br>
疏于给漏洞打补丁,从而造成很容易地就被入侵,更糟的是黑客能获得ROOT SHELL。利用现<br>
有的GNU/Linux系统,他为所欲为。这正是LIDS想要解决的问题。<p>
首先看看现有的GNU/Linux系统存在哪些问题。<p>
文件系统未受到保护<p>
系统中的很多重要的文件,例如 /bin/login,一旦黑客入侵后,他可以上传修改过的l<br>
ogin文件来代替/bin/login ,然后他就可以不需要任何登陆名和密码就登陆系统。这常被称<br>
为Trojan house。<p>
进程未受到保护<p>
系统上运行的进程是为某些系统功能所服务的,例如HTTPD是一个web服务器来满足远程<br>
客户端对于web的需求。作为web服务器系统,保护其进程不被非法终止是很重要的。但是当<br>
入侵者获得了ROOT权限后,我们却无能为力。<p>
系统管理未受保护<p>
很多系统管理,例如,模块的装载/卸载,路由的设置,防火墙的规则,能很容易就被修<br>
改,如果用户的ID是0。所以当入侵者获得ROOT权限后,就变得很不安全。<p>
超级用户(root)作为ROOT可能滥用权限<p>
他可以为所欲为。作为ROOT他甚至可以对现有的权限进行修改。<p>
综上所述,我们发现在现有的Linux系统中的进入控制模式是不足以建立一个安全的Linu<br>
x系统。我们必须在系统中添加新的模式来解决这些问题。这就是LIDS所要做的。<p>
2. LIDS的特色<p>
Linux入侵侦察系统是Linux内核补丁和系统管理员工具,它加强了内核的安全性。它在<br>
内核中实现了参考监听模式以及Mandatory Access Control(命令进入控制)模式。当它起<br>
作用后,选择文件进入,每一个系统/网络的管理操作,任何使用权限, raw device, mem<br>
和 I/O 进入将可以禁止甚至对于ROOT也一样。它使用和扩展了系统的功能,在整个系统上<br>
绑定控制设置,在内核中添加网络和文件系统的安全特性,从而加强了安全性。你可以在线<br>
调整安全保护,隐藏敏感进程,通过网络接受安全警告等等。<p>
简而言之,LIDS提供了保护、侦察、响应的功能,从而是LINUX系统内核中的安全模式得<br>
以实现。<p>
2.1 保护<p>
LIDS提供以下的保护 :<p>
保护硬盘上任何类型的重要文件和目录,任何人包括ROOT都无法改变。<br>
能保护重要进程不被终止<br>
能防止非法程序的RAW IO 操作。保护硬盘,包括MBR保护,等等。<br>
能保护系统中的敏感文件,防止未被授权者(包括ROOT)和未被授权的程序进入。<br>
2.2 侦察<p>
当有人扫描你的主机, LIDS能侦察到并报告系统管理员。 LIDS也可以检测到系统上任<br>
何违法规则的进程。<p>
2.3 响应<p>
当有人违反规则, LIDS会将非法的运作细节记录到受LIDS保护的系统log文件中。 LID<br>
S还可以将log信息传到你的信箱中。LIDS也可以马上关闭与用户的对话。
<center><A HREF="#Content">[目录]</A></center>
<hr><br><A NAME="I709" ID="I709"></A><center><b><font size=+2>安装</font></b></center><br>
1 下载LIDS补丁和相关正式的Linux内核<p>
可以从LIDS Home,LIDS Ftp Home或最近的LIDS Mirror获得LIDS补丁和系统管理工具。<p>
<br>
补丁名称是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.。<p>
必须下载相关的内核版本。例如,你下载了lids-0.9.9-2.2.17.tar.gz,那你就应该下载inux内核2.2.17的原代码。可以从Kernel FTP Site或其他镜象获得内核原码。<p>
然后,将内核原码和LIDS tar解压.例如,从 www.lids.org得到lids-0.9.9-.2.17.tar.gz,从ftp.us.kernel.org得到linux-2.2.17.tar.bz2后:<p>
-----------------------------------------------------------<p>
1. uncompress the Linux kernel source code tree.<br>
# cd linux_install_path/<br>
# bzip2 -cd linux-2.2.17.tar.bz2 | tar -xvf -<p>
2. uncompress the lids source code and install the lidsadm tool.<br>
# cd lids_install_path<br>
# tar -zxvf lids-0.9.8-2.2.17.tar.gz<p>
-----------------------------------------------------------<p>
2 在正式的linux内核上打LIDS补丁<p>
Linux内核原码打LIDS补丁<p>
-----------------------------------------------------------<p>
# cd linux_install_path/linux<br>
# patch -p1<p>
/* link the default source path to lids patched version<br>
# rm -rf /usr/src/linux<br>
# ln -s linux_install_patch/linux /usr/src/linux<p>
3 配置Linux内核<p>
-----------------------------------------------------------<p>
configure the Linux kernel<br>
# cd linux<br>
# make menuconfig or make xconfig<p>
-----------------------------------------------------------<p>
现在,配置Linux内核,按照以下步骤实施:<p>
[*] Prompt for development and/or incomplete code/drivers<br>
[*] Sysctl support<p>
After that, you will find that a new item appear in the bottom of the configura<br>
tion menu name "Linux Intrusion Detection System". Entering this menu, turn the<p>
<br>
[*] Linux Intrusion Detection System support (EXPERIMENTAL) (NEW).<p>
配置LIDS内核以后.退出配置界面,编译内核。<p>
# make dep<br>
# make clean<br>
# make bzImage<br>
# make modules<br>
# make modules_install<p>
3.4 在Linux系统上安装LIDS和系统管理工具<p>
复制 bzImage 到 /boot/ ,编辑 /etc/lilo.conf<p>
-----------------------------------------------------------<p>
# cp arch/i386/boot/bzImage /boot/bzImage-lids-0.9.9-2.2.17<p>
/* build admin tools */<br>
# cd lids-0.9.8-2.2.17/lidsadm-0.9.8/<br>
# make<br>
# make install<p>
# less /etc/lilo.conf<br>
boot=/dev/hda<br>
map=/boot/map<br>
install=/boot/boot.b<br>
prompt<br>
timeout=50<br>
default=linux<p>
image=/boot/vmlinuz-2.2.16-3<br>
label=linux<br>
read-only<br>
root=/dev/hda2<p>
image=/boot/bzImage-lids-0.9.9-2.2.17<br>
label=dev<br>
read-only<br>
root=/dev/hda2<p>
-----------------------------------------------------------<p>
运行/sbin/lilo 来安装新内核<p>
# /sbin/lilo<p>
5 配置LIDS系统<p>
在重新启动以前,必须配置lids系统,使其符合你的安全需要.你可以定义受保护的文件,受保护的进程等等。<p>
缺省情况下,lidsadm将把缺省配置文件安装到 /etc/lids/。你必须根据自己的需要重新配。首先,可以更新缺省lids.conf的inode/dev值。<p>
# /sbin/lidsadm -U<p>
6 重新启动系统<p>
配置完Linux系统后,重新启动.当lilo出现时,选择装载the lids enable kernel。然后,你就将进入美妙的LIDS世界。<p>
7 封装内核<p>
系统启动后,不要忘记用lidsadm封装内核,在最后/etc/rc.local加入以下命令<p>
# /sbin/lidsadm -I<p>
8 在线管理<p>
封装完内核后,你的系统就处于LIDS的保护下。可以做一些测试来验证,如果想改变某些配置,例如修改权限,可以通过输入密码方式在线改变lids的安全等级。<p>
# /sbin/lidsadm -S -- -LIDS<p>
改变lids配置属性后,例如lids.conf,lids.cap,你可以通过以下命令在内核中重新装载配置文件<p>
# /sbin/lidsadm -S -- +RELOAD_CONF<p>
<center><A HREF="#Content">[目录]</A></center>
<hr><br><A NAME="I710" ID="I710"></A><center><b><font size=+2>配置</font></b></center><br>
1 LIDS配置目录 -- “/etc/lids/”<p>
安装 lidsadm以后,在/etc/lids/下会产生一个 lids配置目录,当内核启动时,配置信息将被读入内核中来初始化 LIDS系统。<p>
·lids.conf 这是用来储存 LIDS ACLs信息的文件。它包括定义事件进入类型的ACLs.其项目可以用lidsadm来添加或删除。<br>
·lids.cap 这个文件包括了系统中所有的权限,可以通过编辑它来配置系统中启动或禁止的权限。在想要启动的名称前设置 "+"或设置 "-"来禁止。安装系统时, lids.cap 以缺省值存在,应该按照自己的需要改变它。<br>
·lids.net 这个文件是用来配置通过网络传送警告信件的。可以定义 SMTP服务器、端口、信息题目等等。<br>
这一文件需要在配置内核时选择:<p>
[*] Send security alerts through network (NEW)<p>
lids.pw 这是用来储存由"lidsadm -P"产生的密码的文件,需要在配置内核时选择:<br>
[*] Allow switching LIDS protections (NEW)<p>
注意: 如果要改变lids保护等级,你必须在重新启动内核前运行"lidsadm -P"l.<p>
2 保护文件和目录<p>
首先,要决定哪些文件需要受保护。建议你应该保护系统二进制文件和系统配置文件,<br>
例如/usr/,/sbin/,/etc/,/var/log/。<p>
其次,要决定保护文件的方式. LIDS提供四种保护类型:<p>
DENY access to any body(禁止任何人进入)。<p>
这种方式意味着没有人能够看见或修改文件或目录. 最敏感的文件应该配置为DENY。 例<br>
如,可以将 /etc/shadow设置为 DENY access to anybody,<p>
-------------------------------------------------------<br>
Usage<br>
lidsadm -A -o file_to_protected -j DENY<p>
# lidsadm -A -o /etc/shadow -j DENY<br>
After reboot or RELOAD the configurate files. you can see,<br>
# ls /etc/shadow<br>
ls: /etc/shadow: No such file or directory<br>
-------------------------------------------------------<p>
然后, 你要设置一些可以进入文件的程序,例如,登陆系统时,/bin/login文件需要从<br>
受保护的文件/etc/shadow里读取密码 ,但/etc/shadow不允许任何人进入,所以你应该:<p>
-------------------------------------------------------<br>
Usage<br>
lidsadm -A -s SUBJECT_PROGRAM -o OBJECT_PROGRAM -j READ/WRITE/APPEND<br>
# lidsadm -A -s /bin/login -o /etc/shadow -j READ<br>
-------------------------------------------------------<p>
配置生效后,你可以登陆到系统上但无法进入/etc/shadow。这是MAC (mandatory acce<br>
ss control命令进入控制)的一个实例。<p>
Read Only Files(只读文件)<p>
这种方式意味着没有人可以改变文件,建议/etc/passwd,/bin/passwd等类似文件可以<br>
采取这种方式。<p>
-------------------------------------------------------<br>
lidsadm -A -o file_to_protect -j READ<p>
example,<p>
1. to protect the whole /sbin/ as read-only.<p>
# /sbin/lidsadm -A -o /sbin/ -j READ<p>
2. to protect /etc/passwd as read-only<p>
# /sbin/lidsadm -A -o /etc/passwd -j READ<br>
-------------------------------------------------------<p>
Append Only Files(只能添加文件)<p>
大多此类文件是指系统的log文件,例如 /var/log/message ,/var/log/secure。 文件<br>
只能添加而不能删除或修改以前的内容。<p>
------------------------------------------------------<br>
USAGE:<br>
lidsadm -A -o filename_to_protect -j APPEND<p>
example,<p>
1. to protect the system log files<p>
# /sbin/lidsadm -A -o /var/log/message -j APPEND<br>
# /sbin/lidsadm -A -o /var/log/secure -j APPEND<p>
2. to protect the apache httpd log files<p>
# /sbin/lidsadm -A -o /etc/httpd/logs/ -j APPEND<br>
-----------------------------------------------------<br>
WRITE(可写)<p>
此类型用于定义可以改写的文件。<p>
Mandatory Access Control in file protection(文件保护中的命令进入控制)<p>
定义哪个项目(程序)可以以哪种方式(READ,APPEND,WRITE)进入哪个目标(文件)。<p>
例如,定义/home/httpd/为DENY to anybody然后让/usr/sbin/httpd能从目录中READ。<br>
这样一来, Web服务器可以正常地作为公用WEB服务器,但在/home/httpd/下的内容和程序<br>
是不可见的,也不能被修改。如果入侵者通过httpd的bug获得了root shell,他即使在root<br>
shell下也不能看到文件,即使他可以通过改写堆栈在httpd服务器中插入危险的代码,他也<br>
只能读到/home/httpd下的文件,而不能修改。<p>
----------------------------------------------------<br>
# lidsadm -A -o /home/httpd -j DENY<br>
# lidsadm -A -s /usr/sbin/httpd -o /home/httpd -j READ<br>
---------------------------------------------------<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -