选择显示字体大小

用lkm更改linux缺省安全等级

linux缺省的安全等级是0,如果将其升到1,就可以一定程度上提高系统的安全性.安全等级为1的时候,它会禁止修改ex2fs系统中文件的immutable和append-only位,同时禁止装入/移除module.所以我们可以先用chattr +i <file>将大部分的可执行文件,动态连接库,一些重要的系统文件(.netd.conf,securetty,hosts.allow,hosts.deny,rc.d下的启动script...)加上immutable位,这样"黑客"就很难在你的机器上放置木马和留后门了.
(即便他已经得到了root权限,当然通过直接硬盘读写仍然可以修改,但比较麻烦而且危险).
"黑客"们一旦进入系统获得root,首先会清除系统的记录文件.你可以给一些系统记录文件(wtmp,messages,syslog...)增加append-only位,使"黑客"不能轻易的修改它们.要抓他们就容易多了.:-)
修改安全等级比较直接的办法是直接修改内核源码.将linux/kernel/sched.c中的
securelevel设成1即可.不过如果要改变安全等级的话需要重新编译内核,我太懒,不想那么麻烦.:-)
为什么不用module呢?我写了个很简单的lkm和一个client程序来完成安全等级的切换.

方法: insmod lkm; clt -h;

注意:普通用户也可以执行clt来切换安全等级,所以最好是在clt和lkm中加段密码检查,如果密码不对就不允许执行.:-)
这两个程序在redhat 5.2(2.0.36)下编译运行通过.对于2.2.x的内核,securelevel变成了securebits,简单的将它改到1,会连setuid()都被禁止了,这样普通用户就不能登陆了.如果谁对2.2.x比较熟悉,请不吝赐教,共同提高嘛.:)

<在测试这些程序以前,请备份重要数据.本人不为运行此程序带来的任何损失负责.>

(一旦securelevel=1,kernel将不允许装入modlue,所以你的kerneld可能不能正常工作,而且禁止你访问/dev/kmem,所以有些用到svgalib的程序也不能正常工作,象zgv什么的。不过这本来就是安全隐患,所以不工作就不工作好了,呵呵)
(关于chattr,lsaddr请man chattr和man lsattr)

warning3@hotmail.com

/**************************** lkm.c ********************************/


/* simple lkm to secure linux.
* this module can be used to change the securelevel of linux.
* running the client will switch the securelevel.
*
* gcc -o3 -wall -c lkm.c
* insmod lkm
*
* it is tested in redhat 5.2 (2.0.36).
* (it should be modified if you want to run it in 2.2.x kernel).
* it is really very simple,but we just for educational purposes.:-)
*
* warning3@hotmail.com
*/

#define module
#define __kernel__

#include <linux/config.h>
#include <linux/module.h>
#include <linux/version.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/proc_fs.h>
#include <asm/segment.h>
#include <asm/unistd.h>
#include <linux/dirent.h>
#include <asm/unistd.h>
#include <linux/sockios.h>
#include <linux/if.h>

#define __nr_secureswitch 250

extern void *sys_call_table[];

int sys_secureswitch(int secure)
{
if(secure==0) securelevel=0;
if(secure==1) securelevel=1;
return securelevel;
}

int init_module(void)
{
sys_call_table[__nr_secureswitch] = (void *)sys_secureswitch;
return 0;
}
void cleanup_module(void)
{
sys_call_table[__nr_secureswitch] = null;
return;
}


/************************ clt.c **************************/


/*

* this client can switch the secure level of linux.

*

* gcc -o3 -wall -o clt clt.c

* usage: clt -h/-l

* -h switch to the high secure level.

* -l switch to the low secure level.

*

* most of codes are ripped from smiler@tasam.com,thanks smiler.:)

* warning3@hotmail.com

*/



#include <asm/unistd.h>

#include <stdio.h>

#include <errno.h>



#define __nr_secureswitch 250

static inline _syscall1(int, secureswitch, int, command);



int main(int argc,char **argv)

{

int ret,level = 0;



if (argc < 2)

{

fprintf(stderr,"usage: %s [-h/-l]n",argv[0]);

exit(-1);
}



if (argv[1][1] == h) level++;

else if (argv[1][1] != l)

{

fprintf(stderr,"usage: %s [-h/-l]n",argv[0]);

exit(-1);

}



ret = secureswitch(level);

if (ret < 0)

printf("hmmm...it seemed that our lkm hasn been loaded.;-)n");
else {

if (ret == 0) {

puts("now the secure level is changed to 0!n");

} else {

puts("now the secure level is chagned to 1!n");

}

}

return(1);

}   


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons