📄 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><center><A HREF="#Content">[目录]</A></center><hr><br><A NAME="I711" ID="I711"></A><center><b><font size=+2>实例</font></b></center><br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -